SYMBOLCOMMON_NAMEaka. SYNONYMS
win.dtrack (Back to overview)

Dtrack

aka: Preft, TroyRAT

Actor(s): Lazarus Group, Silent Chollima

VTCollection    

Dtrack is a Remote Administration Tool (RAT) developed by the Lazarus group.
Its core functionality includes operations to upload a file to the victim's computer, download a file from the victim's computer, dump disk volume data, persistence and more.

A variant of Dtrack was found on Kudankulam Nuclear Power Plant (KNPP) which was used for a targeted attack.

References
2024-10-30Palo Alto Networks Unit 42Unit 42
Jumpy Pisces Engages in Play Ransomware
Dtrack MimiKatz PLAY Sliver
2023-02-09CISA, DSA, FBI, HHS, NSA, ROK
#StopRansomware: Ransomware Attacks on Critical Infrastructure Fund DPRK Malicious Cyber Activities
Dtrack MagicRAT Maui Ransomware SiennaBlue SiennaPurple Tiger RAT YamaBot
2023-02-02WithSecureSami Ruohonen, Stephen Robinson
No Pineapple! –DPRK Targeting of Medical Research and Technology Sector
Dtrack GREASE QuiteRAT
2022-11-15Kaspersky LabsJornt van der Wiel, Konstantin Zykov
DTrack activity targeting Europe and Latin America
Dtrack
2022-08-15BrandefenseBrandefense
Lazarus APT Group (APT38)
AppleJeus AppleJeus BADCALL Bankshot BLINDINGCAN DRATzarus Dtrack KEYMARBLE Sierra(Alfa,Bravo, ...) Torisma WannaCryptor
2022-08-09KasperskyKurt Baumgartner, Seongsu Park
Andariel deploys DTrack and Maui ransomware
Dtrack Maui Ransomware
2022-04-27SymantecThreat Hunter Team
Stonefly: North Korea-linked Spying Operation Continues to Hit High-value Targets
Dtrack VSingle
2020-11-27MacnicaHiroshi Takeuchi
Analyzing Organizational Invasion Ransom Incidents Using Dtrack
Cobalt Strike Dtrack
2020-11-03Kaspersky LabsGReAT
APT trends report Q3 2020
WellMail EVILNUM Janicab Poet RAT AsyncRAT Ave Maria Cobalt Strike Crimson RAT CROSSWALK Dtrack LODEINFO MoriAgent Okrum PlugX POISONPLUG Rover ShadowPad SoreFang Winnti
2020-05-31Twitter (ShadowChasing1)Shadow Chaser Group
Tweet on DTRACK malware
Dtrack
2020-03-03PWC UKPWC UK
Cyber Threats 2019:A Year in Retrospect
KevDroid MESSAGETAP magecart AndroMut Cobalt Strike CobInt Crimson RAT DNSpionage Dridex Dtrack Emotet FlawedAmmyy FlawedGrace FriedEx Gandcrab Get2 GlobeImposter Grateful POS ISFB Kazuar LockerGoga Nokki QakBot Ramnit REvil Rifdoor RokRAT Ryuk shadowhammer ShadowPad Shifu Skipper StoneDrill Stuxnet TrickBot Winnti ZeroCleare APT41 MUSTANG PANDA Sea Turtle
2020-02-19LexfoLexfo
The Lazarus Constellation A study on North Korean malware
FastCash AppleJeus BADCALL Bankshot Brambul Dtrack Duuzer DYEPACK ELECTRICFISH HARDRAIN Hermes HOPLIGHT Joanap KEYMARBLE Kimsuky MimiKatz MyDoom NACHOCHEESE NavRAT PowerRatankba RokRAT Sierra(Alfa,Bravo, ...) Volgmer WannaCryptor
2020-02-13QianxinQi Anxin Threat Intelligence Center
APT Report 2019
Chrysaor Exodus Dacls VPNFilter DNSRat Griffon KopiLuwak More_eggs SQLRat AppleJeus BONDUPDATER Agent.BTZ Anchor AndroMut AppleJeus BOOSTWRITE Brambul Carbanak Cobalt Strike Dacls DistTrack DNSpionage Dtrack ELECTRICFISH FlawedAmmyy FlawedGrace Get2 Grateful POS HOPLIGHT Imminent Monitor RAT jason Joanap KerrDown KEYMARBLE Lambert LightNeuron LoJax MiniDuke PolyglotDuke PowerRatankba Rising Sun SDBbot ServHelper Snatch Stuxnet TinyMet tRat TrickBot Volgmer X-Agent Zebrocy
2019-12-12FireEyeChi-en Shen, Oleg Bondarenko
Cyber Threat Landscape in Japan – Revealing Threat in the Shadow
Cerberus TSCookie Cobalt Strike Dtrack Emotet Formbook IcedID Icefog IRONHALO Loki Password Stealer (PWS) PandaBanker PLEAD POISONPLUG TrickBot BlackTech
2019-11-21CyberbitHod Gavriel
Dtrack: In-depth analysis of APT on a nuclear power plant
Dtrack
2019-11-04Marco Ramilli's BlogMarco Ramilli
Is Lazarus/APT38 Targeting Critical Infrastructures?
Dtrack
2019-11-03Github (jeFF0Falltrades)Jeff Archer
DTrack
Dtrack
2019-09-23Kaspersky LabsKonstantin Zykov
Hello! My name is Dtrack
Dtrack
Yara Rules
[TLP:WHITE] win_dtrack_auto (20241030 | Detects win.dtrack.)
rule win_dtrack_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2024-10-31"
        version = "1"
        description = "Detects win.dtrack."
        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.dtrack"
        malpedia_rule_date = "20241030"
        malpedia_hash = "26e26953c49c8efafbf72a38076855d578e0a2e4"
        malpedia_version = "20241030"
        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 = { 52 8b4508 50 e8???????? 83c414 8b4d10 51 }
            // n = 7, score = 400
            //   52                   | push                edx
            //   8b4508               | mov                 eax, dword ptr [ebp + 8]
            //   50                   | push                eax
            //   e8????????           |                     
            //   83c414               | add                 esp, 0x14
            //   8b4d10               | mov                 ecx, dword ptr [ebp + 0x10]
            //   51                   | push                ecx

        $sequence_1 = { 8d85e8fbffff 50 e8???????? 83c40c 8d8da8faffff 51 }
            // n = 6, score = 300
            //   8d85e8fbffff         | lea                 eax, [ebp - 0x418]
            //   50                   | push                eax
            //   e8????????           |                     
            //   83c40c               | add                 esp, 0xc
            //   8d8da8faffff         | lea                 ecx, [ebp - 0x558]
            //   51                   | push                ecx

        $sequence_2 = { 8945fc 68???????? e8???????? 83c404 50 8b55fc }
            // n = 6, score = 300
            //   8945fc               | mov                 dword ptr [ebp - 4], eax
            //   68????????           |                     
            //   e8????????           |                     
            //   83c404               | add                 esp, 4
            //   50                   | push                eax
            //   8b55fc               | mov                 edx, dword ptr [ebp - 4]

        $sequence_3 = { 51 e8???????? 83c410 8b558c }
            // n = 4, score = 300
            //   51                   | push                ecx
            //   e8????????           |                     
            //   83c410               | add                 esp, 0x10
            //   8b558c               | mov                 edx, dword ptr [ebp - 0x74]

        $sequence_4 = { 8d95b1faffff 52 e8???????? 83c40c }
            // n = 4, score = 300
            //   8d95b1faffff         | lea                 edx, [ebp - 0x54f]
            //   52                   | push                edx
            //   e8????????           |                     
            //   83c40c               | add                 esp, 0xc

        $sequence_5 = { 8995e8f5ffff 8a85e8f5ffff 888587f6ffff 8b0d???????? 51 }
            // n = 5, score = 300
            //   8995e8f5ffff         | mov                 dword ptr [ebp - 0xa18], edx
            //   8a85e8f5ffff         | mov                 al, byte ptr [ebp - 0xa18]
            //   888587f6ffff         | mov                 byte ptr [ebp - 0x979], al
            //   8b0d????????         |                     
            //   51                   | push                ecx

        $sequence_6 = { 80bd4af6ffff00 75ae c78544f6ffff00000000 eb0b }
            // n = 4, score = 300
            //   80bd4af6ffff00       | cmp                 byte ptr [ebp - 0x9b6], 0
            //   75ae                 | jne                 0xffffffb0
            //   c78544f6ffff00000000     | mov    dword ptr [ebp - 0x9bc], 0
            //   eb0b                 | jmp                 0xd

        $sequence_7 = { 8b954cf6ffff 8a4201 88854af6ffff 8b8d50f6ffff 3a4101 7523 }
            // n = 6, score = 300
            //   8b954cf6ffff         | mov                 edx, dword ptr [ebp - 0x9b4]
            //   8a4201               | mov                 al, byte ptr [edx + 1]
            //   88854af6ffff         | mov                 byte ptr [ebp - 0x9b6], al
            //   8b8d50f6ffff         | mov                 ecx, dword ptr [ebp - 0x9b0]
            //   3a4101               | cmp                 al, byte ptr [ecx + 1]
            //   7523                 | jne                 0x25

        $sequence_8 = { 898dd0feffff 8b5508 0395d0feffff 0fbe42ff }
            // n = 4, score = 300
            //   898dd0feffff         | mov                 dword ptr [ebp - 0x130], ecx
            //   8b5508               | mov                 edx, dword ptr [ebp + 8]
            //   0395d0feffff         | add                 edx, dword ptr [ebp - 0x130]
            //   0fbe42ff             | movsx               eax, byte ptr [edx - 1]

        $sequence_9 = { 3355fc 81e2ff000000 c1e217 0bca 894d14 }
            // n = 5, score = 200
            //   3355fc               | xor                 edx, dword ptr [ebp - 4]
            //   81e2ff000000         | and                 edx, 0xff
            //   c1e217               | shl                 edx, 0x17
            //   0bca                 | or                  ecx, edx
            //   894d14               | mov                 dword ptr [ebp + 0x14], ecx

        $sequence_10 = { 894518 8b5514 8955f8 8b4518 }
            // n = 4, score = 200
            //   894518               | mov                 dword ptr [ebp + 0x18], eax
            //   8b5514               | mov                 edx, dword ptr [ebp + 0x14]
            //   8955f8               | mov                 dword ptr [ebp - 8], edx
            //   8b4518               | mov                 eax, dword ptr [ebp + 0x18]

        $sequence_11 = { 33d0 8b4df8 c1e908 234df8 8b45f8 c1e810 23c8 }
            // n = 7, score = 200
            //   33d0                 | xor                 edx, eax
            //   8b4df8               | mov                 ecx, dword ptr [ebp - 8]
            //   c1e908               | shr                 ecx, 8
            //   234df8               | and                 ecx, dword ptr [ebp - 8]
            //   8b45f8               | mov                 eax, dword ptr [ebp - 8]
            //   c1e810               | shr                 eax, 0x10
            //   23c8                 | and                 ecx, eax

        $sequence_12 = { 7412 837d0800 740c 837d0c00 7406 837d1408 }
            // n = 6, score = 200
            //   7412                 | je                  0x14
            //   837d0800             | cmp                 dword ptr [ebp + 8], 0
            //   740c                 | je                  0xe
            //   837d0c00             | cmp                 dword ptr [ebp + 0xc], 0
            //   7406                 | je                  8
            //   837d1408             | cmp                 dword ptr [ebp + 0x14], 8

        $sequence_13 = { 0fb602 0fb64df7 33c1 0fb655fc 33c2 8b4d0c }
            // n = 6, score = 200
            //   0fb602               | movzx               eax, byte ptr [edx]
            //   0fb64df7             | movzx               ecx, byte ptr [ebp - 9]
            //   33c1                 | xor                 eax, ecx
            //   0fb655fc             | movzx               edx, byte ptr [ebp - 4]
            //   33c2                 | xor                 eax, edx
            //   8b4d0c               | mov                 ecx, dword ptr [ebp + 0xc]

        $sequence_14 = { 8b4d0c 034df0 8801 0fb655f7 2355fc }
            // n = 5, score = 200
            //   8b4d0c               | mov                 ecx, dword ptr [ebp + 0xc]
            //   034df0               | add                 ecx, dword ptr [ebp - 0x10]
            //   8801                 | mov                 byte ptr [ecx], al
            //   0fb655f7             | movzx               edx, byte ptr [ebp - 9]
            //   2355fc               | and                 edx, dword ptr [ebp - 4]

    condition:
        7 of them and filesize < 1736704
}
[TLP:WHITE] win_dtrack_w0   (20191121 | No description)
rule win_dtrack_w0 {
    meta:
        author = "jeFF0Falltrades"
        source = "https://github.com/jeFF0Falltrades/IoCs/blob/master/APT/dtrack_lazarus_group.md"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.dtrack"
        malpedia_version = "20191121"
        malpedia_license = "CC NC-BY-SA 4.0"
        malpedia_sharing = "TLP:WHITE"

    strings:
        $str_log = "------------------------------ Log File Create...." wide ascii
        $str_ua = "CCS_Mozilla/5.0 (Windows NT 6.1" wide ascii
        $str_chrome = "Local Settings\\Application Data\\Google\\Chrome\\User Data\\Default\\History" wide ascii
        $pdb = "Users\\user\\Documents\\Visual Studio 2008\\Projects\\MyStub\\Release\\MyStub.pdb" wide ascii
        $str_tmp = "%s\\~%d.tmp" wide ascii
        $str_exc = "Execute_%s.log" wide ascii
        $reg_use = /net use \\\\[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\\C\$ \/delete/
        $reg_move = /move \/y %s \\\\[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\\C\$\\Windows\\Temp\\MpLogs\\/

    condition:
        2 of them or $pdb
}
Download all Yara Rules