SYMBOLCOMMON_NAMEaka. SYNONYMS
win.dadstache (Back to overview)

DADSTACHE

Actor(s): Leviathan

VTCollection    

There is no description at this point.

References
2020-07-10 ⋅ ByteAtlas ⋅ Daniel Plohmann
Knowledge Fragment: Casting Sandbox Necromancy on DADSTACHE
DADSTACHE
2020-06-25 ⋅ Elastic ⋅ Daniel Stepanic, Samir Bousseaden
A close look at the advanced techniques used in a Malaysian-focused APT campaign
DADSTACHE APT40
2020-03-15 ⋅ insomniacs(Medium) ⋅ Asuna Amawaka
Dad! There’s A Rat In Here!
DADSTACHE
2020-03-10 ⋅ insomniacs(Medium) ⋅ Asuna Amawaka
APT40 goes from Template Injections to OLE-Linkings for payload delivery
DADSTACHE
2019-11-28 ⋅ Twitter (@cyb3rops) ⋅ Florian Roth
Tweet on Signature Writing for DADJOKE
DADSTACHE
2019-04-22 ⋅ Twitter (@killamjr) ⋅ Suspicious Link
Tweet on DADSTACHE payload
DADSTACHE
Yara Rules
[TLP:WHITE] win_dadstache_auto (20260917 | Detects win.dadstache.)
rule win_dadstache_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.dadstache."
        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.dadstache"
        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 = { a1???????? 5f 5e 5b 85c0 742e 80787400 }
            // n = 7, score = 500
            //   a1????????           |                     
            //   5f                   | pop                 edi
            //   5e                   | pop                 esi
            //   5b                   | pop                 ebx
            //   85c0                 | test                eax, eax
            //   742e                 | je                  0x30
            //   80787400             | cmp                 byte ptr [eax + 0x74], 0

        $sequence_1 = { 6a00 83e103 8d85fcfdffff 6a00 }
            // n = 4, score = 500
            //   6a00                 | push                0
            //   83e103               | and                 ecx, 3
            //   8d85fcfdffff         | lea                 eax, [ebp - 0x204]
            //   6a00                 | push                0

        $sequence_2 = { 75f9 e9???????? 80f902 0f85f8000000 8b830c020000 8d5302 8bf0 }
            // n = 7, score = 500
            //   75f9                 | jne                 0xfffffffb
            //   e9????????           |                     
            //   80f902               | cmp                 cl, 2
            //   0f85f8000000         | jne                 0xfe
            //   8b830c020000         | mov                 eax, dword ptr [ebx + 0x20c]
            //   8d5302               | lea                 edx, [ebx + 2]
            //   8bf0                 | mov                 esi, eax

        $sequence_3 = { 8b4670 ffb018020000 ff15???????? 68c8000000 }
            // n = 4, score = 500
            //   8b4670               | mov                 eax, dword ptr [esi + 0x70]
            //   ffb018020000         | push                dword ptr [eax + 0x218]
            //   ff15????????         |                     
            //   68c8000000           | push                0xc8

        $sequence_4 = { 5d c3 33f6 6a02 56 }
            // n = 5, score = 500
            //   5d                   | pop                 ebp
            //   c3                   | ret                 
            //   33f6                 | xor                 esi, esi
            //   6a02                 | push                2
            //   56                   | push                esi

        $sequence_5 = { 55 8bec 81ec04020000 53 8b1d???????? }
            // n = 5, score = 500
            //   55                   | push                ebp
            //   8bec                 | mov                 ebp, esp
            //   81ec04020000         | sub                 esp, 0x204
            //   53                   | push                ebx
            //   8b1d????????         |                     

        $sequence_6 = { 0f8404030000 80787400 0f84fa020000 e9???????? 84c0 0f84da020000 }
            // n = 6, score = 500
            //   0f8404030000         | je                  0x30a
            //   80787400             | cmp                 byte ptr [eax + 0x74], 0
            //   0f84fa020000         | je                  0x300
            //   e9????????           |                     
            //   84c0                 | test                al, al
            //   0f84da020000         | je                  0x2e0

        $sequence_7 = { 85ff 0f84a6000000 6690 6aff ff35???????? ff15???????? }
            // n = 6, score = 500
            //   85ff                 | test                edi, edi
            //   0f84a6000000         | je                  0xac
            //   6690                 | nop                 
            //   6aff                 | push                -1
            //   ff35????????         |                     
            //   ff15????????         |                     

        $sequence_8 = { 6800400000 51 52 ff55ec eb61 a900000020 ba01000000 }
            // n = 7, score = 200
            //   6800400000           | push                0x4000
            //   51                   | push                ecx
            //   52                   | push                edx
            //   ff55ec               | call                dword ptr [ebp - 0x14]
            //   eb61                 | jmp                 0x63
            //   a900000020           | test                eax, 0x20000000
            //   ba01000000           | mov                 edx, 1

        $sequence_9 = { 894618 8b8578ffffff 89461c 8d8564ffffff 50 57 }
            // n = 6, score = 200
            //   894618               | mov                 dword ptr [esi + 0x18], eax
            //   8b8578ffffff         | mov                 eax, dword ptr [ebp - 0x88]
            //   89461c               | mov                 dword ptr [esi + 0x1c], eax
            //   8d8564ffffff         | lea                 eax, [ebp - 0x9c]
            //   50                   | push                eax
            //   57                   | push                edi

        $sequence_10 = { 47 8b4d0c 3b7818 8b45fc 72bd 5f 5e }
            // n = 7, score = 200
            //   47                   | inc                 edi
            //   8b4d0c               | mov                 ecx, dword ptr [ebp + 0xc]
            //   3b7818               | cmp                 edi, dword ptr [eax + 0x18]
            //   8b45fc               | mov                 eax, dword ptr [ebp - 4]
            //   72bd                 | jb                  0xffffffbf
            //   5f                   | pop                 edi
            //   5e                   | pop                 esi

        $sequence_11 = { 8b46f8 8945ec 85c0 750d 8b45e0 8b4038 }
            // n = 6, score = 200
            //   8b46f8               | mov                 eax, dword ptr [esi - 8]
            //   8945ec               | mov                 dword ptr [ebp - 0x14], eax
            //   85c0                 | test                eax, eax
            //   750d                 | jne                 0xf
            //   8b45e0               | mov                 eax, dword ptr [ebp - 0x20]
            //   8b4038               | mov                 eax, dword ptr [eax + 0x38]

        $sequence_12 = { c745f06c6f6300 c745f4476c6f62 0f44d8 c745f8616c4672 }
            // n = 4, score = 200
            //   c745f06c6f6300       | mov                 dword ptr [ebp - 0x10], 0x636f6c
            //   c745f4476c6f62       | mov                 dword ptr [ebp - 0xc], 0x626f6c47
            //   0f44d8               | cmove               ebx, eax
            //   c745f8616c4672       | mov                 dword ptr [ebp - 8], 0x72466c61

        $sequence_13 = { 0355e8 e8???????? 83c404 8b55f0 }
            // n = 4, score = 200
            //   0355e8               | add                 edx, dword ptr [ebp - 0x18]
            //   e8????????           |                     
            //   83c404               | add                 esp, 4
            //   8b55f0               | mov                 edx, dword ptr [ebp - 0x10]

        $sequence_14 = { 74e5 8d1418 8b4220 56 57 03c3 }
            // n = 6, score = 200
            //   74e5                 | je                  0xffffffe7
            //   8d1418               | lea                 edx, [eax + ebx]
            //   8b4220               | mov                 eax, dword ptr [edx + 0x20]
            //   56                   | push                esi
            //   57                   | push                edi
            //   03c3                 | add                 eax, ebx

        $sequence_15 = { 50 57 c745a075616c50 c745a4726f7465 66c745a86374 }
            // n = 5, score = 200
            //   50                   | push                eax
            //   57                   | push                edi
            //   c745a075616c50       | mov                 dword ptr [ebp - 0x60], 0x506c6175
            //   c745a4726f7465       | mov                 dword ptr [ebp - 0x5c], 0x65746f72
            //   66c745a86374         | mov                 word ptr [ebp - 0x58], 0x7463

    condition:
        7 of them and filesize < 580608
}
[TLP:WHITE] win_dadstache_w0   (20200626 | APT40 second stage implant)
rule win_dadstache_w0 {
    meta:
        author =  "Elastic Security"
        description = "APT40 second stage implant"
        source = "https://www.elastic.co/blog/advanced-techniques-used-in-malaysian-focused-apt-campaign"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.dadstache"
        malpedia_version = "20200626"
        malpedia_license = "CC BY-NC-SA 4.0"
        malpedia_sharing = "TLP:WHITE"
    strings:
        $a = "/list_direction" fullword wide
        $b = "/post_document" fullword wide
        $c = "/postlogin" fullword wide
        $d = "Download Read Path Failed %s" fullword ascii
        $e = "Open Pipe Failed %s" fullword ascii
        $f = "Open Remote File %s Failed For: %s" fullword ascii
        $g = "Download Read Path Failed %s" fullword ascii
        $h = "\\cmd.exe" fullword wide
    condition:
        all of them
}
Download all Yara Rules