Actor(s): UNC2452
Mandiant characterizes this malware as a downloader and shellcode stager.
rule win_ceeloader_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2023-07-11" version = "1" description = "Detects win.ceeloader." 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.ceeloader" 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 = { 889c2436010000 44229c2436010000 44889c2435010000 4588cb 44229c2435010000 44889c2434010000 4588cb } // n = 7, score = 100 // 889c2436010000 | cmp dword ptr [esp + 0x978], 0 // 44229c2436010000 | jge 0x6d4 // 44889c2435010000 | mov dword ptr [esp + 0x978], 0 // 4588cb | dec eax // 44229c2435010000 | lea ebx, [0xb5fb4] // 44889c2434010000 | inc ecx // 4588cb | mov eax, 0x104 $sequence_1 = { 448b44247c 448b942484000000 4531d0 448b54247c 4529c2 448b44247c 4531d0 } // n = 7, score = 100 // 448b44247c | mov word ptr [esp + 0xd9c], bx // 448b942484000000 | xor di, word ptr [esp + 0xd9c] // 4531d0 | mov word ptr [esp + 0xda4], bx // 448b54247c | mov bx, word ptr [esp + 0xda4] // 4529c2 | mov word ptr [esp + 0xda2], 0 // 448b44247c | and bx, word ptr [esp + 0xda2] // 4531d0 | mov word ptr [esp + 0xda0], bx $sequence_2 = { 4188c9 44228c24fb000000 44888c24fa000000 448a8c24fa000000 4188ca 4520d2 44889424f9000000 } // n = 7, score = 100 // 4188c9 | mov dword ptr [esp + 0x98], ecx // 44228c24fb000000 | dec eax // 44888c24fa000000 | mov ecx, edx // 448a8c24fa000000 | dec eax // 4188ca | lea edx, [0xbc065] // 4520d2 | inc ecx // 44889424f9000000 | mov edx, 5 $sequence_3 = { 83f079 88c1 888c2422010000 0fbe05???????? 83f057 88c1 888c2423010000 } // n = 7, score = 100 // 83f079 | mov dword ptr [esp + 0x9d4], 0x16a2 // 88c1 | mov dword ptr [esp + 0x9d0], 0x5ee4 // 888c2422010000 | mov dword ptr [esp + 0x9cc], 0x24d1 // 0fbe05???????? | // 83f057 | mov dword ptr [esp + 0xae0], 0 // 88c1 | mov ecx, dword ptr [esp + 0xae0] // 888c2423010000 | mov dword ptr [esp + 0xadc], eax $sequence_4 = { 898424a8090000 8b8424a8090000 c1e809 898424a4090000 8b8424a4090000 c1e002 898424a0090000 } // n = 7, score = 100 // 898424a8090000 | or eax, edx // 8b8424a8090000 | or ebx, edx // c1e809 | mov ebx, esi // 898424a4090000 | or edx, ebx // 8b8424a4090000 | cmp ecx, esi // c1e002 | cmp ebx, ebp // 898424a0090000 | pop edx $sequence_5 = { 899424e0000000 8b9424e0000000 3b15???????? 48898c24a0000000 0f846f020000 488d8424d0010000 8b0d???????? } // n = 7, score = 100 // 899424e0000000 | xor esi, esi // 8b9424e0000000 | and esi, ebx // 3b15???????? | // 48898c24a0000000 | or ebx, edx // 0f846f020000 | mov ebx, esi // 488d8424d0010000 | or edx, ebx // 8b0d???????? | $sequence_6 = { c7842410060000c0170000 c784240c060000655b0000 c7842408060000a7050000 c7842404060000800e0000 c784240006000086670000 c78424fc05000074220000 c78424f80500009e7d0000 } // n = 7, score = 100 // c7842410060000c0170000 | inc esp // c784240c060000655b0000 | or eax, ecx // c7842408060000a7050000 | mov dword ptr [esp + 0xc5c], eax // c7842404060000800e0000 | mov word ptr [esp + 0x70e], 0 // c784240006000086670000 | mov word ptr [esp + 0x70c], 0 // c78424fc05000074220000 | inc ecx // c78424f80500009e7d0000 | and edx, 0xffffff00 $sequence_7 = { f30f7f45e0 83fbfe 0f8539010000 bb00080000 4c8d0d19980a00 095de8 4c8d45e0 } // n = 7, score = 100 // f30f7f45e0 | inc ecx // 83fbfe | shr edx, 0x18 // 0f8539010000 | inc esp // bb00080000 | mov dword ptr [esp + 0x24c], edx // 4c8d0d19980a00 | inc ecx // 095de8 | shl ebx, 1 // 4c8d45e0 | inc esp $sequence_8 = { 44898c2400060000 448b8c2400060000 4189c2 4181e2f5274b02 44899424fc050000 448b9424fc050000 41c1e204 } // n = 7, score = 100 // 44898c2400060000 | lea eax, [esp + 0x448] // 448b8c2400060000 | dec eax // 4189c2 | mov ecx, dword ptr [esp + 0x288] // 4181e2f5274b02 | dec ecx // 44899424fc050000 | mov eax, eax // 448b9424fc050000 | cmp eax, 0 // 41c1e204 | je 0x20c1 $sequence_9 = { 448b9c24b8000000 4509da 89d6 4429d6 c78424bc01000000000000 488b842408010000 } // n = 6, score = 100 // 448b9c24b8000000 | mov eax, dword ptr [esp + 0xc5c] // 4509da | or eax, dword ptr [esp + 0xc60] // 89d6 | mov dword ptr [esp + 0xc5c], eax // 4429d6 | mov dword ptr [esp + 0x838], eax // c78424bc01000000000000 | mov eax, dword ptr [esp + 0xc5c] // 488b842408010000 | or eax, dword ptr [esp + 0xc60] condition: 7 of them and filesize < 2321408 }
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