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 = "2023-01-25" version = "1" description = "Detects win.winnti." 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.winnti" malpedia_rule_date = "20230124" malpedia_hash = "2ee0eebba83dce3d019a90519f2f972c0fcf9686" malpedia_version = "20230125" 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 = { 50 c744241414000000 c744241800000000 c744241c01000000 } // n = 4, score = 200 // 50 | push eax // c744241414000000 | mov dword ptr [esp + 0x14], 0x14 // c744241800000000 | mov dword ptr [esp + 0x18], 0 // c744241c01000000 | mov dword ptr [esp + 0x1c], 1 $sequence_1 = { 6a04 50 6800042200 55 } // n = 4, score = 200 // 6a04 | push 4 // 50 | push eax // 6800042200 | push 0x220400 // 55 | push ebp $sequence_2 = { 33c0 8d7c2474 f3ab 8d542474 } // n = 4, score = 200 // 33c0 | xor eax, eax // 8d7c2474 | lea edi, [esp + 0x74] // f3ab | rep stosd dword ptr es:[edi], eax // 8d542474 | lea edx, [esp + 0x74] $sequence_3 = { 0f848a000000 be???????? 8bc5 8a10 } // n = 4, score = 200 // 0f848a000000 | je 0x90 // be???????? | // 8bc5 | mov eax, ebp // 8a10 | mov dl, byte ptr [eax] $sequence_4 = { 5e 5d 5b 81c430100000 c3 c7463c01000000 897e40 } // n = 7, score = 200 // 5e | pop esi // 5d | pop ebp // 5b | pop ebx // 81c430100000 | add esp, 0x1030 // c3 | ret // c7463c01000000 | mov dword ptr [esi + 0x3c], 1 // 897e40 | mov dword ptr [esi + 0x40], edi $sequence_5 = { 85c0 7e11 8b4e2c 85c9 } // n = 4, score = 200 // 85c0 | test eax, eax // 7e11 | jle 0x13 // 8b4e2c | mov ecx, dword ptr [esi + 0x2c] // 85c9 | test ecx, ecx $sequence_6 = { 8bd9 55 56 57 8b4b44 8b5348 } // n = 6, score = 200 // 8bd9 | mov ebx, ecx // 55 | push ebp // 56 | push esi // 57 | push edi // 8b4b44 | mov ecx, dword ptr [ebx + 0x44] // 8b5348 | mov edx, dword ptr [ebx + 0x48] $sequence_7 = { f2ae f7d1 2bf9 8b6c2418 8bc1 } // n = 5, score = 200 // f2ae | repne scasb al, byte ptr es:[edi] // f7d1 | not ecx // 2bf9 | sub edi, ecx // 8b6c2418 | mov ebp, dword ptr [esp + 0x18] // 8bc1 | mov eax, ecx $sequence_8 = { 7409 4885c0 0f8564010000 488d8200100000 } // n = 4, score = 100 // 7409 | je 0xb // 4885c0 | dec eax // 0f8564010000 | test eax, eax // 488d8200100000 | jne 0x16a $sequence_9 = { 488bd8 488d05d03b0100 4885db 488d4f38 480f44d8 } // n = 5, score = 100 // 488bd8 | lea eax, [ebp + 0x67] // 488d05d03b0100 | dec eax // 4885db | mov dword ptr [esp + 0x30], eax // 488d4f38 | dec eax // 480f44d8 | lea eax, [ebp - 0x69] $sequence_10 = { 813f10126119 0f8511010000 8b4708 85c0 } // n = 4, score = 100 // 813f10126119 | cmp dword ptr [edi], 0x19611210 // 0f8511010000 | jne 0x117 // 8b4708 | mov eax, dword ptr [edi + 8] // 85c0 | test eax, eax $sequence_11 = { 85c0 751c 0fb60437 84c0 } // n = 4, score = 100 // 85c0 | cmp dword ptr [edi + 8], 0x62697264 // 751c | jne 0x17 // 0fb60437 | dec eax // 84c0 | mov esi, dword ptr [esp + 0x30] $sequence_12 = { 488d4567 4889442430 488d4597 4c8d4597 41b930000000 ba04822200 } // n = 6, score = 100 // 488d4567 | inc ebp // 4889442430 | xor eax, eax // 488d4597 | dec eax // 4c8d4597 | lea ecx, [eax + 8] // 41b930000000 | mov dword ptr [eax], 0x19601110 // ba04822200 | inc ecx $sequence_13 = { 33f6 89742420 486312 8b4804 8d7e0f } // n = 5, score = 100 // 33f6 | pop ebx // 89742420 | dec eax // 486312 | mov ebx, eax // 8b4804 | dec eax // 8d7e0f | lea eax, [0x13bd0] $sequence_14 = { 803800 741d 4c8d0dfffa0000 41b802000000 488bd7 488bce } // n = 6, score = 100 // 803800 | dec esp // 741d | lea eax, [ebp - 0x69] // 4c8d0dfffa0000 | inc ecx // 41b802000000 | mov ecx, 0x30 // 488bd7 | mov edx, 0x228204 // 488bce | dec eax $sequence_15 = { 488d0d70930a00 488b0cc1 488b442460 4c8d4c2448 488b0c08 } // n = 5, score = 100 // 488d0d70930a00 | dec eax // 488b0cc1 | cmove ebx, eax // 488b442460 | cmp byte ptr [eax], 0 // 4c8d4c2448 | je 0x22 // 488b0c08 | dec esp $sequence_16 = { 4963c2 4c8bc0 49c1f810 0fb7f8 48c1e705 4a8b04c1 44894c3810 } // n = 7, score = 100 // 4963c2 | and eax, ecx // 4c8bc0 | dec eax // 49c1f810 | cmp eax, ecx // 0fb7f8 | je 0xe // 48c1e705 | dec eax // 4a8b04c1 | test eax, eax // 44894c3810 | jne 0x131 $sequence_17 = { 894704 e9???????? 488d0d55db0a00 48394c2458 7427 488b543b58 } // n = 6, score = 100 // 894704 | dec eax // e9???????? | // 488d0d55db0a00 | mov edi, dword ptr [esp + 0x38] // 48394c2458 | mov eax, 0xffffffbd // 7427 | dec eax // 488b543b58 | add esp, 0x20 $sequence_18 = { 4c8bce 4c8bc3 480f44d1 488bcb ff15???????? } // n = 5, score = 100 // 4c8bce | dec eax // 4c8bc3 | mov edx, dword ptr [edi + 0x18] // 480f44d1 | dec eax // 488bcb | mov ecx, edi // ff15???????? | $sequence_19 = { 4c8b4720 488b5718 488bcf ffd0 } // n = 4, score = 100 // 4c8b4720 | dec eax // 488b5718 | lea eax, [edx + 0x1000] // 488bcf | dec esp // ffd0 | mov eax, dword ptr [edi + 0x20] $sequence_20 = { 488bd8 7427 4533c0 488d4808 c70010116019 418d5001 } // n = 6, score = 100 // 488bd8 | call eax // 7427 | dec esp // 4533c0 | mov ecx, esi // 488d4808 | dec esp // c70010116019 | mov eax, ebx // 418d5001 | dec eax $sequence_21 = { 8944242c e9???????? 83ff22 751d 0fbae308 } // n = 5, score = 100 // 8944242c | dec eax // e9???????? | // 83ff22 | test ebx, ebx // 751d | dec eax // 0fbae308 | lea ecx, [edi + 0x38] $sequence_22 = { 4823c1 483bc1 7409 4885c0 0f8523010000 817f0864726962 } // n = 6, score = 100 // 4823c1 | lea edx, [eax + 1] // 483bc1 | mov ecx, 0x3c // 7409 | dec esp // 4885c0 | mov eax, edx // 0f8523010000 | inc esp // 817f0864726962 | lea ecx, [ecx - 0x2c] $sequence_23 = { b93c000000 4c8bc2 448d49d4 666666660f1f840000000000 488bc6 48d3e8 } // n = 6, score = 100 // b93c000000 | cmove edx, ecx // 4c8bc2 | dec eax // 448d49d4 | mov ecx, ebx // 666666660f1f840000000000 | dec eax // 488bc6 | mov ebx, eax // 48d3e8 | je 0x29 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