Actor(s): Axiom
There is no description at this point.
rule win_winnti_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2020-12-22" version = "1" description = "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.winnti" malpedia_rule_date = "20201222" malpedia_hash = "30354d830a29f0fbd3714d93d94dea941d77a130" malpedia_version = "20201023" 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 = { 8b4304 83f804 7526 8b4338 8b7344 99 2bc2 } // n = 7, score = 200 // 8b4304 | dec eax // 83f804 | lea ecx, [0x116d] // 7526 | inc ecx // 8b4338 | mov ecx, 0x30 // 8b7344 | mov edx, 0x228204 // 99 | dec eax // 2bc2 | mov ecx, esi $sequence_1 = { 56 53 6801a00000 e8???????? 56 e8???????? 83c404 } // n = 7, score = 200 // 56 | cmp eax, 4 // 53 | jne 0x28 // 6801a00000 | mov eax, dword ptr [ebx + 0x38] // e8???????? | // 56 | mov esi, dword ptr [ebx + 0x44] // e8???????? | // 83c404 | cdq $sequence_2 = { 6a01 81c2???????? 57 52 56 } // n = 5, score = 200 // 6a01 | mov dword ptr [esp + 0x40], esi // 81c2???????? | // 57 | movzx ecx, cx // 52 | sub ecx, eax // 56 | jne 0x11 $sequence_3 = { c21400 8b4c2424 57 8bd1 33c0 } // n = 5, score = 200 // c21400 | inc esp // 8b4c2424 | mov edx, dword ptr [ebx + 0x18] // 57 | dec eax // 8bd1 | add esi, edi // 33c0 | dec esp $sequence_4 = { 83ec10 8b442414 53 8bd9 55 } // n = 5, score = 200 // 83ec10 | dec eax // 8b442414 | lea edx, [esp + 0x40] // 53 | dec eax // 8bd9 | mov ecx, edi // 55 | dec esp $sequence_5 = { 52 ffd7 83c670 56 ffd7 5f } // n = 6, score = 200 // 52 | add esi, edi // ffd7 | sub esp, 0x10 // 83c670 | mov eax, dword ptr [esp + 0x14] // 56 | push ebx // ffd7 | mov ebx, ecx // 5f | push ebp $sequence_6 = { 7409 50 e8???????? 83c404 8b4658 3bc3 } // n = 6, score = 200 // 7409 | mov dword ptr [esp + 0x28], 0x38 // 50 | dec eax // e8???????? | // 83c404 | mov dword ptr [esp + 0x20], eax // 8b4658 | inc esp // 3bc3 | mov esi, dword ptr [ebx + 0x24] $sequence_7 = { 8d049504000000 50 e8???????? 89442424 8b442418 83c404 } // n = 6, score = 200 // 8d049504000000 | push 1 // 50 | push edi // e8???????? | // 89442424 | push edx // 8b442418 | push esi // 83c404 | mov eax, dword ptr [ebx + 4] $sequence_8 = { 740a 6690 48ffc2 403832 75f8 } // n = 5, score = 100 // 740a | je 0xc // 6690 | nop // 48ffc2 | dec eax // 403832 | inc edx // 75f8 | inc eax $sequence_9 = { 48ffc0 4883f83c 7647 498bcd e8???????? 4c8d05bf720000 41b903000000 } // n = 7, score = 100 // 48ffc0 | xor eax, eax // 4883f83c | add esp, dword ptr [ebp - 0x28] // 7647 | popal // 498bcd | mov eax, dword ptr [ebp - 0x24] // e8???????? | // 4c8d05bf720000 | mov dword ptr [ebp - 0x38], eax // 41b903000000 | push eax $sequence_10 = { 5e 5d c3 8b4e54 448b463c 33d2 } // n = 6, score = 100 // 5e | inc esp // 5d | mov byte ptr [eax], dh // c3 | dec eax // 8b4e54 | lea ecx, [esp + 0x50] // 448b463c | test cl, cl // 33d2 | jne 0xfffffff3 $sequence_11 = { ff15???????? 488bc8 488d842460020000 4c8d442440 } // n = 4, score = 100 // ff15???????? | // 488bc8 | cmp byte ptr [edx], dh // 488d842460020000 | jne 0xfffffffd // 4c8d442440 | dec eax $sequence_12 = { 4885c9 7510 4d85c0 7404 } // n = 4, score = 100 // 4885c9 | pop ebp // 7510 | ret // 4d85c0 | mov ecx, dword ptr [esi + 0x54] // 7404 | inc esp $sequence_13 = { 4883ec20 488d05276a0100 8bfa 488bd9 } // n = 4, score = 100 // 4883ec20 | ret 0x14 // 488d05276a0100 | mov ecx, dword ptr [esp + 0x24] // 8bfa | push edi // 488bd9 | mov edx, ecx $sequence_14 = { 41b930000000 ba04822200 488bce c744242838000000 4889442420 } // n = 5, score = 100 // 41b930000000 | inc eax // ba04822200 | cmp byte ptr [edx], dh // 488bce | dec eax // c744242838000000 | test ecx, ecx // 4889442420 | jne 0x12 $sequence_15 = { 0f8415020000 488d542440 488bcf 4c89742440 } // n = 4, score = 100 // 0f8415020000 | mov eax, dword ptr [esi + 0x3c] // 488d542440 | xor edx, edx // 488bcf | inc eax // 4c89742440 | cmp byte ptr [esp + 0x50], dh $sequence_16 = { 486301 488d0c80 488d0505440b00 488d0cc8 e8???????? } // n = 5, score = 100 // 486301 | dec ebx // 488d0c80 | mov ecx, dword ptr [eax + edi*8 + 0xba200] // 488d0505440b00 | dec eax // 488d0cc8 | inc ebx // e8???????? | $sequence_17 = { 0fb64c0201 488d4001 84c9 75f1 448830 488d4c2450 } // n = 6, score = 100 // 0fb64c0201 | mov ecx, eax // 488d4001 | dec eax // 84c9 | lea eax, [esp + 0x260] // 75f1 | dec esp // 448830 | lea eax, [esp + 0x40] // 488d4c2450 | movzx ecx, byte ptr [edx + eax + 1] $sequence_18 = { 33c9 ff15???????? 488d0d0fc10000 ff15???????? } // n = 4, score = 100 // 33c9 | mov byte ptr [ecx + esi + 0x3a], al // ff15???????? | // 488d0d0fc10000 | dec eax // ff15???????? | $sequence_19 = { 48894de8 488d05a8690100 488d1559d00100 488d4dd0 48895df0 488945d0 } // n = 6, score = 100 // 48894de8 | sub eax, edx // 488d05a8690100 | je 0xb // 488d1559d00100 | push eax // 488d4dd0 | add esp, 4 // 48895df0 | mov eax, dword ptr [esi + 0x58] // 488945d0 | cmp eax, ebx $sequence_20 = { 4b8b8cf800a20b00 48ffc3 8844313a 4863c2 482bd8 eb13 8b4d48 } // n = 7, score = 100 // 4b8b8cf800a20b00 | push ebp // 48ffc3 | push 1 // 8844313a | push edi // 4863c2 | push edx // 482bd8 | push esi // eb13 | mov eax, dword ptr [ebx + 4] // 8b4d48 | cmp eax, 4 $sequence_21 = { 85db 0f8443030000 f6c310 7467 83ff3c 0f8475030000 } // n = 6, score = 100 // 85db | arpl dx, ax // 0f8443030000 | dec eax // f6c310 | sub ebx, eax // 7467 | jmp 0x1f // 83ff3c | mov ecx, dword ptr [ebp + 0x48] // 0f8475030000 | dec eax $sequence_22 = { 0fb7c9 2bc8 750f 488d0d6d110000 } // n = 4, score = 100 // 0fb7c9 | je 0x11 // 2bc8 | nop // 750f | dec eax // 488d0d6d110000 | inc edx $sequence_23 = { 48035110 488b4c2420 4883c110 e8???????? 488b4c2430 } // n = 5, score = 100 // 48035110 | jne 0x28 // 488b4c2420 | mov eax, dword ptr [ebx + 0x38] // 4883c110 | mov esi, dword ptr [ebx + 0x44] // e8???????? | // 488b4c2430 | cdq condition: 7 of them and filesize < 1581056 }
rule win_winnti_w0 { meta: author = "BR Data" source = "https://github.com/br-data/2019-winnti-analyse/" date = "2019-07-24" description = "rules used for retrohunting by BR Data." malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.winnti" malpedia_version = "20190822" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" strings: $load_magic = { C7 44 ?? ?? FF D8 FF E0 } $iter = { E9 EA EB EC ED EE EF F0 } $jpeg = { FF D8 FF E0 00 00 00 00 00 00 } condition: uint16(0) == 0x5a4d and $jpeg and ($load_magic or $iter in (@jpeg[1]..@jpeg[1]+200)) and for any i in (1..#jpeg): ( uint8(@jpeg[i] + 11) != 0 ) }
rule win_winnti_w1 { meta: author = "BR Data" source = "https://github.com/br-data/2019-winnti-analyse/" date = "2019-07-24" description = "rules used for retrohunting by BR Data." malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.winnti" malpedia_version = "20190822" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" strings: $cooper = "Cooper" $pattern = { e9 ea eb ec ed ee ef f0} condition: uint16(0) == 0x5a4d and $cooper and ($pattern in (@cooper[1]..@cooper[1]+100)) }
rule win_winnti_w2 { meta: author = "Bundesamt fuer Verfassungsschutz" source = "https://www.verfassungsschutz.de/download/anlage-2019-12-bfv-cyber-brief-2019-01.txt" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.winnti" malpedia_version = "20191207" malpedia_sharing = "TLP:WHITE" malpedia_license = "" strings: $e1 = "Global\\BFE_Notify_Event_{65a097fe-6102-446a-9f9c-55dfc3f411015}" ascii nocase $e2 = "Global\\BFE_Notify_Event_{65a097fe-6102-446a-9f9c-55dfc3f411014}" ascii nocase $e3 = "Global\\BFE_Notify_Event_{65a097fe-6102-446a-9f9c-55dfc3f411016}" ascii nocase $e4 = "\\BaseNamedObjects\\{B2B87CCA-66BC-4C24-89B2-C23C9EAC2A66}" wide $e5 = "BFE_Notify_Event_{7D00FA3C-FBDC-4A8D-AEEB-3F55A4890D2A}" nocase condition: (any of ($e*)) }
rule win_winnti_w3 { meta: author = "Bundesamt fuer Verfassungsschutz" source = "https://www.verfassungsschutz.de/download/anlage-2019-12-bfv-cyber-brief-2019-01.txt" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.winnti" malpedia_version = "20191207" malpedia_sharing = "TLP:WHITE" malpedia_license = "" strings: $a1 = "IPSecMiniPort" wide fullword $a2 = "ndis6fw" wide fullword $a3 = "TCPIP" wide fullword $a4 = "NDIS.SYS" ascii fullword $a5 = "ntoskrnl.exe" ascii fullword $a6 = "\\BaseNamedObjects\\{B2B87CCA-66BC-4C24-89B2-C23C9EAC2A66}" wide $a7 = "\\Device\\Null" wide $a8 = "\\Device" wide $a9 = "\\Driver" wide $b1 = { 66 81 7? ?? 70 17 } $b2 = { 81 7? ?? 07 E0 15 00 } $b3 = { 8B 46 18 3D 03 60 15 00 } condition: (6 of ($a*)) and (2 of ($b*)) }
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