SYMBOLCOMMON_NAMEaka. SYNONYMS
win.acbackdoor (Back to overview)

ACBackdoor

VTCollection    

A Linux backdoor that was apparently ported to Windows. This entry represents the Windows version. It appears the Linux version was written first and the Windows version was ported later, without full functionality. The Linux version offers persistence as well as some process manipulation techniques, though both versions apparently offer the ability to access the command line and execute programs as well as self-update.

References
2019-11-18Bleeping ComputerSergiu Gatlan
Linux, Windows Users Targeted With New ACBackdoor Malware
ACBackdoor ACBackdoor
Yara Rules
[TLP:WHITE] win_acbackdoor_auto (20260504 | Detects win.acbackdoor.)
rule win_acbackdoor_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.acbackdoor."
        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.acbackdoor"
        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 = { c744240c801e4b00 89742408 89442404 c70424???????? e8???????? e9???????? 8b842408020000 }
            // n = 7, score = 100
            //   c744240c801e4b00     | mov                 dword ptr [esp + 0xc], 0x4b1e80
            //   89742408             | mov                 dword ptr [esp + 8], esi
            //   89442404             | mov                 dword ptr [esp + 4], eax
            //   c70424????????       |                     
            //   e8????????           |                     
            //   e9????????           |                     
            //   8b842408020000       | mov                 eax, dword ptr [esp + 0x208]

        $sequence_1 = { 89c1 c1e918 0fca 88633a 884b38 89c1 c1e910 }
            // n = 7, score = 100
            //   89c1                 | mov                 ecx, eax
            //   c1e918               | shr                 ecx, 0x18
            //   0fca                 | bswap               edx
            //   88633a               | mov                 byte ptr [ebx + 0x3a], ah
            //   884b38               | mov                 byte ptr [ebx + 0x38], cl
            //   89c1                 | mov                 ecx, eax
            //   c1e910               | shr                 ecx, 0x10

        $sequence_2 = { 8b4c2448 8d742448 894844 8b7c242c 8b4c3c44 894c3afc 8d4848 }
            // n = 7, score = 100
            //   8b4c2448             | mov                 ecx, dword ptr [esp + 0x48]
            //   8d742448             | lea                 esi, [esp + 0x48]
            //   894844               | mov                 dword ptr [eax + 0x44], ecx
            //   8b7c242c             | mov                 edi, dword ptr [esp + 0x2c]
            //   8b4c3c44             | mov                 ecx, dword ptr [esp + edi + 0x44]
            //   894c3afc             | mov                 dword ptr [edx + edi - 4], ecx
            //   8d4848               | lea                 ecx, [eax + 0x48]

        $sequence_3 = { e8???????? 85c0 7594 896c2404 893424 e8???????? c744240448000000 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   85c0                 | test                eax, eax
            //   7594                 | jne                 0xffffff96
            //   896c2404             | mov                 dword ptr [esp + 4], ebp
            //   893424               | mov                 dword ptr [esp], esi
            //   e8????????           |                     
            //   c744240448000000     | mov                 dword ptr [esp + 4], 0x48

        $sequence_4 = { c70000000000 85d2 743f 31db bf80ffffff 31c0 90 }
            // n = 7, score = 100
            //   c70000000000         | mov                 dword ptr [eax], 0
            //   85d2                 | test                edx, edx
            //   743f                 | je                  0x41
            //   31db                 | xor                 ebx, ebx
            //   bf80ffffff           | mov                 edi, 0xffffff80
            //   31c0                 | xor                 eax, eax
            //   90                   | nop                 

        $sequence_5 = { 8b07 31db 8986f8050000 e9???????? 8b2f 8bbef0090000 85ed }
            // n = 7, score = 100
            //   8b07                 | mov                 eax, dword ptr [edi]
            //   31db                 | xor                 ebx, ebx
            //   8986f8050000         | mov                 dword ptr [esi + 0x5f8], eax
            //   e9????????           |                     
            //   8b2f                 | mov                 ebp, dword ptr [edi]
            //   8bbef0090000         | mov                 edi, dword ptr [esi + 0x9f0]
            //   85ed                 | test                ebp, ebp

        $sequence_6 = { c7831c060000c8000000 c783140a000000000000 c783440a000060ea0000 c783280a000005000000 c7832406000076000000 818b5c0a000010000040 c7830008000002000000 }
            // n = 7, score = 100
            //   c7831c060000c8000000     | mov    dword ptr [ebx + 0x61c], 0xc8
            //   c783140a000000000000     | mov    dword ptr [ebx + 0xa14], 0
            //   c783440a000060ea0000     | mov    dword ptr [ebx + 0xa44], 0xea60
            //   c783280a000005000000     | mov    dword ptr [ebx + 0xa28], 5
            //   c7832406000076000000     | mov    dword ptr [ebx + 0x624], 0x76
            //   818b5c0a000010000040     | or    dword ptr [ebx + 0xa5c], 0x40000010
            //   c7830008000002000000     | mov    dword ptr [ebx + 0x800], 2

        $sequence_7 = { e8???????? c7442404???????? 89442408 891c24 e8???????? e9???????? e8???????? }
            // n = 7, score = 100
            //   e8????????           |                     
            //   c7442404????????     |                     
            //   89442408             | mov                 dword ptr [esp + 8], eax
            //   891c24               | mov                 dword ptr [esp], ebx
            //   e8????????           |                     
            //   e9????????           |                     
            //   e8????????           |                     

        $sequence_8 = { c744240800000000 897c2404 e8???????? 89c3 85c0 7589 c70424???????? }
            // n = 7, score = 100
            //   c744240800000000     | mov                 dword ptr [esp + 8], 0
            //   897c2404             | mov                 dword ptr [esp + 4], edi
            //   e8????????           |                     
            //   89c3                 | mov                 ebx, eax
            //   85c0                 | test                eax, eax
            //   7589                 | jne                 0xffffff8b
            //   c70424????????       |                     

        $sequence_9 = { c744240c2b0c0000 c7442408???????? c744240401000000 891c24 e8???????? e9???????? c6400700 }
            // n = 7, score = 100
            //   c744240c2b0c0000     | mov                 dword ptr [esp + 0xc], 0xc2b
            //   c7442408????????     |                     
            //   c744240401000000     | mov                 dword ptr [esp + 4], 1
            //   891c24               | mov                 dword ptr [esp], ebx
            //   e8????????           |                     
            //   e9????????           |                     
            //   c6400700             | mov                 byte ptr [eax + 7], 0

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