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-12-06" 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 = "20231130" malpedia_hash = "fc8a0e9f343f6d6ded9e7df1a64dac0cc68d7351" malpedia_version = "20230808" 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 = { 3bce 33f6 23c7 0bda 8bde c3 0bd3 } // n = 7, score = 100 // 3bce | dec eax // 33f6 | mov ecx, eax // 23c7 | dec eax // 0bda | lea edx, [0xccfef] // 8bde | inc ecx // c3 | mov ebx, 6 // 0bd3 | inc esp $sequence_1 = { 448b15???????? 4489c6 4431de 4589c3 4101f3 44891d???????? 4589c3 } // n = 7, score = 100 // 448b15???????? | // 4489c6 | mov eax, dword ptr [esp + 0x4c] // 4431de | inc esp // 4589c3 | mov edx, dword ptr [esp + 0x40] // 4101f3 | mov dword ptr [esp + 0x48], eax // 44891d???????? | // 4589c3 | inc esp $sequence_2 = { 664589c2 664489942490030000 440fbe05???????? 4183f074 664589c2 664489942492030000 440fbe05???????? } // n = 7, score = 100 // 664589c2 | inc eax // 664489942490030000 | dec eax // 440fbe05???????? | // 4183f074 | cmp dword ptr [ebp - 0x30], ecx // 664589c2 | jne 0x7f6 // 664489942492030000 | dec eax // 440fbe05???????? | $sequence_3 = { 0bda 8bde 0bd3 3bce 23f3 7a04 0bda } // n = 7, score = 100 // 0bda | inc ebp // 8bde | xor eax, eax // 0bd3 | inc ebp // 3bce | xor edx, edx // 23f3 | inc ebp // 7a04 | mov ecx, edx // 0bda | dec eax $sequence_4 = { 8b842420010000 3b84241c010000 0f8433000000 8b842420010000 898424dc000000 e8???????? 8b8c241c010000 } // n = 7, score = 100 // 8b842420010000 | jp 0xfd1 // 3b84241c010000 | and ecx, edx // 0f8433000000 | or ebx, edx // 8b842420010000 | mov ebx, esi // 898424dc000000 | or edx, ebx // e8???????? | // 8b8c241c010000 | cmp ecx, esi $sequence_5 = { 3bdd 23fd 0bda 8bde 0bd3 3bce 5a } // n = 7, score = 100 // 3bdd | mov dword ptr [esp + 0x54], eax // 23fd | dec eax // 0bda | mov ecx, dword ptr [esp + 0x768] // 8bde | dec eax // 0bd3 | add ecx, eax // 3bce | inc esp // 5a | mov eax, dword ptr [esp + 0x774] $sequence_6 = { 741d 4885ff c6435401 488d0d53880800 480f45cf 48894b48 e8???????? } // n = 7, score = 100 // 741d | inc esp // 4885ff | mov dword ptr [esp + 0x134], ebx // c6435401 | add esi, dword ptr [esp + 0x260] // 488d0d53880800 | mov dword ptr [esp + 0x25c], esi // 480f45cf | mov esi, dword ptr [esp + 0x25c] // 48894b48 | shr esi, 6 // e8???????? | $sequence_7 = { 88542433 0fbe05???????? 83f064 88c2 88542434 0fbe05???????? 83f076 } // n = 7, score = 100 // 88542433 | mov ebx, esi // 0fbe05???????? | // 83f064 | or edx, ebx // 88c2 | or edx, ebx // 88542434 | cmp ecx, esi // 0fbe05???????? | // 83f076 | jp 0x46 $sequence_8 = { 4489a42464020000 4403bc2464020000 4489bc2460020000 448bbc2460020000 4589dc 4181e45d386101 4489a4245c020000 } // n = 7, score = 100 // 4489a42464020000 | mov byte ptr [esp + 0xa4], cl // 4403bc2464020000 | xor eax, 0x61 // 4489bc2460020000 | mov cl, al // 448bbc2460020000 | mov byte ptr [esp + 0xa5], cl // 4589dc | mov byte ptr [esp + 0xa4], cl // 4181e45d386101 | xor eax, 0x73 // 4489a4245c020000 | mov cl, al $sequence_9 = { 41c1e204 4489942448050000 44038c2448050000 44898c2444050000 448b8c2444050000 4189d2 4181e235913d02 } // n = 7, score = 100 // 41c1e204 | mov eax, dword ptr [esp + 0x44] // 4489942448050000 | inc esp // 44038c2448050000 | mov edx, dword ptr [esp + 0x4c] // 44898c2444050000 | dec eax // 448b8c2444050000 | mov dword ptr [esp + 0x20], 0 // 4189d2 | mov dword ptr [esp + 0x48], eax // 4181e235913d02 | mov dword ptr [esp + 0x44], esi 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. 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