SYMBOLCOMMON_NAMEaka. SYNONYMS
win.resident (Back to overview)

Resident

Actor(s): TA866

VTCollection    

According to Cisco Talos, Resident is a backdoor likely developed by the same author as win.warmcookie, and it was observed being delivered in intrusions they attribute to TA866.

References
2024-10-23Cisco TalosEdmund Brumaghin, Holger Unterbrink, Jordyn Dunk, Nicole Hoffman
Highlighting TA866/Asylum Ambuscade Activity Since 2021
WasabiSeed Cobalt Strike csharp-streamer RAT Resident Rhadamanthys WarmCookie
2023-06-15eSentireRussianPanda
eSentire Threat Intelligence Malware Analysis: Resident Campaign
Cobalt Strike Resident Rhadamanthys WarmCookie
Yara Rules
[TLP:WHITE] win_resident_auto (20260504 | Detects win.resident.)
rule win_resident_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.resident."
        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.resident"
        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 = { ffd6 83ec04 85c0 7491 }
            // n = 4, score = 100
            //   ffd6                 | call                esi
            //   83ec04               | sub                 esp, 4
            //   85c0                 | test                eax, eax
            //   7491                 | je                  0xffffff93

        $sequence_1 = { 6a00 83f864 7c26 8b7508 6801040000 }
            // n = 5, score = 100
            //   6a00                 | push                0
            //   83f864               | cmp                 eax, 0x64
            //   7c26                 | jl                  0x28
            //   8b7508               | mov                 esi, dword ptr [ebp + 8]
            //   6801040000           | push                0x401

        $sequence_2 = { 6a00 6a00 ff15???????? 6800080000 6a08 ffd7 50 }
            // n = 7, score = 100
            //   6a00                 | push                0
            //   6a00                 | push                0
            //   ff15????????         |                     
            //   6800080000           | push                0x800
            //   6a08                 | push                8
            //   ffd7                 | call                edi
            //   50                   | push                eax

        $sequence_3 = { 7424 83e101 741f b901000000 83c002 0fb710 }
            // n = 6, score = 100
            //   7424                 | je                  0x26
            //   83e101               | and                 ecx, 1
            //   741f                 | je                  0x21
            //   b901000000           | mov                 ecx, 1
            //   83c002               | add                 eax, 2
            //   0fb710               | movzx               edx, word ptr [eax]

        $sequence_4 = { 890424 894c2404 ff5218 83ec10 85c0 7852 8b442428 }
            // n = 7, score = 100
            //   890424               | mov                 dword ptr [esp], eax
            //   894c2404             | mov                 dword ptr [esp + 4], ecx
            //   ff5218               | call                dword ptr [edx + 0x18]
            //   83ec10               | sub                 esp, 0x10
            //   85c0                 | test                eax, eax
            //   7852                 | js                  0x54
            //   8b442428             | mov                 eax, dword ptr [esp + 0x28]

        $sequence_5 = { 83f801 7508 8d7001 e9???????? 83f802 0f85ac000000 }
            // n = 6, score = 100
            //   83f801               | cmp                 eax, 1
            //   7508                 | jne                 0xa
            //   8d7001               | lea                 esi, [eax + 1]
            //   e9????????           |                     
            //   83f802               | cmp                 eax, 2
            //   0f85ac000000         | jne                 0xb2

        $sequence_6 = { 68???????? 50 ff15???????? 5f 33c0 5e }
            // n = 6, score = 100
            //   68????????           |                     
            //   50                   | push                eax
            //   ff15????????         |                     
            //   5f                   | pop                 edi
            //   33c0                 | xor                 eax, eax
            //   5e                   | pop                 esi

        $sequence_7 = { c70424???????? e8???????? 837c242c01 89c7 7e4b }
            // n = 5, score = 100
            //   c70424????????       |                     
            //   e8????????           |                     
            //   837c242c01           | cmp                 dword ptr [esp + 0x2c], 1
            //   89c7                 | mov                 edi, eax
            //   7e4b                 | jle                 0x4d

        $sequence_8 = { e8???????? 89c7 c7002d2d2d2d c740042d424547 }
            // n = 4, score = 100
            //   e8????????           |                     
            //   89c7                 | mov                 edi, eax
            //   c7002d2d2d2d         | mov                 dword ptr [eax], 0x2d2d2d2d
            //   c740042d424547       | mov                 dword ptr [eax + 4], 0x4745422d

        $sequence_9 = { e8???????? 893c24 89442428 e8???????? 8b542428 }
            // n = 5, score = 100
            //   e8????????           |                     
            //   893c24               | mov                 dword ptr [esp], edi
            //   89442428             | mov                 dword ptr [esp + 0x28], eax
            //   e8????????           |                     
            //   8b542428             | mov                 edx, dword ptr [esp + 0x28]

        $sequence_10 = { 33ff 68007f0000 57 c745b430000000 897db8 c745bc20144000 }
            // n = 6, score = 100
            //   33ff                 | xor                 edi, edi
            //   68007f0000           | push                0x7f00
            //   57                   | push                edi
            //   c745b430000000       | mov                 dword ptr [ebp - 0x4c], 0x30
            //   897db8               | mov                 dword ptr [ebp - 0x48], edi
            //   c745bc20144000       | mov                 dword ptr [ebp - 0x44], 0x401420

        $sequence_11 = { 56 68e9fd0000 ffd3 8d85dcfeffff 8d7001 8a08 }
            // n = 6, score = 100
            //   56                   | push                esi
            //   68e9fd0000           | push                0xfde9
            //   ffd3                 | call                ebx
            //   8d85dcfeffff         | lea                 eax, [ebp - 0x124]
            //   8d7001               | lea                 esi, [eax + 1]
            //   8a08                 | mov                 cl, byte ptr [eax]

        $sequence_12 = { 8b3d???????? 890424 ffd7 8b4c2428 }
            // n = 4, score = 100
            //   8b3d????????         |                     
            //   890424               | mov                 dword ptr [esp], eax
            //   ffd7                 | call                edi
            //   8b4c2428             | mov                 ecx, dword ptr [esp + 0x28]

        $sequence_13 = { 8b2d???????? 83ec08 8d9c248e000000 c744241c00000000 }
            // n = 4, score = 100
            //   8b2d????????         |                     
            //   83ec08               | sub                 esp, 8
            //   8d9c248e000000       | lea                 ebx, [esp + 0x8e]
            //   c744241c00000000     | mov                 dword ptr [esp + 0x1c], 0

        $sequence_14 = { 8bec 81ec84060000 a1???????? 33c5 8945f8 53 56 }
            // n = 7, score = 100
            //   8bec                 | mov                 ebp, esp
            //   81ec84060000         | sub                 esp, 0x684
            //   a1????????           |                     
            //   33c5                 | xor                 eax, ebp
            //   8945f8               | mov                 dword ptr [ebp - 8], eax
            //   53                   | push                ebx
            //   56                   | push                esi

        $sequence_15 = { 57 ff15???????? 57 e8???????? 83c424 57 }
            // n = 6, score = 100
            //   57                   | push                edi
            //   ff15????????         |                     
            //   57                   | push                edi
            //   e8????????           |                     
            //   83c424               | add                 esp, 0x24
            //   57                   | push                edi

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