YARA Detection Rule: Win32_Ransomware_BadBlock
Repository: reversinglabs/reversinglabs-yara-rules
Detects: Yara rule that detects BadBlock ransomware.
Malware family: BADBLOCK
Author: ReversingLabs

Pattern signatures:
$encrypt_files = {
            55 8B EC 83 C4 ?? 53 56 57 33 DB 89 5D ?? 89 5D ?? 89 5D ?? 89 4D ?? 89 55 ?? 8B D8 
            8B 45 ?? E8 ?? ?? ?? ?? 33 C0 55 68 ?? ?? ?? ?? 64 FF 30 64 89 20 8D 55 ?? 8B 45 ?? 
            8B 40 ?? E8 ?? ?? ?? ?? 8B 55 ?? 8B C3 E8 ?? ?? ?? ?? 85 C0 0F 84 ?? ?? ?? ?? 8D 55 
            ?? 8B 45 ?? 8B 40 ?? E8 ?? ?? ?? ?? 8D 45 ?? 8B 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B 45 
            ?? B2 ?? E8 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 8D 
            45 ?? 50 E8 ?? ?? ?? ?? 8D 45 ?? 50 6A ?? 6A ?? 68 ?? ?? ?? ?? 8B 45 ?? 50 E8 ?? ?? 
            ?? ?? 8D 45 ?? E8 ?? ?? ?? ?? 8B D0 8B 45 ?? 85 C0 74 ?? 83 E8 ?? 8B 00 6A ?? 50 52 
            8B 45 ?? 50 E8 ?? ?? ?? ?? 8D 45 ?? 50 6A ?? 8B 45 ?? 50 68 ?? ?? ?? ?? 8B 45 ?? 50 
            E8 ?? ?? ?? ?? 8B 45 ?? 50 E8 ?? ?? ?? ?? 33 C0 55 68 ?? ?? ?? ?? 64 FF 30 64 89 20 
            6A ?? 6A ?? 8B 45 ?? E8 ?? ?? ?? ?? 8B 45 ?? 8B 10 FF 12 89 45 ?? 89 55 ?? E9 ?? ?? 
           

Detection condition:
uint16(0) == 0x5A4D and
        (
            $search_files and
            $encrypt_files and
            $remote_connection
        )

Full rule:
rule Win32_Ransomware_BadBlock : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

        source              = "ReversingLabs"
        status              = "RELEASED"
        sharing             = "TLP:WHITE"
        category            = "MALWARE"
        malware             = "BADBLOCK"
        description         = "Yara rule that detects BadBlock ransomware."

        tc_detection_type   = "Ransomware"
        tc_detection_name   = "BadBlock"
        tc_detection_factor = 5

    strings:

        $encrypt_files = {
            55 8B EC 83 C4 ?? 53 56 57 33 DB 89 5D ?? 89 5D ?? 89 5D ?? 89 4D ?? 89 55 ?? 8B D8 
            8B 45 ?? E8 ?? ?? ?? ?? 33 C0 55 68 ?? ?? ?? ?? 64 FF 30 64 89 20 8D 55 ?? 8B 45 ?? 
            8B 40 ?? E8 ?? ?? ?? ?? 8B 55 ?? 8B C3 E8 ?? ?? ?? ?? 85 C0 0F 84 ?? ?? ?? ?? 8D 55 
            ?? 8B 45 ?? 8B 40 ?? E8 ?? ?? ?? ?? 8D 45 ?? 8B 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B 45 
            ?? B2 ?? E8 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 8D 
            45 ?? 50 E8 ?? ?? ?? ?? 8D 45 ?? 50 6A ?? 6A ?? 68 ?? ?? ?? ?? 8B 45 ?? 50 E8 ?? ?? 
            ?? ?? 8D 45 ?? E8 ?? ?? ?? ?? 8B D0 8B 45 ?? 85 C0 74 ?? 83 E8 ?? 8B 00 6A ?? 50 52 
            8B 45 ?? 50 E8 ?? ?? ?? ?? 8D 45 ?? 50 6A ?? 8B 45 ?? 50 68 ?? ?? ?? ?? 8B 45 ?? 50 
            E8 ?? ?? ?? ?? 8B 45 ?? 50 E8 ?? ?? ?? ?? 33 C0 55 68 ?? ?? ?? ?? 64 FF 30 64 89 20 
            6A ?? 6A ?? 8B 45 ?? E8 ?? ?? ?? ?? 8B 45 ?? 8B 10 FF 12 89 45 ?? 89 55 ?? E9 ?? ?? 
            ?? ?? 83 7D ?? ?? 75 ?? 81 7D ?? ?? ?? ?? ?? 73 ?? EB ?? 7D ?? 8B 45 ?? 89 45 ?? 8B 
            45 ?? 89 45 ?? EB ?? C7 45 ?? ?? ?? ?? ?? C7 45 ?? ?? ?? ?? ?? 8B 45 ?? 8B D8 8B C3 
            E8 ?? ?? ?? ?? 8B F0 8B D6 8B CB 8B 45 ?? 8B 38 FF 57 ?? 89 45 ?? 8B 45 ?? 8B 10 FF 
            12 52 50 8B 45 ?? E8 ?? ?? ?? ?? 3B 54 24 ?? 75 ?? 3B 04 24 5A 58 72 ?? EB ?? 5A 58 
            7C ?? 8B 45 ?? 50 8D 45 ?? 50 56 6A ?? 6A ?? 6A ?? 8B 45 ?? 50 E8 ??