YARA Detection Rule: Win32_Ransomware_Dualshot
Repository: reversinglabs/reversinglabs-yara-rules
Detects: Yara rule that detects Dualshot ransomware.
Malware family: DUALSHOT
Author: ReversingLabs

Pattern signatures:
$internal_encrypt_file = {
            02 28 ?? ?? ?? ?? 0A 02 28 ?? ?? ?? ?? 0B 02 28 ?? ?? ?? ?? 0C 02 28 ?? ?? ?? ?? 03 28 
            ?? ?? ?? ?? 0D 02 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 25 09 16 09 8E 69 6F ?? 
            ?? ?? ?? 6F ?? ?? ?? ?? 02 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 06 28 ?? ?? ?? ?? 02 72 ?? ?? 
            ?? ?? 28 ?? ?? ?? ?? 07 28 ?? ?? ?? ?? 02 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 08 28 ?? ?? ?? 
            ?? 02 1B 19 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? DE ?? 26 DE ?? 00 02 28 ?? ?? ?? ?? DE ?? 26 
            DE ?? 2A 
        }

        $encrypt_files_p1 = {
            11 ?? 17 58 13 ?? 11 ?? 11 ?? 8E 69 32 ?? DE ?? 26 DE ?? 11 ?? 17 58 13 ?? 11 ?? 11 ?? 
            8E 69 32 ?? DE ?? 26 DE ?? 11 ?? 17 58 13 ?? 11 ?? 11 ?? 8E 69 3F ?? ?? ?? ?? 11 ?? 13 
            ?? 16 13 ?? 2B ?? 11 ?? 11 ?? 9A 13 ?? 11 ?? 11 ?? 28 ?? ?? ?? ?? DE ?? 26 DE ?? 11 ?? 
            17 58 13 ?? 11 ?? 11 ?? 8E 69 32 ?? 72 ?? ?? ?? ?? 11 ?? 28 ?? ?? ?? ?? 13 ?? 28 ?? ?? 
          

Detection condition:
uint16(0) == 0x5A4D and
        (
            all of ($find_files_p*)
        ) and
        (
            all of ($encrypt_files_p*)
        ) and
        (
            $internal_encrypt_file
        )

Full rule:
rule Win32_Ransomware_Dualshot : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

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

        tc_detection_type   = "Ransomware"
        tc_detection_name   = "Dualshot"
        tc_detection_factor = 5

    strings:

        $internal_encrypt_file = {
            02 28 ?? ?? ?? ?? 0A 02 28 ?? ?? ?? ?? 0B 02 28 ?? ?? ?? ?? 0C 02 28 ?? ?? ?? ?? 03 28 
            ?? ?? ?? ?? 0D 02 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 25 09 16 09 8E 69 6F ?? 
            ?? ?? ?? 6F ?? ?? ?? ?? 02 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 06 28 ?? ?? ?? ?? 02 72 ?? ?? 
            ?? ?? 28 ?? ?? ?? ?? 07 28 ?? ?? ?? ?? 02 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 08 28 ?? ?? ?? 
            ?? 02 1B 19 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? DE ?? 26 DE ?? 00 02 28 ?? ?? ?? ?? DE ?? 26 
            DE ?? 2A 
        }

        $encrypt_files_p1 = {
            11 ?? 17 58 13 ?? 11 ?? 11 ?? 8E 69 32 ?? DE ?? 26 DE ?? 11 ?? 17 58 13 ?? 11 ?? 11 ?? 
            8E 69 32 ?? DE ?? 26 DE ?? 11 ?? 17 58 13 ?? 11 ?? 11 ?? 8E 69 3F ?? ?? ?? ?? 11 ?? 13 
            ?? 16 13 ?? 2B ?? 11 ?? 11 ?? 9A 13 ?? 11 ?? 11 ?? 28 ?? ?? ?? ?? DE ?? 26 DE ?? 11 ?? 
            17 58 13 ?? 11 ?? 11 ?? 8E 69 32 ?? 72 ?? ?? ?? ?? 11 ?? 28 ?? ?? ?? ?? 13 ?? 28 ?? ?? 
            ?? ?? 72 ?? ?? ?? ?? 08 20 ?? ?? ?? ?? 20 ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 12 ?? 28 ?? 
            ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 28 ?? ?? ?? ?? 25 28 ?? ?? ?? ?? 11 
            ?? 6F ?? ?? ?? ?? 16 28 ?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 8E 69 6F ?? ?? ?? ?? 6F ?? ?? 
            ?? ?? 06 72 ?? ?? ?? ?? 12 ?? 6F ?? ?? ?? ?? 26 07 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 39 ?? 
            ?? ?? ?? 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 08 1F ?? 20 ?? ??