SYMBOLCOMMON_NAMEaka. SYNONYMS
win.ceeloader (Back to overview)

CEELOADER

Actor(s): UNC2452


Mandiant characterizes this malware as a downloader and shellcode stager.

References
2022-11-29MandiantLuke Jenkins, Sarah Hawley, Parnian Najafi, Doug Bienstock
@online{jenkins:20221129:suspected:fe09dd8, author = {Luke Jenkins and Sarah Hawley and Parnian Najafi and Doug Bienstock}, title = {{Suspected Russian Activity Targeting Government and Business Entities Around the Globe}}, date = {2022-11-29}, organization = {Mandiant}, url = {https://www.mandiant.com/resources/blog/russian-targeting-gov-business}, language = {English}, urldate = {2023-02-21} } Suspected Russian Activity Targeting Government and Business Entities Around the Globe
CEELOADER
Yara Rules
[TLP:WHITE] win_ceeloader_auto (20230715 | Detects win.ceeloader.)
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
}
Download all Yara Rules