SYMBOLCOMMON_NAMEaka. SYNONYMS
win.spank_rat (Back to overview)

SpankRAT

VTCollection    

According to ANY.RUN, this RAT is written in Rust. SpankRAT communicates with its C2 over WebSockets and provides full remote access to the system. The full-featured variant supports 18 commands covering remote shell execution, file management (list/read/upload/delete/rename), process enumeration and killing, Windows service control (start/stop/restart), full registry CRUD, scheduled task manipulation, and software inventory.

References
2026-04-16 ⋅ Twitter (@anyrun_app) ⋅ Achmad Adhikara, GridGuardGhoul
Tweet about SpankRat
SpankRAT
Yara Rules
[TLP:WHITE] win_spank_rat_auto (20260917 | Detects win.spank_rat.)
rule win_spank_rat_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.spank_rat."
        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.spank_rat"
        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 = { c7463000000000 895644 83f902 0f44cf 8d7a18 898be4020000 897e3c }
            // n = 7, score = 100
            //   c7463000000000       | mov                 dword ptr [esi + 0x30], 0
            //   895644               | mov                 dword ptr [esi + 0x44], edx
            //   83f902               | cmp                 ecx, 2
            //   0f44cf               | cmove               ecx, edi
            //   8d7a18               | lea                 edi, [edx + 0x18]
            //   898be4020000         | mov                 dword ptr [ebx + 0x2e4], ecx
            //   897e3c               | mov                 dword ptr [esi + 0x3c], edi

        $sequence_1 = { 885c3801 88543802 eb35 c1e812 897e2c 894e64 8b7e38 }
            // n = 7, score = 100
            //   885c3801             | mov                 byte ptr [eax + edi + 1], bl
            //   88543802             | mov                 byte ptr [eax + edi + 2], dl
            //   eb35                 | jmp                 0x37
            //   c1e812               | shr                 eax, 0x12
            //   897e2c               | mov                 dword ptr [esi + 0x2c], edi
            //   894e64               | mov                 dword ptr [esi + 0x64], ecx
            //   8b7e38               | mov                 edi, dword ptr [esi + 0x38]

        $sequence_2 = { e8???????? 58 8b8524feffff 8b8d28feffff 8b952cfeffff c745f003000000 8945cc }
            // n = 7, score = 100
            //   e8????????           |                     
            //   58                   | pop                 eax
            //   8b8524feffff         | mov                 eax, dword ptr [ebp - 0x1dc]
            //   8b8d28feffff         | mov                 ecx, dword ptr [ebp - 0x1d8]
            //   8b952cfeffff         | mov                 edx, dword ptr [ebp - 0x1d4]
            //   c745f003000000       | mov                 dword ptr [ebp - 0x10], 3
            //   8945cc               | mov                 dword ptr [ebp - 0x34], eax

        $sequence_3 = { e8???????? 83c62c 89f1 e8???????? 5d c3 55 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   83c62c               | add                 esi, 0x2c
            //   89f1                 | mov                 ecx, esi
            //   e8????????           |                     
            //   5d                   | pop                 ebp
            //   c3                   | ret                 
            //   55                   | push                ebp

        $sequence_4 = { e8???????? 59 85c0 0f8561f8ffff 8d96d8020000 8d8e40010000 c702???????? }
            // n = 7, score = 100
            //   e8????????           |                     
            //   59                   | pop                 ecx
            //   85c0                 | test                eax, eax
            //   0f8561f8ffff         | jne                 0xfffff867
            //   8d96d8020000         | lea                 edx, [esi + 0x2d8]
            //   8d8e40010000         | lea                 ecx, [esi + 0x140]
            //   c702????????         |                     

        $sequence_5 = { 8b5dac 8b55d4 8b4dc8 8b7ddc f20f1185dcfeffff f20f118dd4feffff f20f1195ccfeffff }
            // n = 7, score = 100
            //   8b5dac               | mov                 ebx, dword ptr [ebp - 0x54]
            //   8b55d4               | mov                 edx, dword ptr [ebp - 0x2c]
            //   8b4dc8               | mov                 ecx, dword ptr [ebp - 0x38]
            //   8b7ddc               | mov                 edi, dword ptr [ebp - 0x24]
            //   f20f1185dcfeffff     | movsd               qword ptr [ebp - 0x124], xmm0
            //   f20f118dd4feffff     | movsd               qword ptr [ebp - 0x12c], xmm1
            //   f20f1195ccfeffff     | movsd               qword ptr [ebp - 0x134], xmm2

        $sequence_6 = { e8???????? 58 e9???????? 6a1a 5a b9???????? 68???????? }
            // n = 7, score = 100
            //   e8????????           |                     
            //   58                   | pop                 eax
            //   e9????????           |                     
            //   6a1a                 | push                0x1a
            //   5a                   | pop                 edx
            //   b9????????           |                     
            //   68????????           |                     

        $sequence_7 = { f20f109600040000 8d8e88000000 8d9640010000 c686a500000000 f20f114808 f30f7e8e08040000 f20f1100 }
            // n = 7, score = 100
            //   f20f109600040000     | movsd               xmm2, qword ptr [esi + 0x400]
            //   8d8e88000000         | lea                 ecx, [esi + 0x88]
            //   8d9640010000         | lea                 edx, [esi + 0x140]
            //   c686a500000000       | mov                 byte ptr [esi + 0xa5], 0
            //   f20f114808           | movsd               qword ptr [eax + 8], xmm1
            //   f30f7e8e08040000     | movq                xmm1, qword ptr [esi + 0x408]
            //   f20f1100             | movsd               qword ptr [eax], xmm0

        $sequence_8 = { eb09 83665000 8b55c8 b104 0fb6c1 c1e608 8d8d44ffffff }
            // n = 7, score = 100
            //   eb09                 | jmp                 0xb
            //   83665000             | and                 dword ptr [esi + 0x50], 0
            //   8b55c8               | mov                 edx, dword ptr [ebp - 0x38]
            //   b104                 | mov                 cl, 4
            //   0fb6c1               | movzx               eax, cl
            //   c1e608               | shl                 esi, 8
            //   8d8d44ffffff         | lea                 ecx, [ebp - 0xbc]

        $sequence_9 = { c7460400000000 e9???????? 6a08 58 894604 c6460c06 e9???????? }
            // n = 7, score = 100
            //   c7460400000000       | mov                 dword ptr [esi + 4], 0
            //   e9????????           |                     
            //   6a08                 | push                8
            //   58                   | pop                 eax
            //   894604               | mov                 dword ptr [esi + 4], eax
            //   c6460c06             | mov                 byte ptr [esi + 0xc], 6
            //   e9????????           |                     

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