win.trickbot (Back to overview)

TrickBot

aka: Trickster, TheTrick, TrickLoader

Actor(s): WIZARD SPIDER

URLhaus      

A financial Trojan believed to be a derivative of Dyre: the bot uses very similar code, web injects, and operational tactics. Has multiple modules including VNC and Socks5 Proxy. Uses SSL for C2 communication.

- Q4 2016 - Detected in wild
Oct 2016 - 1st Report
Jan 2018 - Use XMRIG (Monero) miner
Feb 2018 - Theft Bitcoin
Mar 2018 - Unfinished ransomware module

Infection Vector
1. Phish > Link MS Office > Macro Enabled > Downloader > Trickbot
2. Phish > Attached MS Office > Marco Enabled > Downloader > Trickbot
3. Phish > Attached MS Office > Marco enabled > Trickbot installed

References
https://www.cybereason.com/blog/triple-threat-emotet-deploys-trickbot-to-steal-data-spread-ryuk-ransomware
https://blog.malwarebytes.com/threat-analysis/2017/08/trickbot-comes-with-new-tricks-attacking-outlook-and-browsing-data/
http://www.vkremez.com/2017/11/lets-learn-trickbot-socks5-backconnect.html
https://blog.trendmicro.com/trendlabs-security-intelligence/trickbot-adds-remote-application-credential-grabbing-capabilities-to-its-repertoire/
http://www.vkremez.com/2017/12/lets-learn-introducing-new-trickbot.html
https://blog.trendmicro.com/trendlabs-security-intelligence/trickbot-shows-off-new-trick-password-grabber-module
https://www.fidelissecurity.com/threatgeek/2016/10/trickbot-we-missed-you-dyre
https://www.flashpoint-intel.com/blog/trickbot-account-checking-hybrid-attack-model/
http://www.peppermalware.com/2019/03/quick-analysis-of-trickbot-sample-with.html
https://blog.malwarebytes.com/threat-analysis/2016/10/trick-bot-dyrezas-successor/
https://www.youtube.com/watch?v=KMcSAlS9zGE
https://www.crowdstrike.com/blog/sin-ful-spiders-wizard-spider-and-lunar-spider-sharing-the-same-web/
https://www.arbornetworks.com/blog/asert/trickbot-banker-insights/
https://blog.malwarebytes.com/threat-analysis/malware-threat-analysis/2018/11/whats-new-trickbot-deobfuscating-elements/
https://www.trustwave.com/Resources/SpiderLabs-Blog/Tale-of-the-Two-Payloads-%E2%80%93-TrickBot-and-Nitol/
http://www.vkremez.com/2018/04/lets-learn-trickbot-implements-network.html
https://securityintelligence.com/trickbot-takes-to-latin-america-continues-to-expand-its-global-reach/
https://qmemcpy.io/post/reverse-engineering-malware-trickbot-part-2-loader
https://www.fireeye.com/blog/threat-research/2019/01/a-nasty-trick-from-credential-theft-malware-to-business-disruption.html
https://securityintelligence.com/trickbots-cryptocurrency-hunger-tricking-the-bitcoin-out-of-wallets/
https://blog.fraudwatchinternational.com/malware/trickbot-malware-works
https://www.blueliv.com/research/trickbot-banking-trojan-using-eflags-as-an-anti-hook-technique/
https://f5.com/labs/articles/threat-intelligence/malware/trickbot-expands-global-targets-beyond-banks-and-payment-processors-to-crms
https://f5.com/labs/articles/threat-intelligence/malware/little-trickbot-growing-up-new-campaign-24412
https://github.com/JR0driguezB/malware_configs/tree/master/TrickBot
https://escinsecurity.blogspot.de/2018/01/weekly-trickbot-analysis-end-of-wc-22.html
https://www.webroot.com/blog/2018/03/21/trickbot-banking-trojan-adapts-new-module/
https://www.fortinet.com/blog/threat-research/deep-analysis-of-trickbot-new-module-pwgrab.html
https://www.securityartwork.es/wp-content/uploads/2017/06/Informe_Evoluci%C3%B3n_Trickbot.pdf
https://blogs.forcepoint.com/security-labs/trickbot-spread-necurs-botnet-adds-nordic-countries-its-targets
http://blog.fortinet.com/2016/12/06/deep-analysis-of-the-online-banking-botnet-trickbot
https://www.cyberbit.com/blog/endpoint-security/latest-trickbot-variant-has-new-tricks-up-its-sleeve/
http://www.malware-traffic-analysis.net/2018/02/01/
https://www.cert.pl/en/news/single/detricking-trickbot-loader/
https://www.trendmicro.com/vinfo/us/security/news/cybercrime-and-digital-threats/evolving-trickbot-adds-detection-evasion-and-screen-locking-features
https://www.govcert.admin.ch/blog/36/severe-ransomware-attacks-against-swiss-smes
https://securityintelligence.com/tricks-of-the-trade-a-deeper-look-into-trickbots-machinations/
http://www.pwc.co.uk/issues/cyber-security-data-privacy/research/trickbots-bag-of-tricks.html
https://qmemcpy.io/post/reverse-engineering-malware-trickbot-part-3-core
https://www.ringzerolabs.com/2017/07/trickbot-banking-trojan-doc00039217doc.html
https://www.youtube.com/watch?v=EdchPEHnohw
https://sysopfb.github.io/malware/2018/04/16/trickbot-uacme.html
https://blog.talosintelligence.com/2018/07/smoking-guns-smoke-loader-learned-new.html
https://www.vkremez.com/2018/11/lets-learn-introducing-latest-trickbot.html
https://www.youtube.com/watch?v=lTywPmZEU1A
https://qmemcpy.github.io/post/reverse-engineering-malware-trickbot-part-1-packer
https://www.botconf.eu/wp-content/uploads/2016/11/2016-LT09-TrickBot-Adams.pdf
https://www.flashpoint-intel.com/blog/new-version-trickbot-adds-worm-propagation-module/
Yara Rules
[TLP:WHITE] win_trickbot_auto (20180607 | autogenerated rule brought to you by yara-signator)
rule win_trickbot_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2018-11-23"
        version = "1"
        description = "autogenerated rule brought to you by yara-signator"
        tool = "yara-signator 0.1a"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.trickbot"
        malpedia_version = "20180607"
        malpedia_license = "CC BY-NC-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 / approach will be published in the near future 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 = { 33c9 3dc4431cfc 0f94c1 83e101 }
            // n = 4, score = 17000
            //   33c9                 | xor                 ecx, ecx
            //   3dc4431cfc           | cmp                 eax, 0xfc1c43c4
            //   0f94c1               | sete                cl
            //   83e101               | and                 ecx, 1

        $sequence_1 = { 3d7f000004 7419 3d7f000005 7412 }
            // n = 4, score = 16000
            //   3d7f000004           | cmp                 eax, 0x400007f
            //   7419                 | je                  0x44423b
            //   3d7f000005           | cmp                 eax, 0x500007f
            //   7412                 | je                  0x44423b

        $sequence_2 = { 83c002 eb0d 2500000080 f7d8 }
            // n = 4, score = 16000
            //   83c002               | add                 eax, 2
            //   eb0d                 | jmp                 0x44b159
            //   2500000080           | and                 eax, 0x80000000
            //   f7d8                 | neg                 eax

        $sequence_3 = { 740d 0fb616 03ca 48 }
            // n = 4, score = 16000
            //   740d                 | je                  0x44e53f
            //   0fb616               | movzx               edx, byte ptr [esi]
            //   03ca                 | add                 ecx, edx
            //   48                   | dec                 eax

        $sequence_4 = { 2500000080 f7d8 1bc0 83e070 }
            // n = 4, score = 16000
            //   2500000080           | and                 eax, 0x80000000
            //   f7d8                 | neg                 eax
            //   1bc0                 | sbb                 eax, eax
            //   83e070               | and                 eax, 0x70

        $sequence_5 = { 895df8 895df4 895dec 66c745f00005 }
            // n = 4, score = 16000
            //   895df8               | mov                 dword ptr [ebp - 8], ebx
            //   895df4               | mov                 dword ptr [ebp - 0xc], ebx
            //   895dec               | mov                 dword ptr [ebp - 0x14], ebx
            //   66c745f00005         | mov                 word ptr [ebp - 0x10], 0x500

        $sequence_6 = { 3bcb 7507 5f 5e }
            // n = 4, score = 16000
            //   3bcb                 | cmp                 ecx, ebx
            //   7507                 | jne                 0x44ea64
            //   5f                   | pop                 edi
            //   5e                   | pop                 esi

        $sequence_7 = { 8bec 33c0 817d087f000002 0f94c0 }
            // n = 4, score = 16000
            //   8bec                 | mov                 ebp, esp
            //   33c0                 | xor                 eax, eax
            //   817d087f000002       | cmp                 dword ptr [ebp + 8], 0x200007f
            //   0f94c0               | sete                al

        $sequence_8 = { 0fb69700f8ffff 885001 0fb69701f8ffff 41 }
            // n = 4, score = 16000
            //   0fb69700f8ffff       | movzx               edx, byte ptr [edi - 0x800]
            //   885001               | mov                 byte ptr [eax + 1], dl
            //   0fb69701f8ffff       | movzx               edx, byte ptr [edi - 0x7ff]
            //   41                   | inc                 ecx

        $sequence_9 = { 0f828f000000 8bd6 83e208 c1e20b }
            // n = 4, score = 16000
            //   0f828f000000         | jb                  0x44ea2e
            //   8bd6                 | mov                 edx, esi
            //   83e208               | and                 edx, 8
            //   c1e20b               | shl                 edx, 0xb

    condition:
        7 of them
}
[TLP:WHITE] win_trickbot_w0   (20170613 | Detects mailsearcher module from Trickbot Trojan)
rule win_trickbot_w0 {
    meta:
        author = "Marc Salinas @Bondey_m"
        description = "Detects mailsearcher module from Trickbot Trojan"
        reference = "https://www.securityartwork.es/wp-content/uploads/2017/06/Informe_Evoluci%C3%B3n_Trickbot.pdf"
        malpedia_version = "20170613"
        malpedia_license = "CC BY-NC-SA 4.0"
        malpedia_sharing = "TLP:WHITE"
    strings:
        $str_mails_01 = "mailsearcher"
        $str_mails_02 = "handler"
        $str_mails_03 = "conf"
        $str_mails_04 = "ctl"
        $str_mails_05 = "SetConf"
        $str_mails_06 = "file"
        $str_mails_07 = "needinfo"
        $str_mails_08 = "mailconf"
    condition:
        all of ($str_mails_*)
}
[TLP:WHITE] win_trickbot_w1   (20171214 | Trickbot Socks5 bckconnect module)
rule win_trickbot_w1 {
    meta:
        description = "Trickbot Socks5 bckconnect module"
        author = "@VK_Intel"
        reference = "Detects the unpacked Trickbot backconnect in memory"
        date = "2017-11-19"
        hash = "f2428d5ff8c93500da92f90154eebdf0"
        source = "http://www.vkremez.com/2017/11/lets-learn-trickbot-socks5-backconnect.html"
        malpedia_version = "20171214"
        malpedia_license = "CC BY-NC-SA 4.0"
        malpedia_sharing = "TLP:WHITE"
    strings:
        $s0 = "socks5dll.dll" fullword ascii
        $s1 = "auth_login" fullword ascii
        $s2 = "auth_ip" fullword ascii
        $s3 = "connect" fullword ascii
        $s4 = "auth_ip" fullword ascii
        $s5 = "auth_pass" fullword ascii
        $s6 = "thread.entry_event" fullword ascii
        $s7 = "thread.exit_event" fullword ascii
        $s8 = "</moduleconfig>" fullword ascii
        $s9 = "<moduleconfig>" fullword ascii
        $s10 = "<autostart>yes</autostart>" fullword ascii
    condition:
        all of them
}
Download all Yara Rules