SYMBOLCOMMON_NAMEaka. SYNONYMS
elf.pumakit (Back to overview)

PUMAKIT

aka: PUMA, Kitsune

According to Elastic, PUMAKIT is a sophisticated loadable kernel module (LKM) rootkit that employs advanced stealth mechanisms to hide its presence and maintain communication with command-and-control servers.

The rootkit component, referenced by the malware authors as “PUMA", employs an internal Linux function tracer (ftrace) to hook 18 different syscalls and several kernel functions, enabling it to manipulate core system behaviors. Unique methods are used to interact with PUMA, including using the rmdir() syscall for privilege escalation and specialized commands for extracting configuration and runtime information.

Key functionalities of the kernel module include privilege escalation, hiding files and directories, concealing itself from system tools, anti-debugging measures, and establishing communication with command-and-control (C2) servers.

There is also an accompanying userland SO rootkit internally referred to as Kitsune.

References
2024-10-13ElasticRemco Sprooten, Ruben Groenewoud
Declawing PUMAKIT
PUMAKIT
Yara Rules
[TLP:WHITE] elf_pumakit_w0 (20241213 | No description)
rule elf_pumakit_w0 {
    meta:
        author = "Elastic Security"
        creation_date = "2024-12-09"
        last_modified = "2024-12-09"
        os = "Linux"
        arch = "x86, arm64"
        threat_name = "Linux.Trojan.Pumakit"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/elf.pumakit"
        malpedia_rule_date = "20241213"
        malpedia_hash = ""
        malpedia_version = "20241213"
        malpedia_license = "CC BY-SA 4.0"
        malpedia_sharing = "TLP:WHITE"

    strings:
        $str1 = "PUMA %s"
        $str2 = "Kitsune PID %ld"
        $str3 = "/usr/share/zov_f"
        $str4 = "zarya"
        $str5 = ".puma-config"
        $str6 = "ping_interval_s"
        $str7 = "session_timeout_s"
        $str8 = "c2_timeout_s"
        $str9 = "LD_PRELOAD=/lib64/libs.so"
        $str10 = "kit_so_len"
        $str11 = "opsecurity1.art"
        $str12 = "89.23.113.204"
    
    condition:
        4 of them
}
Download all Yara Rules