SYMBOLCOMMON_NAMEaka. SYNONYMS
win.hardrain (Back to overview)

HARDRAIN

Actor(s): Lazarus Group

VTCollection    

There is no description at this point.

References
2020-02-19LexfoLexfo
The Lazarus Constellation A study on North Korean malware
FastCash AppleJeus BADCALL Bankshot Brambul Dtrack Duuzer DYEPACK ELECTRICFISH HARDRAIN Hermes HOPLIGHT Joanap KEYMARBLE Kimsuky MimiKatz MyDoom NACHOCHEESE NavRAT PowerRatankba RokRAT Sierra(Alfa,Bravo, ...) Volgmer WannaCryptor
2018-02-05US-CERTUnknown Unknown
HIDDEN COBRA - North Korean Malicious Cyber Activity
HARDRAIN HARDRAIN
Yara Rules
[TLP:WHITE] win_hardrain_auto (20260504 | Detects win.hardrain.)
rule win_hardrain_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.hardrain."
        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.hardrain"
        malpedia_rule_date = "20260422"
        malpedia_hash = "a182e35da64e6d71cb55f125c4d4225196523f14"
        malpedia_version = "20260504"
        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 = { c1e902 f3a5 8bc8 8b442420 83e103 83f801 f3a4 }
            // n = 7, score = 200
            //   c1e902               | shr                 ecx, 2
            //   f3a5                 | rep movsd           dword ptr es:[edi], dword ptr [esi]
            //   8bc8                 | mov                 ecx, eax
            //   8b442420             | mov                 eax, dword ptr [esp + 0x20]
            //   83e103               | and                 ecx, 3
            //   83f801               | cmp                 eax, 1
            //   f3a4                 | rep movsb           byte ptr es:[edi], byte ptr [esi]

        $sequence_1 = { 668944244c 885c244e ff15???????? 8bcd 8db4240c010000 8bd1 8d7c244d }
            // n = 7, score = 200
            //   668944244c           | mov                 word ptr [esp + 0x4c], ax
            //   885c244e             | mov                 byte ptr [esp + 0x4e], bl
            //   ff15????????         |                     
            //   8bcd                 | mov                 ecx, ebp
            //   8db4240c010000       | lea                 esi, [esp + 0x10c]
            //   8bd1                 | mov                 edx, ecx
            //   8d7c244d             | lea                 edi, [esp + 0x4d]

        $sequence_2 = { 743a 6a16 8d4c241c 55 }
            // n = 4, score = 200
            //   743a                 | je                  0x3c
            //   6a16                 | push                0x16
            //   8d4c241c             | lea                 ecx, [esp + 0x1c]
            //   55                   | push                ebp

        $sequence_3 = { f3a4 888390020000 b90c000000 33c0 }
            // n = 4, score = 200
            //   f3a4                 | rep movsb           byte ptr es:[edi], byte ptr [esi]
            //   888390020000         | mov                 byte ptr [ebx + 0x290], al
            //   b90c000000           | mov                 ecx, 0xc
            //   33c0                 | xor                 eax, eax

        $sequence_4 = { e8???????? 83c408 68???????? ff15???????? 8b442404 50 }
            // n = 6, score = 200
            //   e8????????           |                     
            //   83c408               | add                 esp, 8
            //   68????????           |                     
            //   ff15????????         |                     
            //   8b442404             | mov                 eax, dword ptr [esp + 4]
            //   50                   | push                eax

        $sequence_5 = { 8bcd 57 8bc1 8bfb }
            // n = 4, score = 200
            //   8bcd                 | mov                 ecx, ebp
            //   57                   | push                edi
            //   8bc1                 | mov                 eax, ecx
            //   8bfb                 | mov                 edi, ebx

        $sequence_6 = { 895c242c c744243000000000 ff15???????? 85c0 7eca }
            // n = 5, score = 200
            //   895c242c             | mov                 dword ptr [esp + 0x2c], ebx
            //   c744243000000000     | mov                 dword ptr [esp + 0x30], 0
            //   ff15????????         |                     
            //   85c0                 | test                eax, eax
            //   7eca                 | jle                 0xffffffcc

        $sequence_7 = { 5e 83c418 c3 33c9 33c0 8b542424 894c2410 }
            // n = 7, score = 200
            //   5e                   | pop                 esi
            //   83c418               | add                 esp, 0x18
            //   c3                   | ret                 
            //   33c9                 | xor                 ecx, ecx
            //   33c0                 | xor                 eax, eax
            //   8b542424             | mov                 edx, dword ptr [esp + 0x24]
            //   894c2410             | mov                 dword ptr [esp + 0x10], ecx

        $sequence_8 = { 50 56 6857340000 51 e8???????? }
            // n = 5, score = 200
            //   50                   | push                eax
            //   56                   | push                esi
            //   6857340000           | push                0x3457
            //   51                   | push                ecx
            //   e8????????           |                     

        $sequence_9 = { e8???????? 85c0 0f85e0000000 66a1???????? 53 56 57 }
            // n = 7, score = 200
            //   e8????????           |                     
            //   85c0                 | test                eax, eax
            //   0f85e0000000         | jne                 0xe6
            //   66a1????????         |                     
            //   53                   | push                ebx
            //   56                   | push                esi
            //   57                   | push                edi

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