SYMBOLCOMMON_NAMEaka. SYNONYMS
win.xdspy (Back to overview)

XDSpy


According to ESET Research, XDDown is a primary malware component and is strictly a downloader. It persists on the system using the traditional Run key. It downloads additional plugins from the hardcoded C&C server using the HTTP protocol. The HTTP replies contain PE binaries encrypted with a hardcoded two-byte XOR key. Plugins include a module for reconnaissance on the affected system, crawling drives, file exfiltration, SSID gathering, and grabbing saved passwords.

References
2021-04-29ESET ResearchRobert Lipovsky, Matthieu Faou, Tony Anscombe, Andy Garth, Daniel Chromek
@techreport{lipovsky:20210429:eset:ff67b6c, author = {Robert Lipovsky and Matthieu Faou and Tony Anscombe and Andy Garth and Daniel Chromek}, title = {{ESET Industry Report on Government: Targeted but not alone}}, date = {2021-04-29}, institution = {ESET Research}, url = {https://www.welivesecurity.com/wp-content/uploads/2021/04/ESET_Industry_Report_Government.pdf}, language = {English}, urldate = {2021-05-03} } ESET Industry Report on Government: Targeted but not alone
Exaramel Crutch Exaramel HyperBro HyperSSL InvisiMole XDSpy
2020-10-02ESET ResearchMatthieu Faou
@online{faou:20201002:xdspy:c3724c7, author = {Matthieu Faou}, title = {{XDSpy: Stealing government secrets since 2011}}, date = {2020-10-02}, organization = {ESET Research}, url = {https://www.welivesecurity.com/2020/10/02/xdspy-stealing-government-secrets-since-2011/}, language = {English}, urldate = {2020-10-05} } XDSpy: Stealing government secrets since 2011
XDSpy XDSpy
2020-10-01Github (eset)Matthieu Faou
@online{faou:20201001:xdspy:33a6429, author = {Matthieu Faou}, title = {{XDSpy Indicators of Compromise}}, date = {2020-10-01}, organization = {Github (eset)}, url = {https://github.com/eset/malware-ioc/tree/master/xdspy/}, language = {English}, urldate = {2020-10-08} } XDSpy Indicators of Compromise
XDSpy XDSpy
2020-09-30Virus BulletinMatthieu Faou, Francis Labelle
@techreport{faou:20200930:xdspy:3189c15, author = {Matthieu Faou and Francis Labelle}, title = {{XDSPY: STEALING GOVERNMENT SECRETS SINCE 2011}}, date = {2020-09-30}, institution = {Virus Bulletin}, url = {https://vblocalhost.com/uploads/VB2020-Faou-Labelle.pdf}, language = {English}, urldate = {2020-10-08} } XDSPY: STEALING GOVERNMENT SECRETS SINCE 2011
XDSpy XDSpy
Yara Rules
[TLP:WHITE] win_xdspy_auto (20211008 | Detects win.xdspy.)
rule win_xdspy_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2021-10-07"
        version = "1"
        description = "Detects win.xdspy."
        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.xdspy"
        malpedia_rule_date = "20211007"
        malpedia_hash = "e5b790e0f888f252d49063a1251ca60ec2832535"
        malpedia_version = "20211008"
        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 = { 8bc6 c1f805 8b0485804e4100 83e61f }
            // n = 4, score = 200
            //   8bc6                 | mov                 eax, esi
            //   c1f805               | sar                 eax, 5
            //   8b0485804e4100       | mov                 eax, dword ptr [eax*4 + 0x414e80]
            //   83e61f               | and                 esi, 0x1f

        $sequence_1 = { ff35???????? ff7580 ff15???????? ff7580 8b3d???????? ffd7 }
            // n = 6, score = 200
            //   ff35????????         |                     
            //   ff7580               | push                dword ptr [ebp - 0x80]
            //   ff15????????         |                     
            //   ff7580               | push                dword ptr [ebp - 0x80]
            //   8b3d????????         |                     
            //   ffd7                 | call                edi

        $sequence_2 = { 8d89f40b4100 5a 668b31 41 668930 }
            // n = 5, score = 200
            //   8d89f40b4100         | lea                 ecx, dword ptr [ecx + 0x410bf4]
            //   5a                   | pop                 edx
            //   668b31               | mov                 si, word ptr [ecx]
            //   41                   | inc                 ecx
            //   668930               | mov                 word ptr [eax], si

        $sequence_3 = { 6800000084 6aff 68???????? 8d8df8260000 51 }
            // n = 5, score = 200
            //   6800000084           | push                0x84000000
            //   6aff                 | push                -1
            //   68????????           |                     
            //   8d8df8260000         | lea                 ecx, dword ptr [ebp + 0x26f8]
            //   51                   | push                ecx

        $sequence_4 = { e8???????? 83c410 8bd8 85ff 747e 57 }
            // n = 6, score = 200
            //   e8????????           |                     
            //   83c410               | add                 esp, 0x10
            //   8bd8                 | mov                 ebx, eax
            //   85ff                 | test                edi, edi
            //   747e                 | je                  0x80
            //   57                   | push                edi

        $sequence_5 = { 57 33f6 8d85f8260000 56 50 }
            // n = 5, score = 200
            //   57                   | push                edi
            //   33f6                 | xor                 esi, esi
            //   8d85f8260000         | lea                 eax, dword ptr [ebp + 0x26f8]
            //   56                   | push                esi
            //   50                   | push                eax

        $sequence_6 = { 85c0 7524 a1???????? a3???????? a1???????? c705????????97654000 }
            // n = 6, score = 200
            //   85c0                 | test                eax, eax
            //   7524                 | jne                 0x26
            //   a1????????           |                     
            //   a3????????           |                     
            //   a1????????           |                     
            //   c705????????97654000     |     

        $sequence_7 = { 85c0 751f 68???????? 53 e8???????? }
            // n = 5, score = 200
            //   85c0                 | test                eax, eax
            //   751f                 | jne                 0x21
            //   68????????           |                     
            //   53                   | push                ebx
            //   e8????????           |                     

        $sequence_8 = { 4889bc2418090000 668905???????? 488bcb c705????????68002000 c705????????32000d00 }
            // n = 5, score = 100
            //   4889bc2418090000     | lea                 edx, dword ptr [0x171564]
            //   668905????????       |                     
            //   488bcb               | dec                 eax
            //   c705????????68002000     |     
            //   c705????????32000d00     |     

        $sequence_9 = { c705????????34332f65 66c705????????6d6d 0f1f4000 66660f1f840000000000 }
            // n = 4, score = 100
            //   c705????????34332f65     |     
            //   66c705????????6d6d     |     
            //   0f1f4000             | mov                 dword ptr [esp + 0x918], edi
            //   66660f1f840000000000     | dec    eax

        $sequence_10 = { e8???????? 4584ff 0f85ff020000 3df7010000 0f84f4020000 44383d???????? }
            // n = 6, score = 100
            //   e8????????           |                     
            //   4584ff               | lea                 edx, dword ptr [0x176483]
            //   0f85ff020000         | call                eax
            //   3df7010000           | xor                 eax, eax
            //   0f84f4020000         | dec                 eax
            //   44383d????????       |                     

        $sequence_11 = { 4863c9 488d1562230100 488bc1 83e13f 48c1f806 48c1e106 }
            // n = 6, score = 100
            //   4863c9               | mov                 ecx, dword ptr [esp + 0xb0]
            //   488d1562230100       | inc                 ebp
            //   488bc1               | test                bh, bh
            //   83e13f               | jne                 0x308
            //   48c1f806             | cmp                 eax, 0x1f7
            //   48c1e106             | je                  0x2ff

        $sequence_12 = { c705????????6e626d6d 66c705????????7064 c705????????6e747764 c705????????73752f65 66c705????????6d6d 488d1564151700 }
            // n = 6, score = 100
            //   c705????????6e626d6d     |     
            //   66c705????????7064     |     
            //   c705????????6e747764     |     
            //   c705????????73752f65     |     
            //   66c705????????6d6d     |     
            //   488d1564151700       | dec                 eax

        $sequence_13 = { 488d1583641700 ffd0 33c0 488b8c24b0000000 }
            // n = 4, score = 100
            //   488d1583641700       | mov                 ecx, ebx
            //   ffd0                 | nop                 dword ptr [eax]
            //   33c0                 | nop                 word ptr [eax + eax]
            //   488b8c24b0000000     | dec                 eax

        $sequence_14 = { 33d2 48897c2420 ffd0 488d4c2448 ff15???????? }
            // n = 5, score = 100
            //   33d2                 | dec                 eax
            //   48897c2420           | mov                 eax, ecx
            //   ffd0                 | and                 ecx, 0x3f
            //   488d4c2448           | dec                 eax
            //   ff15????????         |                     

        $sequence_15 = { 488d8520180000 7413 0f1f840000000000 fe08 }
            // n = 4, score = 100
            //   488d8520180000       | dec                 eax
            //   7413                 | arpl                cx, cx
            //   0f1f840000000000     | dec                 eax
            //   fe08                 | lea                 edx, dword ptr [0x12362]

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