Actor(s): Hacking Team, APT-C-34
There is no description at this point.
rule win_rcs_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2023-07-11" version = "1" description = "Detects win.rcs." info = "autogenerated rule brought to you by yara-signator" tool = "yara-signator v0.6.0" signator_config = "callsandjumps;datarefs;binvalue" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.rcs" malpedia_rule_date = "20230705" malpedia_hash = "42d0574f4405bd7d2b154d321d345acb18834a41" malpedia_version = "20230715" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" /* DISCLAIMER * The strings used in this rule have been automatically selected from the * disassembly of memory dumps and unpacked files, using YARA-Signator. * The code and documentation is published here: * https://github.com/fxb-cocacoding/yara-signator * As Malpedia is used as data source, please note that for a given * number of families, only single samples are documented. * This likely impacts the degree of generalization these rules will offer. * Take the described generation method also into consideration when you * apply the rules in your use cases and assign them confidence levels. */ strings: $sequence_0 = { ff15???????? 5f 5e 5d 5b 33c0 } // n = 6, score = 200 // ff15???????? | // 5f | pop edi // 5e | pop esi // 5d | pop ebp // 5b | pop ebx // 33c0 | xor eax, eax $sequence_1 = { 89442456 8944245a 8944245e 89442462 89442466 8944246a } // n = 6, score = 200 // 89442456 | mov dword ptr [esp + 0x56], eax // 8944245a | mov dword ptr [esp + 0x5a], eax // 8944245e | mov dword ptr [esp + 0x5e], eax // 89442462 | mov dword ptr [esp + 0x62], eax // 89442466 | mov dword ptr [esp + 0x66], eax // 8944246a | mov dword ptr [esp + 0x6a], eax $sequence_2 = { e8???????? 83c430 6aff 68???????? } // n = 4, score = 200 // e8???????? | // 83c430 | add esp, 0x30 // 6aff | push -1 // 68???????? | $sequence_3 = { 85ff 0f84d4000000 57 e8???????? } // n = 4, score = 200 // 85ff | test edi, edi // 0f84d4000000 | je 0xda // 57 | push edi // e8???????? | $sequence_4 = { 6a00 6880000000 6a01 6a00 6a05 } // n = 5, score = 200 // 6a00 | push 0 // 6880000000 | push 0x80 // 6a01 | push 1 // 6a00 | push 0 // 6a05 | push 5 $sequence_5 = { 40 68???????? 50 e8???????? 83c40c eb0d } // n = 6, score = 200 // 40 | inc eax // 68???????? | // 50 | push eax // e8???????? | // 83c40c | add esp, 0xc // eb0d | jmp 0xf $sequence_6 = { eb1e 8b8578f4fbff 8945f4 8945f0 8d45f0 50 6a08 } // n = 7, score = 100 // eb1e | jmp 0x20 // 8b8578f4fbff | mov eax, dword ptr [ebp - 0x40b88] // 8945f4 | mov dword ptr [ebp - 0xc], eax // 8945f0 | mov dword ptr [ebp - 0x10], eax // 8d45f0 | lea eax, [ebp - 0x10] // 50 | push eax // 6a08 | push 8 $sequence_7 = { 6a01 6a07 6a0c ff5660 eb12 8d85a4fafbff } // n = 6, score = 100 // 6a01 | push 1 // 6a07 | push 7 // 6a0c | push 0xc // ff5660 | call dword ptr [esi + 0x60] // eb12 | jmp 0x14 // 8d85a4fafbff | lea eax, [ebp - 0x4055c] $sequence_8 = { 8d8518fffbff 50 68a4000000 8b86dc000000 ffb06c020000 } // n = 5, score = 100 // 8d8518fffbff | lea eax, [ebp - 0x400e8] // 50 | push eax // 68a4000000 | push 0xa4 // 8b86dc000000 | mov eax, dword ptr [esi + 0xdc] // ffb06c020000 | push dword ptr [eax + 0x26c] $sequence_9 = { 397dfc 72a8 5f 5e 5b } // n = 5, score = 100 // 397dfc | cmp dword ptr [ebp - 4], edi // 72a8 | jb 0xffffffaa // 5f | pop edi // 5e | pop esi // 5b | pop ebx $sequence_10 = { 81f11e49dc18 f8 33d9 f5 } // n = 4, score = 100 // 81f11e49dc18 | xor ecx, 0x18dc491e // f8 | clc // 33d9 | xor ebx, ecx // f5 | cmc $sequence_11 = { 833fff 750a b800000000 e9???????? 8b7d10 } // n = 5, score = 100 // 833fff | cmp dword ptr [edi], -1 // 750a | jne 0xc // b800000000 | mov eax, 0 // e9???????? | // 8b7d10 | mov edi, dword ptr [ebp + 0x10] $sequence_12 = { 81ec04020000 53 56 57 31ff 8b4508 } // n = 6, score = 100 // 81ec04020000 | sub esp, 0x204 // 53 | push ebx // 56 | push esi // 57 | push edi // 31ff | xor edi, edi // 8b4508 | mov eax, dword ptr [ebp + 8] $sequence_13 = { 75f9 8b1d???????? 83c340 53 6a01 50 } // n = 6, score = 100 // 75f9 | jne 0xfffffffb // 8b1d???????? | // 83c340 | add ebx, 0x40 // 53 | push ebx // 6a01 | push 1 // 50 | push eax $sequence_14 = { e9???????? c745e000000000 eb29 8b7de0 8b75f4 0fb73c7e 3b7dfc } // n = 7, score = 100 // e9???????? | // c745e000000000 | mov dword ptr [ebp - 0x20], 0 // eb29 | jmp 0x2b // 8b7de0 | mov edi, dword ptr [ebp - 0x20] // 8b75f4 | mov esi, dword ptr [ebp - 0xc] // 0fb73c7e | movzx edi, word ptr [esi + edi*2] // 3b7dfc | cmp edi, dword ptr [ebp - 4] $sequence_15 = { 81f11b2b5236 6685c3 f8 3af0 f7d9 } // n = 5, score = 100 // 81f11b2b5236 | xor ecx, 0x36522b1b // 6685c3 | test bx, ax // f8 | clc // 3af0 | cmp dh, al // f7d9 | neg ecx $sequence_16 = { 83f80f 763c 803953 7537 } // n = 4, score = 100 // 83f80f | cmp eax, 0xf // 763c | jbe 0x3e // 803953 | cmp byte ptr [ecx], 0x53 // 7537 | jne 0x39 $sequence_17 = { 83f80f 7575 33db 53 57 } // n = 5, score = 100 // 83f80f | cmp eax, 0xf // 7575 | jne 0x77 // 33db | xor ebx, ebx // 53 | push ebx // 57 | push edi condition: 7 of them and filesize < 11501568 }
rule win_rcs_w0 { meta: author = "Florian Roth" description = "Hacking Team Disclosure Sample - file elevator.exe" reference = "Hacking Team Disclosure elevator.c" date = "2015-07-07" hash = "40a10420b9d49f87527bc0396b19ec29e55e9109e80b52456891243791671c1c" hash = "92aec56a859679917dffa44bd4ffeb5a8b2ee2894c689abbbcbe07842ec56b8d" hash = "9261693b67b6e379ad0e57598602712b8508998c0cb012ca23139212ae0009a1" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.rcs" malpedia_version = "20170521" malpedia_license = "CC BY-NC-SA 4.0" malpedia_sharing = "TLP:WHITE" strings: $x1 = "CRTDLL.DLL" fullword ascii $x2 = "\\sysnative\\CI.dll" fullword ascii $x3 = "\\SystemRoot\\system32\\CI.dll" fullword ascii $x4 = "C:\\\\Windows\\\\Sysnative\\\\ntoskrnl.exe" fullword ascii /* PEStudio Blacklist: strings */ $s1 = "[*] traversing processes" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "_getkprocess" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "[*] LoaderConfig %p" fullword ascii /* PEStudio Blacklist: strings */ $s4 = "loader.obj" fullword ascii /* PEStudio Blacklist: strings */ $s5 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3" ascii /* PEStudio Blacklist: strings */ $s6 = "[*] token restore" fullword ascii /* PEStudio Blacklist: strings */ $s7 = "elevator.obj" fullword ascii $s8 = "_getexport" fullword ascii /* PEStudio Blacklist: strings */ condition: uint16(0) == 0x5a4d and filesize < 3000KB and all of ($x*) and 3 of ($s*) }
rule win_rcs_w1 { meta: description = "Hacking Team Disclosure Sample - file ndisk.sys" author = "Florian Roth" reference = "https://www.virustotal.com/en/file/a03a6ed90b89945a992a8c69f716ec3c743fa1d958426f4c50378cca5bef0a01/analysis/1436184181/" date = "2015-07-07" hash = "cf5089752ba51ae827971272a5b761a4ab0acd84" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.rcs" malpedia_version = "20170521" malpedia_license = "CC BY-NC-SA 4.0" malpedia_sharing = "TLP:WHITE" strings: $s1 = "\\Registry\\Machine\\System\\ControlSet00%d\\services\\ndisk.sys" fullword wide $s2 = "\\Registry\\Machine\\System\\ControlSet00%d\\Enum\\Root\\LEGACY_NDISK.SYS" fullword wide $s3 = "\\Driver\\DeepFrz" fullword wide $s4 = "Microsoft Kernel Disk Manager" fullword wide $s5 = "ndisk.sys" fullword wide $s6 = "\\Device\\MSH4DEV1" fullword wide $s7 = "\\DosDevices\\MSH4DEV1" fullword wide $s8 = "built by: WinDDK" fullword wide condition: uint16(0) == 0x5a4d and filesize < 30KB and 6 of them }
If your designated proposal does not fit in any other category, feel free to write a free-text in the comment field below.
Please propose all changes regarding references on the Malpedia library page
Your suggestion will be reviewed before being published. Thank you for contributing!
YYYY-MM-DD
YYYY-MM
YYYY