YARA Detection Rule: Win32_Ransomware_Satana
Repository: reversinglabs/reversinglabs-yara-rules
Detects: Yara rule that detects Satana ransomware.
Malware family: SATANA
Author: ReversingLabs

Pattern signatures:
$encrypt_files_p1 = {
            55 8B EC 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 64 A1 ?? ?? ?? ?? 50 64 89 25 ?? ?? ?? 
            ?? 83 EC ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 53 56 57 89 65 ?? C7 45 ?? ?? ?? ?? ?? 66 
            0F 57 C0 66 0F 13 45 ?? 68 ?? ?? ?? ?? 8B 75 ?? 56 FF 15 ?? ?? ?? ?? 85 C0 75 ?? 90 
            6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 56 FF 15 ?? ?? ?? ?? 8B F8 89 
            7D ?? 83 FF ?? 0F 84 ?? ?? ?? ?? 8D 45 ?? 50 57 FF 15 ?? ?? ?? ?? 8B 75 ?? 89 75 ?? 
            8B 5D ?? 89 5D ?? 83 FE ?? 75 ?? 85 DB 0F 84 ?? ?? ?? ?? 8B CE 0B CB 0F 84 ?? ?? ?? 
            ?? C7 45 ?? ?? ?? ?? ?? 6A ?? 6A ?? 53 56 E8 ?? ?? ?? ?? 89 45 ?? 85 C0 74 ?? 33 C9 
            03 C6 13 CB 83 E8 ?? 89 45 ?? 83 D9 ?? 89 4D ?? 6A ?? 8B 55 ?? 52 6A ?? 6A ?? 6A ?? 
            57 FF 15 ?? ?? ?? ?? 89 45 ?? 85 C0 0F 84 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? 
            ?? 50 FF 15 ?? ?? ?? ?? 89 45 ?? 8B 45 ?? 89 45 ?? 8B 4D ?? 89 4D ?? 6A ?? FF 15 ?? 
        

Detection condition:
uint16(0) == 0x5A4D and 
        (
            $remote_connection and 
            (
                all of ($search_files_p*)
            ) and 
            (
                all of ($encrypt_files_p*)
            )
        )

Full rule:
rule Win32_Ransomware_Satana : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

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

        tc_detection_type   = "Ransomware"
        tc_detection_name   = "Satana"
        tc_detection_factor = 5

    strings:

        $encrypt_files_p1 = {
            55 8B EC 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 64 A1 ?? ?? ?? ?? 50 64 89 25 ?? ?? ?? 
            ?? 83 EC ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 53 56 57 89 65 ?? C7 45 ?? ?? ?? ?? ?? 66 
            0F 57 C0 66 0F 13 45 ?? 68 ?? ?? ?? ?? 8B 75 ?? 56 FF 15 ?? ?? ?? ?? 85 C0 75 ?? 90 
            6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 56 FF 15 ?? ?? ?? ?? 8B F8 89 
            7D ?? 83 FF ?? 0F 84 ?? ?? ?? ?? 8D 45 ?? 50 57 FF 15 ?? ?? ?? ?? 8B 75 ?? 89 75 ?? 
            8B 5D ?? 89 5D ?? 83 FE ?? 75 ?? 85 DB 0F 84 ?? ?? ?? ?? 8B CE 0B CB 0F 84 ?? ?? ?? 
            ?? C7 45 ?? ?? ?? ?? ?? 6A ?? 6A ?? 53 56 E8 ?? ?? ?? ?? 89 45 ?? 85 C0 74 ?? 33 C9 
            03 C6 13 CB 83 E8 ?? 89 45 ?? 83 D9 ?? 89 4D ?? 6A ?? 8B 55 ?? 52 6A ?? 6A ?? 6A ?? 
            57 FF 15 ?? ?? ?? ?? 89 45 ?? 85 C0 0F 84 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? 
            ?? 50 FF 15 ?? ?? ?? ?? 89 45 ?? 8B 45 ?? 89 45 ?? 8B 4D ?? 89 4D ?? 6A ?? FF 15 ?? 
            ?? ?? ?? 83 C4 ?? 8B F0 66 0F 57 C0 66 0F 13 45 ?? 8B 5D ?? 8B 7D ?? 90 83 7D ?? ?? 
            0F 8C ?? ?? ?? ?? 7F ?? 83 7D ?? ?? 0F 86 ?? ?? ?? ?? 8B D3 83 C2 ?? 8B 75 ?? 8B CE 
            83 D1 ?? 8B 45 ?? 3B C8 7F ?? 7C ?? 3B 55 ?? 77 ?? BF ?? ?? ?? ?? 33 C0 8B 75 ?? 03
        }

        $encrypt_files_p2 = {
            F3 8B DA 89 4D ?? EB ?? 8B 7D ?? 2B FB 1B C6 8B 55 ?? 8D 34 13 03 DF 11 45 ?? 89 5D 
            ?? 89 45 ?? 89 7D ?? 83 7D ?? ?? 7