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 ?? ?? ?? ?? 85 C0 75 ?? 4C 89 E7 E8 ?? ?? ?? ?? 85 C0 75 ?? C7 43 ?? ?? ?? ?? ?? 48 81 C3 ?? ?? ?? ?? 49 39 DD 0F 85 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 50 ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 80 } $hooking_syscalls_mechanism_p2 = { 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 50 ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 50 ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 50 ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 50 ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 50 ?? 48 C7 80 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 10 48 C7 40 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 50 ?? 48 C7 00 ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 8B 90 ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 80 } $hook_rmdir_1 = { E8 ?? ?? ?? ?? 55 B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 48 89 E5 41 57 41 56 41 55 41 54 53 48 89 FB 48 81 EC ?? ?? ?? ?? 4C 8B 67 ?? 48 8D BD ?? ?? ?? ?? 65 48 8B 04 25 ?? ?? ?? ?? 48 89 45 ?? 31 C0 48 C7 45 ?? ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 4C 89 E6 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? F3 48 AB 48 8D BD ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 85 C0 7F ?? 48 8B 05 ?? ?? ?? ?? 48 89 DF E8 ?? ?? ?? ?? 48 8B 55 ?? 65 48 2B 14 25 ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 81 C4 ?? ?? ?? ?? 5B 41 5C 41 5D 41 5E 41 5F 5D E9 ?? ?? ?? ?? BE ?? ?? ?? ?? 48 8D BD ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 3D ?? ?? ?? ?? 0F 87 ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 48 83 F8 ?? 76 ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 31 C0 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 0F B6 B4 05 ?? ?? ?? ?? 40 38 B0 ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 83 C0 ?? 48 83 F8 ?? 75 ?? BE ?? ?? ?? ?? 48 8D BD ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 3D ?? ?? ?? ?? 0F 87 ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 8D 50 ?? 83 FA ?? 0F 8E ?? ?? ?? ?? 0F B6 B5 ?? ?? ?? ?? 83 FA ?? 7E ?? 40 80 FE ?? 7E ?? 83 E8 ?? BA ?? ?? ?? ?? 85 C0 7F ?? EB ?? 39 C8 7E ?? 0F B6 8C 15 ?? ?? ?? ?? 88 8C 15 ?? ?? ?? ?? 89 D1 48 83 C2 ?? 83 F9 ?? 75 ?? 40 80 FE ?? 0F 84 ?? ?? ?? ?? 0F 8F ?? ?? ?? ?? 40 80 FE ?? 0F 84 ?? ?? ?? ?? 0F 8E ?? ?? ?? ?? 40 80 FE ?? 0F 85 ?? ?? ?? ?? 65 48 8B 04 25 ?? ?? ?? ?? 48 63 90 ?? ?? ?? ?? 48 85 D2 0F 8E ?? ?? ?? ?? 48 C7 C0 ?? ?? ?? ?? 49 C7 C5 ?? ?? ?? ?? EB ?? 48 83 C0 ?? 48 3D ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 48 3B 10 75 ?? 48 8B 3D ?? ?? ?? ?? BA } $hook_rmdir_2 = { BE ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 89 85 ?? ?? ?? ?? 48 85 C0 0F 84 ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 48 8B BD ?? ?? ?? ?? 48 C7 C1 ?? ?? ?? ?? 48 C7 C2 ?? ?? ?? ?? BE ?? ?? ?? ?? 49 C7 C6 ?? ?? ?? ?? E8 ?? ?? ?? ?? 41 89 C7 41 80 7D ?? ?? 4C 89 E9 75 ?? 41 8B 06 85 C0 74 ?? 48 C7 C1 ?? ?? ?? ?? 48 8B 85 ?? ?? ?? ?? BE ?? ?? ?? ?? 49 63 FF 4D 89 F0 44 29 FE 48 C7 C2 ?? ?? ?? ?? 48 63 F6 48 01 C7 E8 ?? ?? ?? ?? 41 01 C7 49 83 C5 ?? 49 83 C6 ?? 49 81 FD ?? ?? ?? ?? 75 ?? 48 8B 85 ?? ?? ?? ?? BE ?? ?? ?? ?? 49 63 FF 48 C7 C2 ?? ?? ?? ?? 44 29 FE 48 63 F6 48 01 C7 E8 ?? ?? ?? ?? 46 8D 2C 38 4D 63 ED 49 81 FD ?? ?? ?? ?? 0F 87 ?? ?? ?? ?? 4C 8B BD ?? ?? ?? ?? BA ?? ?? ?? ?? 4C 89 EE 4C 89 FF E8 ?? ?? ?? ?? 4C 89 EA 4C 89 FE 4C 89 E7 E8 ?? ?? ?? ?? 48 8B BD } $hook_rmdir_3 = { 49 83 C5 ?? 3D ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 41 80 7D ?? ?? 75 ?? 48 98 48 8D B5 ?? ?? ?? ?? 48 8D BD ?? ?? ?? ?? 48 8D 04 40 48 C1 E0 ?? C6 80 ?? ?? ?? ?? ?? 48 8B 95 ?? ?? ?? ?? 4C 8D A0 ?? ?? ?? ?? 48 89 90 ?? ?? ?? ?? 48 8B 85 ?? ?? ?? ?? BA ?? ?? ?? ?? 49 89 44 24 ?? E8 ?? ?? ?? ?? 49 89 44 24 ?? E9 ?? ?? ?? ?? 40 80 FE ?? 0F 84 ?? ?? ?? ?? 40 80 FE ?? 0F 85 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 83 3D ?? ?? ?? ?? ?? 0F 8F ?? ?? ?? ?? 65 48 8B 04 25 ?? ?? ?? ?? 48 63 B8 ?? ?? ?? ?? 48 89 3D ?? ?? ?? ?? E8 ?? ?? ?? ?? 31 C0 E9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 89 C7 48 85 C0 0F 84 ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? E9 ?? ?? ?? ?? 0F BE 85 ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 48 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 48 8D 8D ?? ?? ?? ?? BE ?? ?? ?? ?? 31 D2 EB ?? 8D 14 92 8D 54 50 ?? 0F BE 41 ?? 48 83 C1 ?? 84 C0 0F 84 ?? ?? ?? ?? 8D 78 ?? 40 80 FF ?? 76 ?? 3C ?? 0F 85 ?? ?? ?? ?? 81 FA ?? ?? ?? ?? 0F 8F ?? ?? ?? ?? 83 FE ?? 0F 8F ?? ?? ?? ?? 48 63 C6 83 EE ?? 89 94 85 ?? ?? ?? ?? 31 D2 EB ?? 49 C7 C5 ?? ?? ?? ?? 49 8B 45 ?? 48 85 C0 0F 84 ?? ?? ?? ?? 49 83 7D ?? ?? 0F 89 ?? ?? ?? ?? 4D 85 ED 0F 84 ?? ?? ?? ?? 41 8B 45 ?? BA ?? ?? ?? ?? 4C 89 E7 48 8D B5 ?? ?? ?? ?? 4D 8D B5 ?? ?? ?? ?? 88 85 ?? ?? ?? ?? E8 ?? ?? ?? ?? 49 } $hook_rmdir_4 = { 8D 75 ?? 49 8D 7C 24 ?? BA ?? ?? ?? ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 4C 89 F7 E8 ?? ?? ?? ?? 49 89 C7 48 3D ?? ?? ?? ?? 0F 87 ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 48 89 C6 BA ?? ?? ?? ?? 4C 89 F7 E8 ?? ?? ?? ?? 49 8D 7C 24 ?? 4C 89 F6 4C 89 FA E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 4C 89 F7 E8 ?? ?? ?? ?? 48 3D ?? ?? ?? ?? 0F 87 ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 49 63 8D ?? ?? ?? ?? 83 C0 ?? 4D 8D 7D ?? 49 01 C4 48 81 F9 ?? ?? ?? ?? 0F 87 ?? ?? ?? ?? BA ?? ?? ?? ?? 48 89 CE 4C 89 FF 48 89 8D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B 95 ?? ?? ?? ?? 4C 89 FE 4C 89 E7 E8 ?? ?? ?? ?? 31 C0 B9 ?? ?? ?? ?? 4C 89 F7 BA ?? ?? ?? ?? F3 48 AB 31 F6 4C 89 FF E8 ?? ?? ?? ?? 41 C7 45 ?? ?? ?? ?? ?? 49 C7 45 ?? ?? ?? ?? ?? 41 C7 85 ?? ?? ?? ?? ?? ?? ?? ?? 49 C7 45 ?? ?? ?? ?? ?? E9 ?? ?? ?? ?? 49 8D 95 ?? ?? ?? ?? 49 81 FD ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 49 89 D5 E9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 89 C7 48 85 C0 0F 84 ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 31 C0 E9 ?? ?? ?? ?? BA ?? ?? ?? ?? 48 C7 C6 ?? ?? ?? ?? 4C 89 E7 E8 ?? ?? ?? ?? E9 ?? ?? ?? ?? BE ?? ?? ?? ?? 31 D2 48 63 F6 89 94 B5 ?? ?? ?? ?? 8B 95 ?? ?? ?? ?? 8B 85 ?? ?? ?? ?? C1 E2 ?? C1 E0 ?? 09 C2 8B 85 ?? ?? ?? ?? 0B 95 ?? ?? ?? ?? C1 E0 ?? 09 C2 0F 84 } $hook_gdents64 = { E8 ?? ?? ?? ?? 55 48 89 E5 41 57 41 56 41 55 41 54 53 48 83 EC ?? 48 8B 47 ?? 4C 8B 6F ?? 48 89 45 ?? 48 8B 05 ?? ?? ?? ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 48 63 D8 89 45 ?? 49 89 C4 48 89 DF E8 ?? ?? ?? ?? 48 89 45 ?? 45 85 E4 7E ?? 48 85 C0 74 ?? 48 89 C7 31 D2 48 89 DE 49 89 C6 E8 ?? ?? ?? ?? 48 8B 75 ?? 48 89 DA 4C 89 F7 E8 ?? ?? ?? ?? 49 89 C4 48 85 C0 74 ?? 48 8B 7D ?? E8 ?? ?? ?? ?? 48 83 C4 ?? 48 89 D8 5B 41 5C 41 5D 41 5E 41 5F 5D E9 ?? ?? ?? ?? 44 89 EF 48 C7 C3 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 C7 45 ?? ?? ?? ?? ?? 89 45 ?? EB ?? 8B 45 ?? 85 C0 74 ?? 4C 89 75 ?? 41 0F B7 46 ?? 4C 63 6D ?? 49 01 C4 4D 39 EC 0F 83 ?? ?? ?? ?? 48 8B 45 ?? 83 7D ?? ?? 4E 8D 34 20 75 ?? 4D 89 F5 49 83 C5 ?? 0F 84 ?? ?? ?? ?? 49 C7 C7 ?? ?? ?? ?? EB ?? 49 83 C7 ?? 4C 39 FB 74 ?? 41 80 3F ?? 74 ?? 4C 89 EE 4C 89 FF E8 ?? ?? ?? ?? 85 C0 75 ?? 48 8B 45 ?? 49 39 C6 74 ?? 48 8B 4D ?? 41 0F B7 46 ?? 66 01 41 ?? EB ?? 49 83 FE ?? 74 ?? 41 81 7E ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8B 45 ?? 49 39 C6 75 ?? 0F B7 50 ?? 29 55 ?? 48 89 C7 4C 63 6D ?? 48 8D 34 10 4C 89 EA E8 ?? ?? ?? ?? 4D 39 EC 0F 82 ?? ?? ?? ?? 4C 89 EB 49 81 FD ?? ?? ?? ?? 77 ?? 4C 8B 75 ?? 4C 89 EE BA ?? ?? ?? ?? 4C 89 F7 E8 ?? ?? ?? ?? 48 8B 7D ?? 4C 89 EA 4C 89 F6 E8 } condition: uint32(0) == 0x464C457F and ( all of ($hooking_syscalls_mechanism_p*) ) and ( all of ($hook_rmdir_*) ) and ( $hook_gdents64 ) }