SYMBOLCOMMON_NAMEaka. SYNONYMS
win.ghostemperor (Back to overview)

GhostEmperor


There is no description at this point.

References
2021-09-30KasperskyMark Lechtik, Aseel Kayal, Paul Rascagnères, Vasily Berdnikov
@online{lechtik:20210930:ghostemperor:f7bdb63, author = {Mark Lechtik and Aseel Kayal and Paul Rascagnères and Vasily Berdnikov}, title = {{GhostEmperor: From ProxyLogon to kernel mode}}, date = {2021-09-30}, organization = {Kaspersky}, url = {https://securelist.com/ghostemperor-from-proxylogon-to-kernel-mode/104407/}, language = {English}, urldate = {2021-10-05} } GhostEmperor: From ProxyLogon to kernel mode
GhostEmperor
2021-07-29KasperskyKaspersky
@online{kaspersky:20210729:ghostemperor:c9ddfe4, author = {Kaspersky}, title = {{GhostEmperor: Chinese-speaking APT targets high-profile victims using unknown rootkit}}, date = {2021-07-29}, organization = {Kaspersky}, url = {https://www.kaspersky.com/about/press-releases/2021_ghostemperor-chinese-speaking-apt-targets-high-profile-victims-using-unknown-rootkit}, language = {English}, urldate = {2021-10-07} } GhostEmperor: Chinese-speaking APT targets high-profile victims using unknown rootkit
GhostEmperor
Yara Rules
[TLP:WHITE] win_ghostemperor_auto (20221125 | Detects win.ghostemperor.)
rule win_ghostemperor_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2022-11-21"
        version = "1"
        description = "Detects win.ghostemperor."
        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.ghostemperor"
        malpedia_rule_date = "20221118"
        malpedia_hash = "e0702e2e6d1d00da65c8a29a4ebacd0a4c59e1af"
        malpedia_version = "20221125"
        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 = { 4c8b5c2408 4883c410 c3 ff25???????? ff25???????? ff25???????? ff25???????? }
            // n = 7, score = 300
            //   4c8b5c2408           | mov                 esi, 0x98
            //   4883c410             | inc                 esp
            //   c3                   | mov                 esp, edi
            //   ff25????????         |                     
            //   ff25????????         |                     
            //   ff25????????         |                     
            //   ff25????????         |                     

        $sequence_1 = { 488d45f0 4883c00e c6006f 488d45f0 4883c001 488d55f0 c60065 }
            // n = 7, score = 200
            //   488d45f0             | ret                 
            //   4883c00e             | dec                 eax
            //   c6006f               | add                 esp, 0x10
            //   488d45f0             | ret                 
            //   4883c001             | dec                 esp
            //   488d55f0             | mov                 edx, dword ptr [esp]
            //   c60065               | dec                 esp

        $sequence_2 = { c647096c b810000000 e8???????? 4829c4 4889e3 4883ec20 }
            // n = 6, score = 200
            //   c647096c             | mov                 edx, dword ptr [esp]
            //   b810000000           | dec                 esp
            //   e8????????           |                     
            //   4829c4               | mov                 ebx, dword ptr [esp + 8]
            //   4889e3               | dec                 eax
            //   4883ec20             | add                 esp, 0x10

        $sequence_3 = { b801000000 4883c428 5b 5d 5f 5e }
            // n = 6, score = 200
            //   b801000000           | dec                 esp
            //   4883c428             | mov                 edi, dword ptr [esp + 0x38]
            //   5b                   | je                  0xa1
            //   5d                   | dec                 eax
            //   5f                   | mov                 ebx, dword ptr [esp + 0x70]
            //   5e                   | dec                 eax

        $sequence_4 = { 488d45f5 4883c002 488d55f5 c6006f c645fd64 c6450700 c645f873 }
            // n = 7, score = 200
            //   488d45f5             | ret                 
            //   4883c002             | dec                 esp
            //   488d55f5             | mov                 edx, dword ptr [esp]
            //   c6006f               | dec                 esp
            //   c645fd64             | mov                 ebx, dword ptr [esp + 8]
            //   c6450700             | dec                 eax
            //   c645f873             | add                 esp, 0x10

        $sequence_5 = { 4883c108 eb00 eb00 4c8b31 4983f6ff 4981f6e31b0412 }
            // n = 6, score = 200
            //   4883c108             | mov                 ebx, dword ptr [esp + 8]
            //   eb00                 | dec                 eax
            //   eb00                 | add                 esp, 0x10
            //   4c8b31               | ret                 
            //   4983f6ff             | jne                 0xfffffff2
            //   4981f6e31b0412       | dec                 esp

        $sequence_6 = { 4c8b7c2438 0f849b000000 488b5c2470 4885db 7411 }
            // n = 5, score = 200
            //   4c8b7c2438           | ret                 
            //   0f849b000000         | dec                 esp
            //   488b5c2470           | mov                 ebx, dword ptr [esp + 8]
            //   4885db               | dec                 eax
            //   7411                 | add                 esp, 0x10

        $sequence_7 = { ff15???????? 85c0 7406 8b442424 }
            // n = 4, score = 200
            //   ff15????????         |                     
            //   85c0                 | ret                 
            //   7406                 | dec                 esp
            //   8b442424             | mov                 edx, dword ptr [esp]

        $sequence_8 = { 83c0ff 83f807 0f87ea0e0000 4889d7 }
            // n = 4, score = 200
            //   83c0ff               | dec                 esp
            //   83f807               | mov                 ebx, dword ptr [esp + 8]
            //   0f87ea0e0000         | dec                 eax
            //   4889d7               | add                 esp, 0x10

        $sequence_9 = { eb18 418b07 85c0 7411 4c03f8 }
            // n = 5, score = 100
            //   eb18                 | dec                 eax
            //   418b07               | mov                 ebp, dword ptr [esp + 0x48]
            //   85c0                 | dec                 eax
            //   7411                 | mov                 esi, dword ptr [esp + 0x58]
            //   4c03f8               | dec                 eax

        $sequence_10 = { 85c0 7432 488b842488000000 448bce }
            // n = 4, score = 100
            //   85c0                 | test                eax, eax
            //   7432                 | je                  0x18
            //   488b842488000000     | dec                 esp
            //   448bce               | add                 edi, eax

        $sequence_11 = { 89c1 81e9dd2a2c49 0f84df0a0000 eb00 }
            // n = 4, score = 100
            //   89c1                 | jmp                 0xe
            //   81e9dd2a2c49         | mov                 ecx, eax
            //   0f84df0a0000         | sub                 ecx, 0x253ead94
            //   eb00                 | mov                 ecx, eax

        $sequence_12 = { 89c1 81e9dd16eca8 0f849f090000 eb00 }
            // n = 4, score = 100
            //   89c1                 | mov                 ebx, dword ptr [esp + 8]
            //   81e9dd16eca8         | dec                 eax
            //   0f849f090000         | add                 esp, 0x10
            //   eb00                 | ret                 

        $sequence_13 = { 3bc8 0f42c1 488d4dd0 8bd8 488b45d0 }
            // n = 5, score = 100
            //   3bc8                 | cmp                 ecx, eax
            //   0f42c1               | cmovb               eax, ecx
            //   488d4dd0             | dec                 eax
            //   8bd8                 | lea                 ecx, [ebp - 0x30]
            //   488b45d0             | mov                 ebx, eax

        $sequence_14 = { 89c1 81e9dbf78dcf 0f84fa040000 eb00 }
            // n = 4, score = 100
            //   89c1                 | dec                 eax
            //   81e9dbf78dcf         | add                 esp, 0x10
            //   0f84fa040000         | ret                 
            //   eb00                 | dec                 esp

        $sequence_15 = { 83f840 72f0 eb0e 4803c0 }
            // n = 4, score = 100
            //   83f840               | add                 esp, 0x20
            //   72f0                 | jmp                 0x1a
            //   eb0e                 | inc                 ecx
            //   4803c0               | mov                 eax, dword ptr [edi]

        $sequence_16 = { 89c1 81e9db7e3a6b 0f84b2050000 eb00 }
            // n = 4, score = 100
            //   89c1                 | mov                 byte ptr [ebx + 2], 0x45
            //   81e9db7e3a6b         | mov                 byte ptr [ebx + 1], 0x53
            //   0f84b2050000         | dec                 eax
            //   eb00                 | add                 esp, 0x10

        $sequence_17 = { eb05 b8a00000c0 488b5c2440 488b6c2448 488b742458 4883c420 }
            // n = 6, score = 100
            //   eb05                 | dec                 eax
            //   b8a00000c0           | mov                 eax, dword ptr [ebp - 0x30]
            //   488b5c2440           | jmp                 7
            //   488b6c2448           | mov                 eax, 0xc00000a0
            //   488b742458           | dec                 eax
            //   4883c420             | mov                 ebx, dword ptr [esp + 0x40]

        $sequence_18 = { 483d00100000 72cf 4c8d2517340000 4c897c2428 488d4c2420 }
            // n = 5, score = 100
            //   483d00100000         | add                 eax, eax
            //   72cf                 | test                eax, eax
            //   4c8d2517340000       | je                  0x34
            //   4c897c2428           | dec                 eax
            //   488d4c2420           | mov                 eax, dword ptr [esp + 0x88]

        $sequence_19 = { 7711 41bd08000000 41be98000000 448be7 }
            // n = 4, score = 100
            //   7711                 | cmp                 eax, 0x40
            //   41bd08000000         | jb                  0xfffffff2
            //   41be98000000         | jmp                 0x12
            //   448be7               | dec                 eax

        $sequence_20 = { 89c1 81e9dbb0d5cc 0f8472050000 eb00 }
            // n = 4, score = 100
            //   89c1                 | mov                 ebx, dword ptr [esp + 8]
            //   81e9dbb0d5cc         | dec                 eax
            //   0f8472050000         | add                 esp, 0x10
            //   eb00                 | ret                 

        $sequence_21 = { 89c1 81e9db0b7c24 0f84d7040000 eb00 89c1 81e994ad3e25 }
            // n = 6, score = 100
            //   89c1                 | test                ebx, ebx
            //   81e9db0b7c24         | je                  0x21
            //   0f84d7040000         | test                eax, eax
            //   eb00                 | je                  8
            //   89c1                 | mov                 eax, dword ptr [esp + 0x24]
            //   81e994ad3e25         | add                 eax, -1

        $sequence_22 = { 7453 83e804 7425 83f804 0f85f6000000 }
            // n = 5, score = 100
            //   7453                 | je                  0x55
            //   83e804               | sub                 eax, 4
            //   7425                 | je                  0x27
            //   83f804               | cmp                 eax, 4
            //   0f85f6000000         | jne                 0xfc

    condition:
        7 of them and filesize < 1115136
}
Download all Yara Rules