YARA Detection Rule: Win32_Ransomware_Hermes
Repository: reversinglabs/reversinglabs-yara-rules
Detects: Yara rule that detects Hermes ransomware.
Malware family: HERMES
Author: ReversingLabs

Pattern signatures:
$hermes_find_files_v1_p1 = {
            A5 A5 A5 8D BD ?? ?? ?? ?? 66 AB BE ?? ?? ?? ?? 8D BD ?? ?? ?? ?? A5 A5 66 A5 68 ?? 
            ?? ?? ?? 8D BD ?? ?? ?? ?? 50 AB 8D 85 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 83 65 
            ?? ?? 8B 5D ?? 8B FB 4F 4F 8D 47 ?? 66 8B 4F ?? 47 47 66 85 C9 75 ?? BE ?? ?? ?? ?? 
            A5 A5 8D 8D ?? ?? ?? ?? 51 50 66 A5 FF 15 ?? ?? ?? ?? 68 ?? ?? ?? ?? 53 89 45 ?? E8 
            ?? ?? ?? ?? 59 59 8B C8 E8 ?? ?? ?? ?? 8B CB 8B D0 E8 ?? ?? ?? ?? 2B C2 33 C9 83 7D 
            ?? ?? 66 89 0C 43 0F 84 ?? ?? ?? ?? 8D 8D ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 F8 ?? 75 ?? 
            8B C1 6A ?? 50 E8 ?? ?? ?? ?? 59 59 85 C0 74 ?? 8D 85 ?? ?? ?? ?? 50 FF 75 ?? FF 15 
            ?? ?? ?? ?? 85 C0 0F 84 ?? ?? ?? ?? 8D 8D ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 F8 ?? 75 ?? 
            8B C1 68 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 59 59 85 C0 74 ?? 8D 85 ?? ?? ?? ?? 50 FF 75 
            ?? FF 15 ?? ?? ?? ?? 85 C0 0F 84 ?? ?? ?? ?? BE ?? ?? ?? ?? 8D 7D ?? A5 A5 A5 A5 33
  

Detection condition:
uint16(0) == 0x5A4D and
        (
            (
                (
                    all of ($hermes_find_files_v1_p*)
                ) and
                (
                    all of ($hermes_encrypt_files_v1_p*)
                ) 
            ) or
            (
                (
               

Full rule:
rule Win32_Ransomware_Hermes : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

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

        tc_detection_type   = "Ransomware"
        tc_detection_name   = "Hermes"
        tc_detection_factor = 5

    strings:

        $hermes_find_files_v1_p1 = {
            A5 A5 A5 8D BD ?? ?? ?? ?? 66 AB BE ?? ?? ?? ?? 8D BD ?? ?? ?? ?? A5 A5 66 A5 68 ?? 
            ?? ?? ?? 8D BD ?? ?? ?? ?? 50 AB 8D 85 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 83 65 
            ?? ?? 8B 5D ?? 8B FB 4F 4F 8D 47 ?? 66 8B 4F ?? 47 47 66 85 C9 75 ?? BE ?? ?? ?? ?? 
            A5 A5 8D 8D ?? ?? ?? ?? 51 50 66 A5 FF 15 ?? ?? ?? ?? 68 ?? ?? ?? ?? 53 89 45 ?? E8 
            ?? ?? ?? ?? 59 59 8B C8 E8 ?? ?? ?? ?? 8B CB 8B D0 E8 ?? ?? ?? ?? 2B C2 33 C9 83 7D 
            ?? ?? 66 89 0C 43 0F 84 ?? ?? ?? ?? 8D 8D ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 F8 ?? 75 ?? 
            8B C1 6A ?? 50 E8 ?? ?? ?? ?? 59 59 85 C0 74 ?? 8D 85 ?? ?? ?? ?? 50 FF 75 ?? FF 15 
            ?? ?? ?? ?? 85 C0 0F 84 ?? ?? ?? ?? 8D 8D ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 F8 ?? 75 ?? 
            8B C1 68 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 59 59 85 C0 74 ?? 8D 85 ?? ?? ?? ?? 50 FF 75 
            ?? FF 15 ?? ?? ?? ?? 85 C0 0F 84 ?? ?? ?? ?? BE ?? ?? ?? ?? 8D 7D ?? A5 A5 A5 A5 33
        }

        $hermes_find_files_v1_p2 = {
            C0 6A ?? 59 6A ?? 8D 7D ?? 66 AB BE ?? ?? ?? ?? 8D BD ?? ?? ?? ?? F3 A5 59 BE ?? ?? 
            ?? ?? 8D BD ?? ?? ?? ?? F3 A5 BE ?? ?? ?? ?? 8D 7D ?? A5 A5 A5 A5 6A ?? 59 8D 7D ?? 
            AB BE ?? ?? ?? ?? 8D BD ?? ?? ?? ?? F3 A5 8D BD ?? ?? ?? ?? AB AB 66 AB BE ?? ?? ?? 
            ?? 8D 7D ?? A5 A5 A5 A5 33 C0 6A ?? 8D 7D ?? AB 59 BE ?? ?? ?? ?? 8D BD ?? ?? ?? ?? 
            F3 A5 66 A5 8D BD ??