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*) ) }