SYMBOLCOMMON_NAMEaka. SYNONYMS
win.bitsran (Back to overview)

Bitsran

aka: SHADYCAT

Actor(s): Lazarus Group

VTCollection    

SHADYCAT is a dropper and spreader component for the HERMES 2.1 RANSOMWARE radical edition.

References
2018-01-29ProofpointDarien Huss
North Korea Bitten by Bitcoin Bug
Bitsran
2018-01-01FireEyeFireEye
APT38
Bitsran BLINDTOAD BOOTWRECK Contopee DarkComet DYEPACK HOTWAX NESTEGG PowerRatankba REDSHAWL WORMHOLE Lazarus Group
2017-10-16Hirman Muhammad bin Abu Bakar, James Wong, Sergei Shevchenko
Taiwan Heist: Lazarus Tools and Ransomware
Bitsran Hermes
Yara Rules
[TLP:WHITE] win_bitsran_auto (20260504 | Detects win.bitsran.)
rule win_bitsran_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.bitsran."
        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.bitsran"
        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 = { 740a 8b85f4feffff 56 50 eb3a 8b0d???????? 8b15???????? }
            // n = 7, score = 100
            //   740a                 | je                  0xc
            //   8b85f4feffff         | mov                 eax, dword ptr [ebp - 0x10c]
            //   56                   | push                esi
            //   50                   | push                eax
            //   eb3a                 | jmp                 0x3c
            //   8b0d????????         |                     
            //   8b15????????         |                     

        $sequence_1 = { 8bbdf4feffff 8d4701 50 e8???????? 57 }
            // n = 5, score = 100
            //   8bbdf4feffff         | mov                 edi, dword ptr [ebp - 0x10c]
            //   8d4701               | lea                 eax, [edi + 1]
            //   50                   | push                eax
            //   e8????????           |                     
            //   57                   | push                edi

        $sequence_2 = { 85c0 7403 8975fc 837dfc00 }
            // n = 4, score = 100
            //   85c0                 | test                eax, eax
            //   7403                 | je                  5
            //   8975fc               | mov                 dword ptr [ebp - 4], esi
            //   837dfc00             | cmp                 dword ptr [ebp - 4], 0

        $sequence_3 = { e8???????? 8be5 5d c3 57 8bff 33c9 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   8be5                 | mov                 esp, ebp
            //   5d                   | pop                 ebp
            //   c3                   | ret                 
            //   57                   | push                edi
            //   8bff                 | mov                 edi, edi
            //   33c9                 | xor                 ecx, ecx

        $sequence_4 = { c1f905 8b0c8da01f4200 83e21f c1e206 385c1104 7506 4e }
            // n = 7, score = 100
            //   c1f905               | sar                 ecx, 5
            //   8b0c8da01f4200       | mov                 ecx, dword ptr [ecx*4 + 0x421fa0]
            //   83e21f               | and                 edx, 0x1f
            //   c1e206               | shl                 edx, 6
            //   385c1104             | cmp                 byte ptr [ecx + edx + 4], bl
            //   7506                 | jne                 8
            //   4e                   | dec                 esi

        $sequence_5 = { 7509 c743186c5d4100 eb11 83fefc 740c c743184c5d4100 }
            // n = 6, score = 100
            //   7509                 | jne                 0xb
            //   c743186c5d4100       | mov                 dword ptr [ebx + 0x18], 0x415d6c
            //   eb11                 | jmp                 0x13
            //   83fefc               | cmp                 esi, -4
            //   740c                 | je                  0xe
            //   c743184c5d4100       | mov                 dword ptr [ebx + 0x18], 0x415d4c

        $sequence_6 = { 66894ddc ff15???????? 83f801 753b 8b4d0c 8b55f0 69c9e8030000 }
            // n = 7, score = 100
            //   66894ddc             | mov                 word ptr [ebp - 0x24], cx
            //   ff15????????         |                     
            //   83f801               | cmp                 eax, 1
            //   753b                 | jne                 0x3d
            //   8b4d0c               | mov                 ecx, dword ptr [ebp + 0xc]
            //   8b55f0               | mov                 edx, dword ptr [ebp - 0x10]
            //   69c9e8030000         | imul                ecx, ecx, 0x3e8

        $sequence_7 = { 83c408 85c0 7403 8975fc 8b03 8d55cc 52 }
            // n = 7, score = 100
            //   83c408               | add                 esp, 8
            //   85c0                 | test                eax, eax
            //   7403                 | je                  5
            //   8975fc               | mov                 dword ptr [ebp - 4], esi
            //   8b03                 | mov                 eax, dword ptr [ebx]
            //   8d55cc               | lea                 edx, [ebp - 0x34]
            //   52                   | push                edx

        $sequence_8 = { 8bc1 c1f805 8bf1 83e61f 8d3c85a01f4200 }
            // n = 5, score = 100
            //   8bc1                 | mov                 eax, ecx
            //   c1f805               | sar                 eax, 5
            //   8bf1                 | mov                 esi, ecx
            //   83e61f               | and                 esi, 0x1f
            //   8d3c85a01f4200       | lea                 edi, [eax*4 + 0x421fa0]

        $sequence_9 = { 8935???????? ff15???????? 50 e8???????? 8bf7 2bf3 c1fe02 }
            // n = 7, score = 100
            //   8935????????         |                     
            //   ff15????????         |                     
            //   50                   | push                eax
            //   e8????????           |                     
            //   8bf7                 | mov                 esi, edi
            //   2bf3                 | sub                 esi, ebx
            //   c1fe02               | sar                 esi, 2

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