SYMBOLCOMMON_NAMEaka. SYNONYMS
win.entryshell (Back to overview)

EntryShell

VTCollection    

Fileless malware 'EntryShell', a variant of the KeyBoy malware, due to similarities in backdoor command IDs and debug messages with old KeyBoy samples. The embedded malware config was encrypted with a unique algorithm.

References
2023-10-06 ⋅ ITOCHU ⋅ ITOCHU Cyber & Intelligence Inc.
Sequel: Gifts from Tropical Pirates - Who is the Sender? Look for the Attacker Group
EntryShell SparrowDoor
2023-10-05 ⋅ VirusBulletin ⋅ Hajime Yanagishita, Suguru Ishimaru, Yusuke Niwa
Unveiling activities of Tropic Trooper 2023: deep analysis of Xiangoop Loader and EntryShell payload
EntryShell SparrowDoor Xiangoop
Yara Rules
[TLP:WHITE] win_entryshell_auto (20260917 | Detects win.entryshell.)
rule win_entryshell_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.entryshell."
        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.entryshell"
        malpedia_rule_date = "20260916"
        malpedia_hash = "53a643781c18e08f4a50949af60172d837a0b6f6"
        malpedia_version = "20260917"
        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 = { 8b4df0 8b048578512501 807c012800 7d5b 8d45dc 50 ff75e8 }
            // n = 7, score = 100
            //   8b4df0               | mov                 ecx, dword ptr [ebp - 0x10]
            //   8b048578512501       | mov                 eax, dword ptr [eax*4 + 0x1255178]
            //   807c012800           | cmp                 byte ptr [ecx + eax + 0x28], 0
            //   7d5b                 | jge                 0x5d
            //   8d45dc               | lea                 eax, [ebp - 0x24]
            //   50                   | push                eax
            //   ff75e8               | push                dword ptr [ebp - 0x18]

        $sequence_1 = { 41 84c0 75f9 8b4314 2bca 8b95f0feffff 8b0410 }
            // n = 7, score = 100
            //   41                   | inc                 ecx
            //   84c0                 | test                al, al
            //   75f9                 | jne                 0xfffffffb
            //   8b4314               | mov                 eax, dword ptr [ebx + 0x14]
            //   2bca                 | sub                 ecx, edx
            //   8b95f0feffff         | mov                 edx, dword ptr [ebp - 0x110]
            //   8b0410               | mov                 eax, dword ptr [eax + edx]

        $sequence_2 = { 50 6a00 eb3b 83fb03 7541 68???????? 68???????? }
            // n = 7, score = 100
            //   50                   | push                eax
            //   6a00                 | push                0
            //   eb3b                 | jmp                 0x3d
            //   83fb03               | cmp                 ebx, 3
            //   7541                 | jne                 0x43
            //   68????????           |                     
            //   68????????           |                     

        $sequence_3 = { 8be5 5d c3 6a44 8d4590 }
            // n = 5, score = 100
            //   8be5                 | mov                 esp, ebp
            //   5d                   | pop                 ebp
            //   c3                   | ret                 
            //   6a44                 | push                0x44
            //   8d4590               | lea                 eax, [ebp - 0x70]

        $sequence_4 = { 75f9 2bc2 83f840 760c 46 8935???????? e9???????? }
            // n = 7, score = 100
            //   75f9                 | jne                 0xfffffffb
            //   2bc2                 | sub                 eax, edx
            //   83f840               | cmp                 eax, 0x40
            //   760c                 | jbe                 0xe
            //   46                   | inc                 esi
            //   8935????????         |                     
            //   e9????????           |                     

        $sequence_5 = { 8d8424d8000000 6a40 6a00 50 e8???????? 83c40c 8d842458190000 }
            // n = 7, score = 100
            //   8d8424d8000000       | lea                 eax, [esp + 0xd8]
            //   6a40                 | push                0x40
            //   6a00                 | push                0
            //   50                   | push                eax
            //   e8????????           |                     
            //   83c40c               | add                 esp, 0xc
            //   8d842458190000       | lea                 eax, [esp + 0x1958]

        $sequence_6 = { 8b4f1c 8b75f0 8b4718 0f1185ccfeffff 8995d0feffff 894dd4 8d8d74fcffff }
            // n = 7, score = 100
            //   8b4f1c               | mov                 ecx, dword ptr [edi + 0x1c]
            //   8b75f0               | mov                 esi, dword ptr [ebp - 0x10]
            //   8b4718               | mov                 eax, dword ptr [edi + 0x18]
            //   0f1185ccfeffff       | movups              xmmword ptr [ebp - 0x134], xmm0
            //   8995d0feffff         | mov                 dword ptr [ebp - 0x130], edx
            //   894dd4               | mov                 dword ptr [ebp - 0x2c], ecx
            //   8d8d74fcffff         | lea                 ecx, [ebp - 0x38c]

        $sequence_7 = { 660f282d???????? 660f59f5 660f28aa00e12401 660f54e5 660f58fe }
            // n = 5, score = 100
            //   660f282d????????     |                     
            //   660f59f5             | mulpd               xmm6, xmm5
            //   660f28aa00e12401     | movapd              xmm5, xmmword ptr [edx + 0x124e100]
            //   660f54e5             | andpd               xmm4, xmm5
            //   660f58fe             | addpd               xmm7, xmm6

        $sequence_8 = { e8???????? 660f6ec0 f30fe6c0 f20f5e05???????? f20f5905???????? f20f2cc0 884435f0 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   660f6ec0             | movd                xmm0, eax
            //   f30fe6c0             | cvtdq2pd            xmm0, xmm0
            //   f20f5e05????????     |                     
            //   f20f5905????????     |                     
            //   f20f2cc0             | cvttsd2si           eax, xmm0
            //   884435f0             | mov                 byte ptr [ebp + esi - 0x10], al

        $sequence_9 = { 8a442417 83c408 8b54241c 894c2410 880419 }
            // n = 5, score = 100
            //   8a442417             | mov                 al, byte ptr [esp + 0x17]
            //   83c408               | add                 esp, 8
            //   8b54241c             | mov                 edx, dword ptr [esp + 0x1c]
            //   894c2410             | mov                 dword ptr [esp + 0x10], ecx
            //   880419               | mov                 byte ptr [ecx + ebx], al

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