YARA Detection Rule: Linux_Rootkit_Pumakit
Repository: reversinglabs/reversinglabs-yara-rules
Detects: Yara rule that detects Pumakit rootkit.
Malware family: PUMAKIT
Author: ReversingLabs

Pattern signatures:
$hooking_syscalls_mechanism_p1 = {
            E8 ?? ?? ?? ?? 55 48 C7 C7 ?? ?? ?? ?? 48 89 E5 41 57 41 56 41 55 41 54 53 51 E8 ??
            ?? ?? ?? 48 C7 C7 ?? ?? ?? ?? 48 8B 1D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 C7 C7 ?? ?? ??
            ?? E8 ?? ?? ?? ?? 31 D2 48 89 05 ?? ?? ?? ?? 48 8B BA ?? ?? ?? ?? 48 85 FF 75 ?? 48
            8B 8A ?? ?? ?? ?? 48 85 C9 74 ?? B8 ?? ?? ?? ?? 80 7C 01 ?? ?? 75 ?? 48 63 74 01 ??
            48 01 C6 48 01 CE 48 81 FE ?? ?? ?? ?? 75 ?? 48 8D 3C 01 EB ?? 48 FF C0 48 83 F8 ??
            75 ?? 48 89 BA ?? ?? ?? ?? 48 81 C2 ?? ?? ?? ?? 48 81 FA ?? ?? ?? ?? 75 ?? 48 C7 C3
            ?? ?? ?? ?? 49 C7 C5 ?? ?? ?? ?? 48 83 7B ?? ?? 0F 85 ?? ?? ?? ?? 48 C7 C7 ?? ?? ??
            ?? E8 ?? ?? ?? ?? 48 C7 C7 ?? ?? ?? ?? 4C 8B 25 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B 3B
            2E E8 ?? ?? ?? ?? 49 89 C4 48 85 C0 0F 84 ?? ?? ?? ?? 48 89 43 ?? 48 8B 05 ?? ?? ??
            ?? 4D 8D 74 24 ?? 4D 89 E7 48 8B 40 ?? 48 89 45 ?? 48 8B 75 ?? BA ?? ?? ?? ?? 4C 89
     

Detection condition:
uint32(0) == 0x464C457F and
        (
            all of ($hooking_syscalls_mechanism_p*)
        ) and
        (
            all of ($hook_rmdir_*)
        ) and
        (
            $hook_gdents64
        )

Full rule:
rule Linux_Rootkit_Pumakit : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

        source              = "ReversingLabs"
        status              = "RELEASED"
        sharing             = "TLP:WHITE"
        category            = "MALWARE"
        malware             = "PUMAKIT"
        description         = "Yara rule that detects Pumakit rootkit."

        tc_detection_type   = "Rootkit"
        tc_detection_name   = "Pumakit"
        tc_detection_factor = 4

    strings:

        $hooking_syscalls_mechanism_p1 = {
            E8 ?? ?? ?? ?? 55 48 C7 C7 ?? ?? ?? ?? 48 89 E5 41 57 41 56 41 55 41 54 53 51 E8 ??
            ?? ?? ?? 48 C7 C7 ?? ?? ?? ?? 48 8B 1D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 C7 C7 ?? ?? ??
            ?? E8 ?? ?? ?? ?? 31 D2 48 89 05 ?? ?? ?? ?? 48 8B BA ?? ?? ?? ?? 48 85 FF 75 ?? 48
            8B 8A ?? ?? ?? ?? 48 85 C9 74 ?? B8 ?? ?? ?? ?? 80 7C 01 ?? ?? 75 ?? 48 63 74 01 ??
            48 01 C6 48 01 CE 48 81 FE ?? ?? ?? ?? 75 ?? 48 8D 3C 01 EB ?? 48 FF C0 48 83 F8 ??
            75 ?? 48 89 BA ?? ?? ?? ?? 48 81 C2 ?? ?? ?? ?? 48 81 FA ?? ?? ?? ?? 75 ?? 48 C7 C3
            ?? ?? ?? ?? 49 C7 C5 ?? ?? ?? ?? 48 83 7B ?? ?? 0F 85 ?? ?? ?? ?? 48 C7 C7 ?? ?? ??
            ?? E8 ?? ?? ?? ?? 48 C7 C7 ?? ?? ?? ?? 4C 8B 25 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B 3B
            2E E8 ?? ?? ?? ?? 49 89 C4 48 85 C0 0F 84 ?? ?? ?? ?? 48 89 43 ?? 48 8B 05 ?? ?? ??
            ?? 4D 8D 74 24 ?? 4D 89 E7 48 8B 40 ?? 48 89 45 ?? 48 8B 75 ?? BA ?? ?? ?? ?? 4C 89
            FF E8 ?? ?? ?? ?? 85 C0 74 ?? 49 FF C7 4D 39 FE 75 ?? EB ?? 4D 85 FF 74 ?? 31 C0 4D
            39 FC 0F 94 C0 89 43 ?? 74 ?? 31 C0 41 81 3C 24 ?? ?? ?? ?? 0F 94 C0 89 43 ?? 4C 89
            7B ?? 83 7B ?? ?? 74 ?? 48 8B 43 ?? 4C 89 20 83 7B ?? ?? 74 ?? 48 8B 43 ?? 48 8B 53
            ?? 48 83 C0 ?? 48 89 02 83 7B ?? ?? 75 ?? 48 8B 73 ?? 48 85 F6 74 ?? 48 C7 43 ?? ??
            ?? ?? ?? 4C 8D 63 ?? 31 C9 31 D2 48 C7 43 ?? ?? ?? ?? ?? 4C 89 E7 E8 ?? ?? ?? ??