SYMBOLCOMMON_NAMEaka. SYNONYMS
win.gootkit (Back to overview)

GootKit

aka: Waldek, Xswkit, talalpek
URLhaus      

Gootkit is a banking trojan, where large parts are written in javascript (node.JS). It jumps to C/C++-library functions for various tasks.

References
2019-10-02Dissecting MalwareMarius Genheimer
@online{genheimer:20191002:nicht:20adbf8, author = {Marius Genheimer}, title = {{Nicht so goot - Breaking down Gootkit and Jasper (+ FTCODE)}}, date = {2019-10-02}, organization = {Dissecting Malware}, url = {https://dissectingmalwa.re/nicht-so-goot-breaking-down-gootkit-and-jasper-ftcode.html}, language = {English}, urldate = {2020-03-27} } Nicht so goot - Breaking down Gootkit and Jasper (+ FTCODE)
FTCODE JasperLoader GootKit
2019-08-29SentinelOneDaniel Bunce
@online{bunce:20190829:gootkit:b379f2c, author = {Daniel Bunce}, title = {{Gootkit Banking Trojan | Part 2: Persistence & Other Capabilities}}, date = {2019-08-29}, organization = {SentinelOne}, url = {https://www.sentinelone.com/blog/gootkit-banking-trojan-persistence-other-capabilities/}, language = {English}, urldate = {2020-01-08} } Gootkit Banking Trojan | Part 2: Persistence & Other Capabilities
GootKit
2019-08-15SentinelOneDaniel Bunce
@online{bunce:20190815:gootkit:1052b18, author = {Daniel Bunce}, title = {{Gootkit Banking Trojan | Deep Dive into Anti-Analysis Features}}, date = {2019-08-15}, organization = {SentinelOne}, url = {https://www.sentinelone.com/blog/gootkit-banking-trojan-deep-dive-anti-analysis-features/}, language = {English}, urldate = {2019-12-20} } Gootkit Banking Trojan | Deep Dive into Anti-Analysis Features
GootKit
2019-02-14CertegoMatteo Lodi
@online{lodi:20190214:malware:93db4e1, author = {Matteo Lodi}, title = {{Malware Tales: Gootkit}}, date = {2019-02-14}, organization = {Certego}, url = {https://www.certego.net/en/news/malware-tales-gootkit/}, language = {English}, urldate = {2020-01-06} } Malware Tales: Gootkit
GootKit
2018-05-20Youtube (OALabs)Sergei Frankoff
@online{frankoff:20180520:unpacking:7db8c96, author = {Sergei Frankoff}, title = {{Unpacking Gootkit Part 2 - Debugging Anti-Analysis Tricks With IDA Pro and x64dbg}}, date = {2018-05-20}, organization = {Youtube (OALabs)}, url = {https://www.youtube.com/watch?v=QgUlPvEE4aw}, language = {English}, urldate = {2020-01-08} } Unpacking Gootkit Part 2 - Debugging Anti-Analysis Tricks With IDA Pro and x64dbg
GootKit
2018-03-04Youtube (OALabs)Sergei Frankoff
@online{frankoff:20180304:unpacking:4d7dc7c, author = {Sergei Frankoff}, title = {{Unpacking Gootkit Malware With IDA Pro and X64dbg - Subscriber Request}}, date = {2018-03-04}, organization = {Youtube (OALabs)}, url = {https://www.youtube.com/watch?v=242Tn0IL2jE}, language = {English}, urldate = {2020-01-08} } Unpacking Gootkit Malware With IDA Pro and X64dbg - Subscriber Request
GootKit
2018-02-13JuniperPaul Kimayong
@online{kimayong:20180213:new:b8d70e2, author = {Paul Kimayong}, title = {{New Gootkit Banking Trojan variant pushes the limits on evasive behavior}}, date = {2018-02-13}, organization = {Juniper}, url = {https://forums.juniper.net/t5/Security-Now/New-Gootkit-Banking-Trojan-variant-pushes-the-limits-on-evasive/ba-p/319055}, language = {English}, urldate = {2019-12-10} } New Gootkit Banking Trojan variant pushes the limits on evasive behavior
GootKit
2017-03-01SecurityIntelligenceGadi Ostrovsky, Limor Kessem
@online{ostrovsky:20170301:gootkit:ab4991e, author = {Gadi Ostrovsky and Limor Kessem}, title = {{GootKit Developers Dress It Up With Web Traffic Proxy}}, date = {2017-03-01}, organization = {SecurityIntelligence}, url = {https://securityintelligence.com/gootkit-developers-dress-it-up-with-web-traffic-proxy/}, language = {English}, urldate = {2020-01-07} } GootKit Developers Dress It Up With Web Traffic Proxy
GootKit
2016-12-01US-CERTUS-CERT
@online{uscert:20161201:alert:b0f05c8, author = {US-CERT}, title = {{Alert (TA16-336A): Avalanche (crimeware-as-a-service infrastructure)}}, date = {2016-12-01}, organization = {US-CERT}, url = {https://www.us-cert.gov/ncas/alerts/TA16-336A}, language = {English}, urldate = {2020-01-07} } Alert (TA16-336A): Avalanche (crimeware-as-a-service infrastructure)
GootKit
2016-10-27Kaspersky LabsAlexey Shulmin, Sergey Yunakovsky
@online{shulmin:20161027:inside:50f43ed, author = {Alexey Shulmin and Sergey Yunakovsky}, title = {{Inside the Gootkit C&C server}}, date = {2016-10-27}, organization = {Kaspersky Labs}, url = {https://securelist.com/blog/research/76433/inside-the-gootkit-cc-server/}, language = {English}, urldate = {2019-12-20} } Inside the Gootkit C&C server
GootKit
2016-07-08SecurityIntelligenceLimor Kessem
@online{kessem:20160708:gootkit:ed75518, author = {Limor Kessem}, title = {{GootKit: Bobbing and Weaving to Avoid Prying Eyes}}, date = {2016-07-08}, organization = {SecurityIntelligence}, url = {https://securityintelligence.com/gootkit-bobbing-and-weaving-to-avoid-prying-eyes/}, language = {English}, urldate = {2020-01-07} } GootKit: Bobbing and Weaving to Avoid Prying Eyes
GootKit
2015-04-13CERT Societe GeneraleCERT Societe Generale
@online{generale:20150413:analyzing:2a4956d, author = {CERT Societe Generale}, title = {{Analyzing Gootkit's persistence mechanism (new ASEP inside!)}}, date = {2015-04-13}, organization = {CERT Societe Generale}, url = {http://blog.cert.societegenerale.com/2015/04/analyzing-gootkits-persistence-mechanism.html}, language = {English}, urldate = {2020-01-13} } Analyzing Gootkit's persistence mechanism (new ASEP inside!)
GootKit
2015-03-30Trend MicroCedric Pernet, Dark Luo
@online{pernet:20150330:fake:3b24447, author = {Cedric Pernet and Dark Luo}, title = {{Fake Judicial Spam Leads to Backdoor with Fake Certificate Authority}}, date = {2015-03-30}, organization = {Trend Micro}, url = {http://blog.trendmicro.com/trendlabs-security-intelligence/fake-judicial-spam-leads-to-backdoor-with-fake-certificate-authority/}, language = {English}, urldate = {2020-01-10} } Fake Judicial Spam Leads to Backdoor with Fake Certificate Authority
GootKit
2014-04-09Dr.WebDr.Web
@online{drweb:20140409:backdoorgootkit112a:b63758d, author = {Dr.Web}, title = {{BackDoor.Gootkit.112—a new multi-purpose backdoor}}, date = {2014-04-09}, organization = {Dr.Web}, url = {https://news.drweb.com/show/?i=4338&lng=en}, language = {English}, urldate = {2019-07-11} } BackDoor.Gootkit.112—a new multi-purpose backdoor
GootKit
Yara Rules
[TLP:WHITE] win_gootkit_auto (20190204 | autogenerated rule brought to you by yara-signator)
rule win_gootkit_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2019-11-26"
        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.gootkit"
        malpedia_version = "20190204"
        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 = { f7f1 81c260ea0000 52 ff15???????? }
            // n = 4, score = 1400
            //   f7f1                 | div                 ecx
            //   81c260ea0000         | add                 edx, 0xea60
            //   52                   | push                edx
            //   ff15????????         |                     

        $sequence_1 = { 8bc1 0f57c0 56 57 }
            // n = 4, score = 1200
            //   8bc1                 | mov                 eax, ecx
            //   0f57c0               | xorps               xmm0, xmm0
            //   56                   | push                esi
            //   57                   | push                edi

        $sequence_2 = { 56 ffd7 8bd0 33db 33c9 85d2 740e }
            // n = 7, score = 1200
            //   56                   | push                esi
            //   ffd7                 | call                edi
            //   8bd0                 | mov                 edx, eax
            //   33db                 | xor                 ebx, ebx
            //   33c9                 | xor                 ecx, ecx
            //   85d2                 | test                edx, edx
            //   740e                 | je                  0x10

        $sequence_3 = { 56 ff75f8 ff15???????? 8bd8 85db 7431 3bfb }
            // n = 7, score = 1200
            //   56                   | push                esi
            //   ff75f8               | push                dword ptr [ebp - 8]
            //   ff15????????         |                     
            //   8bd8                 | mov                 ebx, eax
            //   85db                 | test                ebx, ebx
            //   7431                 | je                  0x33
            //   3bfb                 | cmp                 edi, ebx

        $sequence_4 = { 85d2 7458 03cb 897df8 }
            // n = 4, score = 1200
            //   85d2                 | test                edx, edx
            //   7458                 | je                  0x5a
            //   03cb                 | add                 ecx, ebx
            //   897df8               | mov                 dword ptr [ebp - 8], edi

        $sequence_5 = { 6a00 53 ff15???????? eb06 }
            // n = 4, score = 1200
            //   6a00                 | push                0
            //   53                   | push                ebx
            //   ff15????????         |                     
            //   eb06                 | jmp                 8

        $sequence_6 = { c1cb0d 03d8 41 3bca 72f2 335df0 }
            // n = 6, score = 1200
            //   c1cb0d               | ror                 ebx, 0xd
            //   03d8                 | add                 ebx, eax
            //   41                   | inc                 ecx
            //   3bca                 | cmp                 ecx, edx
            //   72f2                 | jb                  0xfffffff4
            //   335df0               | xor                 ebx, dword ptr [ebp - 0x10]

        $sequence_7 = { 8d51ff 035710 8d41ff f7d0 23d0 8b45fc }
            // n = 6, score = 1200
            //   8d51ff               | lea                 edx, [ecx - 1]
            //   035710               | add                 edx, dword ptr [edi + 0x10]
            //   8d41ff               | lea                 eax, [ecx - 1]
            //   f7d0                 | not                 eax
            //   23d0                 | and                 edx, eax
            //   8b45fc               | mov                 eax, dword ptr [ebp - 4]

        $sequence_8 = { 52 50 8b4510 99 52 50 8b450c }
            // n = 7, score = 1100
            //   52                   | push                edx
            //   50                   | push                eax
            //   8b4510               | mov                 eax, dword ptr [ebp + 0x10]
            //   99                   | cdq                 
            //   52                   | push                edx
            //   50                   | push                eax
            //   8b450c               | mov                 eax, dword ptr [ebp + 0xc]

        $sequence_9 = { 50 8b4508 8b00 99 52 }
            // n = 5, score = 800
            //   50                   | push                eax
            //   8b4508               | mov                 eax, dword ptr [ebp + 8]
            //   8b00                 | mov                 eax, dword ptr [eax]
            //   99                   | cdq                 
            //   52                   | push                edx

        $sequence_10 = { 7514 c705???????????????? c705???????????????? 8be5 }
            // n = 4, score = 700
            //   7514                 | jne                 0x16
            //   c705????????????????     |     
            //   c705????????????????     |     
            //   8be5                 | mov                 esp, ebp

        $sequence_11 = { e8???????? 6a0c 6a08 ff15???????? 50 }
            // n = 5, score = 700
            //   e8????????           |                     
            //   6a0c                 | push                0xc
            //   6a08                 | push                8
            //   ff15????????         |                     
            //   50                   | push                eax

        $sequence_12 = { e8???????? 8d45fc 50 6a01 6a01 }
            // n = 5, score = 500
            //   e8????????           |                     
            //   8d45fc               | lea                 eax, [ebp - 4]
            //   50                   | push                eax
            //   6a01                 | push                1
            //   6a01                 | push                1

        $sequence_13 = { 57 ff15???????? 8bf0 8975f8 }
            // n = 4, score = 400
            //   57                   | push                edi
            //   ff15????????         |                     
            //   8bf0                 | mov                 esi, eax
            //   8975f8               | mov                 dword ptr [ebp - 8], esi

        $sequence_14 = { 8d4602 5e 5b 5d }
            // n = 4, score = 400
            //   8d4602               | lea                 eax, [esi + 2]
            //   5e                   | pop                 esi
            //   5b                   | pop                 ebx
            //   5d                   | pop                 ebp

        $sequence_15 = { 8bd9 57 8b7d0c 56 57 ff7508 e8???????? }
            // n = 7, score = 400
            //   8bd9                 | mov                 ebx, ecx
            //   57                   | push                edi
            //   8b7d0c               | mov                 edi, dword ptr [ebp + 0xc]
            //   56                   | push                esi
            //   57                   | push                edi
            //   ff7508               | push                dword ptr [ebp + 8]
            //   e8????????           |                     

        $sequence_16 = { e8???????? 85c0 740d 6810270000 }
            // n = 4, score = 400
            //   e8????????           |                     
            //   85c0                 | test                eax, eax
            //   740d                 | je                  0xf
            //   6810270000           | push                0x2710

        $sequence_17 = { 8bec 53 56 8b7510 8bd9 57 8b7d0c }
            // n = 7, score = 400
            //   8bec                 | mov                 ebp, esp
            //   53                   | push                ebx
            //   56                   | push                esi
            //   8b7510               | mov                 esi, dword ptr [ebp + 0x10]
            //   8bd9                 | mov                 ebx, ecx
            //   57                   | push                edi
            //   8b7d0c               | mov                 edi, dword ptr [ebp + 0xc]

        $sequence_18 = { 55 8bec 8b4510 40 }
            // n = 4, score = 400
            //   55                   | push                ebp
            //   8bec                 | mov                 ebp, esp
            //   8b4510               | mov                 eax, dword ptr [ebp + 0x10]
            //   40                   | inc                 eax

        $sequence_19 = { 56 8b7510 8bd9 8b4d0c 57 0fbe7e01 8d5602 }
            // n = 7, score = 400
            //   56                   | push                esi
            //   8b7510               | mov                 esi, dword ptr [ebp + 0x10]
            //   8bd9                 | mov                 ebx, ecx
            //   8b4d0c               | mov                 ecx, dword ptr [ebp + 0xc]
            //   57                   | push                edi
            //   0fbe7e01             | movsx               edi, byte ptr [esi + 1]
            //   8d5602               | lea                 edx, [esi + 2]

        $sequence_20 = { 0fbf143e eb04 0fbe143e 8b450c 8d0c02 2bd6 034d10 }
            // n = 7, score = 300
            //   0fbf143e             | movsx               edx, word ptr [esi + edi]
            //   eb04                 | jmp                 6
            //   0fbe143e             | movsx               edx, byte ptr [esi + edi]
            //   8b450c               | mov                 eax, dword ptr [ebp + 0xc]
            //   8d0c02               | lea                 ecx, [edx + eax]
            //   2bd6                 | sub                 edx, esi
            //   034d10               | add                 ecx, dword ptr [ebp + 0x10]

        $sequence_21 = { 5d c20c00 55 8bec c70101000000 }
            // n = 5, score = 300
            //   5d                   | pop                 ebp
            //   c20c00               | ret                 0xc
            //   55                   | push                ebp
            //   8bec                 | mov                 ebp, esp
            //   c70101000000         | mov                 dword ptr [ecx], 1

        $sequence_22 = { 50 ff15???????? 8b8544ffffff 5f }
            // n = 4, score = 300
            //   50                   | push                eax
            //   ff15????????         |                     
            //   8b8544ffffff         | mov                 eax, dword ptr [ebp - 0xbc]
            //   5f                   | pop                 edi

        $sequence_23 = { 0f104820 0f114710 0f104030 0f114f20 0f104840 0f114730 }
            // n = 6, score = 200
            //   0f104820             | movups              xmm1, xmmword ptr [eax + 0x20]
            //   0f114710             | movups              xmmword ptr [edi + 0x10], xmm0
            //   0f104030             | movups              xmm0, xmmword ptr [eax + 0x30]
            //   0f114f20             | movups              xmmword ptr [edi + 0x20], xmm1
            //   0f104840             | movups              xmm1, xmmword ptr [eax + 0x40]
            //   0f114730             | movups              xmmword ptr [edi + 0x30], xmm0

        $sequence_24 = { ff15???????? 8bd0 83fa01 7e18 }
            // n = 4, score = 200
            //   ff15????????         |                     
            //   8bd0                 | mov                 edx, eax
            //   83fa01               | cmp                 edx, 1
            //   7e18                 | jle                 0x1a

        $sequence_25 = { 0f104010 0f110f 0f104820 0f114710 }
            // n = 4, score = 200
            //   0f104010             | movups              xmm0, xmmword ptr [eax + 0x10]
            //   0f110f               | movups              xmmword ptr [edi], xmm1
            //   0f104820             | movups              xmm1, xmmword ptr [eax + 0x20]
            //   0f114710             | movups              xmmword ptr [edi + 0x10], xmm0

        $sequence_26 = { 8d4864 ff15???????? ffc3 83fb0a 7cd5 33c0 }
            // n = 6, score = 200
            //   8d4864               | lea                 ecx, [eax + 0x64]
            //   ff15????????         |                     
            //   ffc3                 | inc                 ebx
            //   83fb0a               | cmp                 ebx, 0xa
            //   7cd5                 | jl                  0xffffffd7
            //   33c0                 | xor                 eax, eax

        $sequence_27 = { 8b4070 894770 be01000000 ff15???????? }
            // n = 4, score = 200
            //   8b4070               | mov                 eax, dword ptr [eax + 0x70]
            //   894770               | mov                 dword ptr [edi + 0x70], eax
            //   be01000000           | mov                 esi, 1
            //   ff15????????         |                     

        $sequence_28 = { 0f114f20 0f104840 0f114730 0f104050 0f114f40 0f104860 0f114750 }
            // n = 7, score = 200
            //   0f114f20             | movups              xmmword ptr [edi + 0x20], xmm1
            //   0f104840             | movups              xmm1, xmmword ptr [eax + 0x40]
            //   0f114730             | movups              xmmword ptr [edi + 0x30], xmm0
            //   0f104050             | movups              xmm0, xmmword ptr [eax + 0x50]
            //   0f114f40             | movups              xmmword ptr [edi + 0x40], xmm1
            //   0f104860             | movups              xmm1, xmmword ptr [eax + 0x60]
            //   0f114750             | movups              xmmword ptr [edi + 0x50], xmm0

        $sequence_29 = { 0f114740 0f104850 0f114f50 0f104060 0f114760 8b4070 894770 }
            // n = 7, score = 200
            //   0f114740             | movups              xmmword ptr [edi + 0x40], xmm0
            //   0f104850             | movups              xmm1, xmmword ptr [eax + 0x50]
            //   0f114f50             | movups              xmmword ptr [edi + 0x50], xmm1
            //   0f104060             | movups              xmm0, xmmword ptr [eax + 0x60]
            //   0f114760             | movups              xmmword ptr [edi + 0x60], xmm0
            //   8b4070               | mov                 eax, dword ptr [eax + 0x70]
            //   894770               | mov                 dword ptr [edi + 0x70], eax

        $sequence_30 = { 85c0 7510 8d4864 ff15???????? }
            // n = 4, score = 200
            //   85c0                 | test                eax, eax
            //   7510                 | jne                 0x12
            //   8d4864               | lea                 ecx, [eax + 0x64]
            //   ff15????????         |                     

    condition:
        7 of them
}
Download all Yara Rules