Small shellcode downloader, likely used by APT29.
rule win_unidentified_107_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-05-04" version = "1" description = "Detects win.unidentified_107." 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.unidentified_107" malpedia_rule_date = "20260422" malpedia_hash = "a182e35da64e6d71cb55f125c4d4225196523f14" malpedia_version = "20260504" 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 = { 48c7c12f398d13 e8???????? 4989c7 48c7c12f398d13 e8???????? } // n = 5, score = 300 // 48c7c12f398d13 | lea edx, [0x727c] // e8???????? | // 4989c7 | movzx edx, byte ptr [eax + edx] // 48c7c12f398d13 | mov eax, dword ptr [ebp - 8] // e8???????? | $sequence_1 = { 75dc 4c89e9 4883c420 5b } // n = 4, score = 300 // 75dc | mov esp, dword ptr [esp + 0x28] // 4c89e9 | dec ebp // 4883c420 | test esp, esp // 5b | jne 0x127 $sequence_2 = { e8???????? 4989c7 48c7c10f15af3d e8???????? 4883c464 } // n = 5, score = 300 // e8???????? | // 4989c7 | mov byte ptr [ebp - 9], 0xba // 48c7c10f15af3d | dec eax // e8???????? | // 4883c464 | lea eax, [0x7ef3] $sequence_3 = { 0f8596010000 8b5308 83fa01 0f85cb010000 4883c30c 4c39e3 } // n = 6, score = 300 // 0f8596010000 | dec eax // 8b5308 | lea edx, [0xffffff8a] // 83fa01 | dec eax // 0f85cb010000 | lea edx, [0x24e0] // 4883c30c | dec eax // 4c39e3 | mov ecx, eax $sequence_4 = { 7e96 8b13 4883f80b 0f8f33010000 8b03 85c0 } // n = 6, score = 300 // 7e96 | jb 0x8bf // 8b13 | add eax, dword ptr [edx + 8] // 4883f80b | dec eax // 0f8f33010000 | cmp ecx, eax // 8b03 | jb 0x8d3 // 85c0 | dec eax $sequence_5 = { 4883ec64 48c7c10f15af3d e8???????? 4989c7 48c7c10f15af3d e8???????? } // n = 6, score = 300 // 4883ec64 | lea edx, [0x394c] // 48c7c10f15af3d | dec eax // e8???????? | // 4989c7 | sub esp, 0x100 // 48c7c10f15af3d | dec eax // e8???????? | $sequence_6 = { 4829d1 410fb75014 498d541018 450fb74006 4585c0 } // n = 5, score = 300 // 4829d1 | push esp // 410fb75014 | push ebx // 498d541018 | dec eax // 450fb74006 | sub esp, 0xc0 // 4585c0 | dec eax $sequence_7 = { 4989d0 4c09f2 4585c0 490f49d0 4829c2 4c8d3c0a } // n = 6, score = 300 // 4989d0 | lea esi, [esp + 0x40] // 4c09f2 | dec ecx // 4585c0 | mov esp, ecx // 490f49d0 | dec eax // 4829c2 | mov dword ptr [esp + 0x40], eax // 4c8d3c0a | dec eax $sequence_8 = { 4989c4 4885c0 75e9 488b3d???????? 8b07 } // n = 5, score = 300 // 4989c4 | lea eax, [ebp + 0x4c] // 4885c0 | dec eax // 75e9 | mov dword ptr [eax], edx // 488b3d???????? | // 8b07 | dec eax $sequence_9 = { 74d8 418d40ff 488d0480 4c8d4cc228 0f1f00 } // n = 5, score = 300 // 74d8 | inc ecx // 418d40ff | cmp byte ptr [ecx], 0 // 488d0480 | jne 0xa3c // 4c8d4cc228 | dec ecx // 0f1f00 | mov ecx, esi condition: 7 of them and filesize < 254976 }
If your designated proposal does not fit in any other category, feel free to write a free-text in the comment field below. Changes regarding references should be proposed on the Malpedia library page.
Your suggestion will be reviewed before being published. Thank you for contributing!
YYYY-MM-DD
YYYY-MM
YYYY