SYMBOLCOMMON_NAMEaka. SYNONYMS
win.kgh_spy (Back to overview)

KGH_SPY

VTCollection    

There is no description at this point.

References
2021-07-14 ⋅ ⋅ Microstep Online Research Response Center ⋅ Microstep Online Research Response Center
Old trees and new flowers: Analysis of the new version of KGH spy components used by Kimsuky
KGH_SPY
2020-11-02 ⋅ Cybereason ⋅ Assaf Dahan, Daniel Frank, Lior Rochberger, Tom Fakterman
Back to the Future: Inside the Kimsuky KGH Spyware Suite
BabyShark GoldDragon KGH_SPY Kimsuky
Yara Rules
[TLP:WHITE] win_kgh_spy_auto (20260917 | Detects win.kgh_spy.)
rule win_kgh_spy_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.kgh_spy."
        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.kgh_spy"
        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 = { 488d150beb0000 488b4c2420 e8???????? 4889442428 48837c242800 7504 32c0 }
            // n = 7, score = 100
            //   488d150beb0000       | dec                 eax
            //   488b4c2420           | mov                 dword ptr [eax + 0x30], ecx
            //   e8????????           |                     
            //   4889442428           | dec                 esp
            //   48837c242800         | mov                 eax, dword ptr [esp + 0x28]
            //   7504                 | dec                 eax
            //   32c0                 | mov                 edx, dword ptr [esp + 0x38]

        $sequence_1 = { 66833c5100 75e1 488b8c2490000000 48c744243800000000 48c744243000000000 }
            // n = 5, score = 100
            //   66833c5100           | dec                 eax
            //   75e1                 | mov                 esi, ecx
            //   488b8c2490000000     | mov                 ecx, 0x100
            //   48c744243800000000     | rep movsb    byte ptr es:[edi], byte ptr [esi]
            //   48c744243000000000     | mov    dword ptr [esp + 0x4c], 0

        $sequence_2 = { 0f84a9010000 488bc8 ff15???????? 488d1581350000 }
            // n = 4, score = 100
            //   0f84a9010000         | je                  0x176
            //   488bc8               | dec                 eax
            //   ff15????????         |                     
            //   488d1581350000       | lea                 ebp, [0xc671]

        $sequence_3 = { 488d8424300a0000 4889842488000000 48c7442450ffffffff 48ff442450 488b842488000000 488b4c2450 }
            // n = 6, score = 100
            //   488d8424300a0000     | mov                 eax, dword ptr [eax]
            //   4889842488000000     | cmp                 dword ptr [eax + 0x28], 0
            //   48c7442450ffffffff     | je    0x2ea
            //   48ff442450           | dec                 eax
            //   488b842488000000     | mov                 ecx, dword ptr [esp + 0x28]
            //   488b4c2450           | mov                 al, 1

        $sequence_4 = { c744245800000000 41b940000000 41b800300000 ba00100000 33c9 }
            // n = 5, score = 100
            //   c744245800000000     | dec                 ecx
            //   41b940000000         | mov                 edx, edi
            //   41b800300000         | dec                 eax
            //   ba00100000           | mov                 ecx, ebp
            //   33c9                 | test                eax, eax

        $sequence_5 = { e8???????? 488b0d???????? e8???????? 488325????????00 4883c428 c3 488d0521880000 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   488b0d????????       |                     
            //   e8????????           |                     
            //   488325????????00     |                     
            //   4883c428             | mov                 edi, eax
            //   c3                   | xor                 eax, eax
            //   488d0521880000       | mov                 ecx, 0x103

        $sequence_6 = { 488b8c24e8080000 ff15???????? 48898424a0000000 4883bc24a0000000ff 7507 32c0 e9???????? }
            // n = 7, score = 100
            //   488b8c24e8080000     | sub                 esp, 0x58
            //   ff15????????         |                     
            //   48898424a0000000     | dec                 eax
            //   4883bc24a0000000ff     | xor    eax, esp
            //   7507                 | dec                 eax
            //   32c0                 | mov                 dword ptr [esp + 0x40], eax
            //   e9????????           |                     

        $sequence_7 = { 4883c008 4889442440 488b442430 48833800 0f8491000000 488b442430 }
            // n = 6, score = 100
            //   4883c008             | lea                 ecx, [0xbf4e]
            //   4889442440           | mov                 eax, 1
            //   488b442430           | mov                 dword ptr [esp + 0x30], 0x41
            //   48833800             | jmp                 0x98e
            //   0f8491000000         | mov                 eax, dword ptr [esp + 0x30]
            //   488b442430           | inc                 eax

        $sequence_8 = { 488d8c24e0020000 e8???????? 488d9424f0030000 488d8c24e0020000 e8???????? 488d8c24f0030000 }
            // n = 6, score = 100
            //   488d8c24e0020000     | mov                 dword ptr [esp + 0x20], eax
            //   e8????????           |                     
            //   488d9424f0030000     | dec                 eax
            //   488d8c24e0020000     | cmp                 dword ptr [esp + 0x20], 0
            //   e8????????           |                     
            //   488d8c24f0030000     | jne                 0x663

        $sequence_9 = { 488b742420 488bc8 f3a4 b001 }
            // n = 4, score = 100
            //   488b742420           | lea                 eax, [0xd8a2]
            //   488bc8               | mov                 edx, eax
            //   f3a4                 | dec                 eax
            //   b001                 | mov                 dword ptr [esp + 0x28], ecx

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