← Back to SOC feed Coverage →

Yara rule that detects PygmyGoat backdoor.

yara LOW ReversingLabs
backdoormalware-familypygmygoat
This rule was pulled from an open-source repository and enriched with AI. Validate in a test environment before deploying to production.
View original rule at ReversingLabs →
Retrieved: 2026-08-28T11:00:00Z · Confidence: medium

Hunt Hypothesis

This detection identifies the presence of the PygmyGoat backdoor by scanning for its unique signature patterns within Azure Sentinel’s workload. Proactive hunting is essential to uncover dormant or early-stage infections that may evade standard alerting thresholds due to the rule’s low severity, ensuring timely containment before lateral movement occurs.

YARA Rule

rule Linux_Backdoor_PygmyGoat : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

        source              = "ReversingLabs"
        status              = "RELEASED"
        sharing             = "TLP:WHITE"
        category            = "MALWARE"
        malware             = "PYGMYGOAT"
        description         = "Yara rule that detects PygmyGoat backdoor."

        tc_detection_type   = "Backdoor"
        tc_detection_name   = "PygmyGoat"
        tc_detection_factor = 5

    strings:

        $create_backdoor_socket = {
            55 89 E5 57 56 53 81 EC ?? ?? ?? ?? E8 ?? ?? ?? ?? 81 C3 ?? ?? ?? ?? 8D 85 ?? ?? ??
            ?? B9 ?? ?? ?? ?? BE ?? ?? ?? ?? 89 30 89 74 08 ?? 8D 50 ?? 83 E2 ?? 29 D0 01 C1 83
            E1 ?? C1 E9 ?? 89 D7 89 F0 F3 AB 83 EC ?? 6A ?? 6A ?? 6A ?? E8 ?? ?? ?? ?? 83 C4 ??
            89 45 ?? 83 7D ?? ?? 79 ?? B8 ?? ?? ?? ?? E9 ?? ?? ?? ?? 66 C7 85 ?? ?? ?? ?? ?? ??
            8D 83 ?? ?? ?? ?? 50 8D 83 ?? ?? ?? ?? 50 6A ?? 8D 85 ?? ?? ?? ?? 83 C0 ?? 50 E8 ??
            ?? ?? ?? 83 C4 ?? 83 EC ?? 8D 85 ?? ?? ?? ?? 83 C0 ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 83
            C0 ?? 89 45 ?? 83 EC ?? 8D 85 ?? ?? ?? ?? 83 C0 ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 8B 45
            ?? 83 EC ?? 50 8D 85 ?? ?? ?? ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 89 45 ?? 83 7D
            ?? ?? 79 ?? 83 EC ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? B8 ?? ?? ?? ?? E9 ?? ?? ?? ??
            83 EC ?? 68 ?? ?? ?? ?? 8D 85 ?? ?? ?? ?? 83 C0 ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 85 C0
            79 ?? 83 EC ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? B8 ?? ?? ?? ?? E9 ?? ?? ?? ?? 8D 85
            ?? ?? ?? ?? C7 00 ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? 66 C7 40 ??
            ?? ?? C6 40 ?? ?? 83 EC ?? 6A ?? 6A ?? 8D 85 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4 ??
            66 C7 85 ?? ?? ?? ?? ?? ?? 83 EC ?? 8D 85 ?? ?? ?? ?? 50 8D 85 ?? ?? ?? ?? 83 C0 ??
            50 E8 ?? ?? ?? ?? 83 C4 ?? 83 EC ?? 8D 85 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 83
            C0 ?? 89 45 ?? 83 EC ?? 6A ?? 8D 85 ?? ?? ?? ?? 83 C0 ?? 50 E8 ?? ?? ?? ?? 83 C4 ??
            85 C0 74 ?? 83 EC ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? B8 ?? ?? ?? ?? EB ?? 8B 45 ??
            83 EC ?? 50 8D 85 ?? ?? ?? ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 89 45 ?? 83 7D ??
            ?? 79 ?? 83 EC ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? B8 ?? ?? ?? ?? EB ?? 8B 45 ?? 8D
            65 ?? 5B 5E 5F 5D C3
        }

        $backdoor_dataforward_p1 = {
            55 89 E5 57 56 53 81 EC ?? ?? ?? ?? E8 ?? ?? ?? ?? 81 C3 ?? ?? ?? ?? BE ?? ?? ?? ??
            BA ?? ?? ?? ?? 8D 85 ?? ?? ?? ?? 89 D1 89 C2 89 D7 89 F0 FC F3 AB 89 FA 89 4D ?? 89
            55 ?? 8B 45 ?? 39 45 ?? 0F 4D 45 ?? 83 C0 ?? 89 45 ?? 83 7D ?? ?? 0F 88 ?? ?? ?? ??
            83 7D ?? ?? 0F 88 ?? ?? ?? ?? 8B 45 ?? C1 E8 ?? 8B 55 ?? 83 E2 ?? 0F AB 94 85 ?? ??
            ?? ?? 8B 45 ?? C1 E8 ?? 8B 55 ?? 83 E2 ?? 0F AB 94 85 ?? ?? ?? ?? 83 EC ?? 6A ?? 6A
            ?? 6A ?? 8D 85 ?? ?? ?? ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 89 45 ?? 83 7D ?? ??
            79 ?? E8 ?? ?? ?? ?? 8B 00 83 F8 ?? 75 ?? E9 ?? ?? ?? ?? E9 ?? ?? ?? ?? 8B 45 ?? 83
            E0 ?? 8B 55 ?? C1 EA ?? 0F A3 84 95 ?? ?? ?? ?? 0F 92 C0 89 C6 89 F0 84 C0 0F 84 ??
            ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 8D 85 ?? ?? ?? ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ??
            89 45 ?? 83 7D ?? ?? 79 ?? E8 ?? ?? ?? ?? 8B 00 83 F8 ?? 75 ?? E9 ?? ?? ?? ?? E8 ??
            ?? ?? ?? 8B 00 83 F8 ?? 75 ?? E9 ?? ?? ?? ?? E9 ?? ?? ?? ?? 83 7D ?? ?? 75 ?? E9 ??
            ?? ?? ?? 8B 45 ?? 68 ?? ?? ?? ?? 50 8D 85 ?? ?? ?? ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83
        }

        $backdoor_dataforward_p2 = {
            C4 ?? 89 45 ?? 83 7D ?? ?? 79 ?? E8 ?? ?? ?? ?? 8B 00 83 F8 ?? 75 ?? E9 ?? ?? ?? ??
            E8 ?? ?? ?? ?? 8B 00 83 F8 ?? 75 ?? E9 ?? ?? ?? ?? E9 ?? ?? ?? ?? 8B 45 ?? 83 E0 ??
            8B 55 ?? C1 EA ?? 0F A3 84 95 ?? ?? ?? ?? 0F 92 C0 89 C6 89 F0 84 C0 0F 84 ?? ?? ??
            ?? 6A ?? 68 ?? ?? ?? ?? 8D 85 ?? ?? ?? ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 89 45
            ?? 83 7D ?? ?? 79 ?? E8 ?? ?? ?? ?? 8B 00 83 F8 ?? 75 ?? EB ?? E8 ?? ?? ?? ?? 8B 00
            83 F8 ?? 75 ?? EB ?? EB ?? 83 7D ?? ?? 75 ?? EB ?? 8B 45 ?? 68 ?? ?? ?? ?? 50 8D 85
            ?? ?? ?? ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 89 45 ?? 83 7D ?? ?? 79 ?? E8 ?? ??
            ?? ?? 8B 00 83 F8 ?? 75 ?? EB ?? E8 ?? ?? ?? ?? 8B 00 83 F8 ?? 75 ?? EB ?? EB ?? E9
            ?? ?? ?? ?? 83 EC ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 83 EC ?? FF 75 ?? E8 ?? ?? ??
            ?? 83 C4 ?? B8 ?? ?? ?? ?? 8D 65 ?? 5B 5E 5F 5D C3
        }

        $main_constructor = {
            55 89 E5 53 83 EC ?? E8 ?? ?? ?? ?? 81 C3 ?? ?? ?? ?? 8D 83 ?? ?? ?? ?? 89 45 ?? 8D
            83 ?? ?? ?? ?? 89 45 ?? C7 45 ?? ?? ?? ?? ?? 83 EC ?? 8D 83 ?? ?? ?? ?? 50 E8 ?? ??
            ?? ?? 83 C4 ?? 83 EC ?? 6A ?? 8D 45 ?? 50 8D 83 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4
            ?? 85 C0 79 ?? E9 ?? ?? ?? ?? 83 EC ?? 8D 83 ?? ?? ?? ?? 50 8D 83 ?? ?? ?? ?? 50 E8
            ?? ?? ?? ?? 83 C4 ?? 89 45 ?? 83 7D ?? ?? 75 ?? E9 ?? ?? ?? ?? 83 EC ?? 8D 45 ?? 50
            8D 83 ?? ?? ?? ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 83 F8 ?? 74 ?? 83 EC ?? FF 75
            ?? E8 ?? ?? ?? ?? 83 C4 ?? E9 ?? ?? ?? ?? 83 EC ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ??
            8B 45 ?? 83 F8 ?? 77 ?? 8B 45 ?? BA ?? ?? ?? ?? 29 C2 89 D0 83 EC ?? 50 E8 ?? ?? ??
            ?? 83 C4 ?? 83 EC ?? 68 ?? ?? ?? ?? 6A ?? 8D 83 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4
            ?? 89 83 ?? ?? ?? ?? 8B 83 ?? ?? ?? ?? 85 C0 79 ?? E9 ?? ?? ?? ?? 8B 83 ?? ?? ?? ??
            83 EC ?? 6A ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 85 C0 79 ?? E9 ?? ?? ?? ?? E8 ?? ?? ?? ??
            50 8D 83 ?? ?? ?? ?? 50 6A ?? 8D 45 ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 83 EC ?? 8D 45 ??
            50 E8 ?? ?? ?? ?? 83 C4 ?? 89 C2 8B 83 ?? ?? ?? ?? 83 EC ?? 52 8D 55 ?? 52 50 E8 ??
            ?? ?? ?? 83 C4 ?? E8 ?? ?? ?? ?? 89 45 ?? 83 7D ?? ?? 78 ?? 83 7D ?? ?? 75 ?? 83 EC
            ?? 6A ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 83 F8 ?? 75 ?? 83 EC ?? 8D 83 ?? ?? ?? ??
            50 E8 ?? ?? ?? ?? 83 C4 ?? 83 EC ?? 8D 45 ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? E8 ?? ?? ??
            ?? 8B 83 ?? ?? ?? ?? 83 EC ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 8B 5D ?? C9 C3
        }

        $hook_accept_function_p1 = {
            55 89 E5 53 83 EC ?? E8 ?? ?? ?? ?? 81 C3 ?? ?? ?? ?? C7 45 ?? ?? ?? ?? ?? C7 45 ??
            ?? ?? ?? ?? C7 45 ?? ?? ?? ?? ?? 83 EC ?? 8D 83 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4
            ?? 83 EC ?? 8D 83 ?? ?? ?? ?? 50 6A ?? E8 ?? ?? ?? ?? 83 C4 ?? 89 45 ?? 83 7D ?? ??
            74 ?? 8B 45 ?? 8B 00 89 45 ?? 83 7D ?? ?? 75 ?? B8 ?? ?? ?? ?? E9 ?? ?? ?? ?? 83 EC
            ?? FF 75 ?? FF 75 ?? FF 75 ?? 8B 45 ?? FF D0 83 C4 ?? 89 45 ?? 83 7D ?? ?? 79 ?? E9
            ?? ?? ?? ?? 83 EC ?? 6A ?? 6A ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 83 F8 ?? 0F 94 C0
            0F B6 C0 89 45 ?? 83 7D ?? ?? 74 ?? E9 ?? ?? ?? ?? 81 65 ?? ?? ?? ?? ?? 83 EC ?? 6A
            ?? 6A ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 83 F8 ?? 75 ?? E9 ?? ?? ?? ?? C7 45 ?? ??
            ?? ?? ?? EB ?? 6A ?? 6A ?? 8D 45 ?? 50 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 89 45 ?? 83
            7D ?? ?? 0F 84 ?? ?? ?? ?? 83 7D ?? ?? 7E ?? 8B 45 ?? 83 EC ?? 50 8D 83 ?? ?? ?? ??
            50 8D 45 ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 85 C0 0F 85 ?? ?? ?? ?? 83 7D ?? ?? 7E ?? EB
            ?? 83 EC ?? 6A ?? 8D 45 ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 83 45 ?? ?? 83 7D ?? ?? 76
        }

        $hook_accept_function_p2 = {
            83 7D ?? ?? 76 ?? E9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 45 ?? 83 7D ?? ?? 79 ?? E9 ?? ??
            ?? ?? 83 7D ?? ?? 0F 85 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 45 ?? 83 7D ?? ?? 79 ?? E9 ??
            ?? ?? ?? 83 7D ?? ?? 0F 85 ?? ?? ?? ?? E8 ?? ?? ?? ?? C7 45 ?? ?? ?? ?? ?? EB ?? 8B
            45 ?? 3B 45 ?? 75 ?? EB ?? 83 EC ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 83 45 ?? ?? 81
            7D ?? ?? ?? ?? ?? 7E ?? E8 ?? ?? ?? ?? 89 45 ?? 83 7D ?? ?? 79 ?? 83 EC ?? FF 75 ??
            E8 ?? ?? ?? ?? 83 C4 ?? 83 EC ?? 6A ?? E8 ?? ?? ?? ?? 83 EC ?? FF 75 ?? FF 75 ?? E8
            ?? ?? ?? ?? 83 C4 ?? 89 45 ?? 83 7D ?? ?? 79 ?? 83 EC ?? 6A ?? E8 ?? ?? ?? ?? 83 EC
            ?? 6A ?? E8 ?? ?? ?? ?? 83 EC ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 83 EC ?? 6A ?? E8
            ?? ?? ?? ?? 83 EC ?? 6A ?? 6A ?? FF 75 ?? E8 ?? ?? ?? ?? 83 C4 ?? 83 EC ?? FF 75 ??
            E8 ?? ?? ?? ?? 83 C4 ?? 83 7D ?? ?? 74 ?? 8B 45 ?? 8B 00 83 EC ?? 50 6A ?? FF 75 ??
            E8 ?? ?? ?? ?? 83 C4 ?? 8B 45 ?? 8B 55 ?? 89 10 83 EC ?? FF 75 ?? FF 75 ?? FF 75 ??
            E8 ?? ?? ?? ?? 83 C4 ?? EB ?? 8B 45 ?? 8B 5D ?? C9 C3
        }

    condition:
        uint32(0) == 0x464C457F and
        (
            $create_backdoor_socket
        ) and
        (
            all of ($backdoor_dataforward_p*)
        ) and
        (
            $main_constructor
        ) and
        (
            all of ($hook_accept_function_p*)
        )
}

Deployment Notes

This YARA rule can be deployed in the following contexts:

This rule contains 6 string patterns in its detection logic.

False Positive Guidance

Here are 4 specific false positive scenarios for the PygmyGoat detection rule in an enterprise environment, along with suggested filters and exclusions:

Original source: https://github.com/reversinglabs/reversinglabs-yara-rules/blob/main/yara/backdoor/Linux.Backdoor.PygmyGoat.yara