/*
    YARA Hunting Rules for Cometer (Rat)
    Source: SystemHelpDesk Malware Families Catalog
    Reference: https://malware-families-catalog.systemhelpdesk.com/families/cometer
    License: Apache-2.0
    Generated: 2026-10-16
*/

rule MALWARE_WIN_COMETER_T1_ARTIFACT
{
    meta:
        description = "Tier 1 Primitive Artifact: Raw string matches for Cometer (Rat)"
        category = "Rat"
        tier = "T1 - Primitive Artifact"
        confidence = "Medium (Fast Triage)"
        author = "SystemHelpDesk Threat Research Desk"
        reference = "https://malware-families-catalog.systemhelpdesk.com/families/cometer"
        date = "2026-10-16"
    strings:
        $fam_name = "cometer" ascii wide nocase
        $alias_1 = "backdoor:win32/cometer" ascii wide nocase
        $alias_2 = "trojan:win32/cometer" ascii wide nocase
        $alias_3 = "backdoor.win32.cometer" ascii wide nocase
        $alias_4 = "win32/cometer" ascii wide nocase
        $alias_5 = "trojan.cometer" ascii wide nocase
    condition:
        uint16(0) == 0x5a4d and any of them
}

rule MALWARE_WIN_COMETER_T3_ATTRIBUTION
{
    meta:
        description = "Tier 3 Attribution Fingerprint: Heuristic detection for Cometer tradecraft"
        category = "Rat"
        tier = "T3 - Attribution Fingerprint"
        confidence = "High (Confirmed Family Signature)"
        author = "SystemHelpDesk Threat Research Desk"
        reference = "https://malware-families-catalog.systemhelpdesk.com/families/cometer"
        date = "2026-10-16"
    strings:
        $attrib_str = "cometer" ascii wide nocase
        $pe_magic = "MZ" ascii
        $net_marker1 = "http" ascii nocase
        $net_marker2 = "POST" ascii
        $net_marker3 = "User-Agent:" ascii nocase
        $rat_marker1 = "SetWindowsHookEx" ascii
        $rat_marker2 = "CurrentVersion\\Run" ascii wide nocase
        $shell_marker = "cmd.exe" ascii wide nocase
    condition:
        uint16(0) == 0x5a4d and $attrib_str and (2 of ($rat_marker*, $shell_marker))
}
