Malware Analysis – AppleJeus: JMT Trading

Fortify Security Team
Feb 18, 2021

This Malware Analysis Report (MAR) is the result of analytic efforts among the Federal Bureau of Investigation (FBI), the Cybersecurity and Infrastructure Security Agency (CISA), and the Department of Treasury (Treasury) to highlight the cyber threat to cryptocurrency posed by North Korea, formally known as the Democratic People’s Republic of Korea (DPRK), and provide mitigation recommendations. Working with U.S. government partners, FBI, CISA, and Treasury assess that Lazarus Group—which these agencies attribute to North Korean state-sponsored advanced persistent threat (APT) actors—is targeting individuals and companies, including cryptocurrency exchanges and financial service companies, through the dissemination of cryptocurrency trading applications that have been modified to include malware that facilitates theft of cryptocurrency.

This MAR highlights this cyber threat posed by North Korea and provides detailed indicators of compromise (IOCs) used by the North Korean government. The U.S. Government refers to malicious cyber activity by the North Korean government as HIDDEN COBRA. For more information on other versions of AppleJeus and recommended steps to mitigate this threat, see Joint Cybersecurity Advisory AA21-048A: AppleJeus: Analysis of North Korea’s Cryptocurrency Malware at

There have been multiple versions of AppleJeus malware discovered since its initial discovery in August 2018. In most versions, the malware appears to be from a legitimate-looking cryptocurrency trading company and website, whereby an unsuspecting individual downloads a third-party application from a website that appears legitimate.

The U.S. Government has identified AppleJeus malware version—JMT Trading—and associated IOCs used by the North Korean government in AppleJeus operations.

JMT Trading malware, discovered by a cybersecurity company in October 2019, is a legitimate-looking cryptocurrency trading software that is marketed and distributed by a company and website—JMT Trading and jmttrading[.]org, respectively—that appear legitimate.

For a downloadable copy of IOCs, see: MAR-10322463-2.v1.stix.

Submitted Files (6)

07c38ca1e0370421f74c949507fc0d21f4cfcb5866a4f9c0751aefa0d6e97542 (jmttrader.msi)

081d1739422bf050755e6af269a717681274821cea8becb0962d4db61869c5d6 (JMTTrader.exe)

4d6078fc1ea6d3cd65c3ceabf65961689c5bc2d81f18c55b859211a60c141806 (jmttrader_mac.dmg)

7ea6391c11077a0f2633104193ec08617eb6321a32ac30c641f1650c35eed0ea (JMTTrader)

9bf8e8ac82b8f7c3707eb12e77f94cd0e06a972658610d136993235cbfa53641 (CrashReporter.exe)

e352d6ea4da596abfdf51f617584611fc9321d5a6d1c22aff243aecdef8e7e55 (CrashReporter)

Domains (2)





Name jmttrader.msi
Size 11524608 bytes
Type Composite Document File V2 Document, Little Endian, Os: Windows, Version 6.1, MSI Installer, Last Printed: Fri Dec 11 11:47:44 2009, Create Time/Date: Fri Dec 11 11:47:44 2009, Last Saved Time/Date: Fri Dec 11 11:47:44 2009, Security: 0, Code page: 1252, Revision Number: {A2814B39-244E-4899-81F9-F995B8DC1A80}, Number of Words: 2, Subject: JMTTrader, Author: JMT Trading Group LLC, Name of Creating Application: Advanced Installer 14.5.2 build 83143, Template: ;1033, Comments: This installer database contains the logic and data required to install JMTTrader., Title: Installation Database, Keywords: Installer, MSI, Database, Number of Pages: 200
MD5 c4aa6f87124320eadc342d2fe7364896
SHA1 4fcc84583126689d03acf69b9fca5632f7d44752
SHA256 07c38ca1e0370421f74c949507fc0d21f4cfcb5866a4f9c0751aefa0d6e97542
SHA512 51b34ae0a0e9252705206f2d9e87136706f51a70cc110e8493ff1266303ae33f09c1e89f329ae8f776a610c88f155e02afeb63a8bc7762ce307143fdff944172
ssdeep 196608:p/5qF8q187MZjfZjowfMjVS9Qkj6YotsEXw6xws8CV/KFmpZ3zyl:B5qCyBfRfMjVS4RXw6EFF
Entropy 7.962353
Ahnlab MSI/Dropper
Avira TR/Agent.rhbwd
Comodo Malware
Ikarus Trojan.Win32.Agent
Microsoft Security Essentials Backdoor:Win32/Stealer.A!MSR
NetGate Trojan.Win32.Malware
Symantec Trojan.Gen.MBT
TrendMicro Backdoo.80EE6F49
TrendMicro House Call Backdoo.80EE6F49
07c38ca1e0… Downloaded_From
07c38ca1e0… Contains 081d1739422bf050755e6af269a717681274821cea8becb0962d4db61869c5d6
07c38ca1e0… Contains 9bf8e8ac82b8f7c3707eb12e77f94cd0e06a972658610d136993235cbfa53641

This Windows program from the JMTTrade GitHub site is a Windows MSI Installer. The installer looks legitimate and previously had a valid digital signature from Comodo (Sectigo). The signature was signed with a code signing certificate purchased by the same user as the SSL certificate for “” The installer asks for administrative privileges to run and while installing “JMTTrader.exe” (081d1739422bf050755e6af269a717681274821cea8becb0962d4db61869c5d6) in the “C:\Program Files (x86)\JMTTrader” folder, it also installs “CrashReporter.exe” (9bf8e8ac82b8f7c3707eb12e77f94cd0e06a972658610d136993235cbfa53641) in the “C:\Users\<username>\AppData\Roaming\JMTTrader” folder. Immediately after installation, the installer launches “CrashReporter.exe” with the “Maintain” parameter.


Figure 1 - Screenshot of the JMTTrader Installation.

Figure 1 – Screenshot of the JMTTrader Installation.




Whois for had the following information on October 11, 2019:
Registrar: NameCheap
Created: July 11, 2019
Expires: July 11, 2020
Updated: September 10, 2019

Relationships Downloaded_To 4d6078fc1ea6d3cd65c3ceabf65961689c5bc2d81f18c55b859211a60c141806 Downloaded_To 07c38ca1e0370421f74c949507fc0d21f4cfcb5866a4f9c0751aefa0d6e97542

This site contained a “Download from GitHub” button which takes the user to the JMTTrader GitHub page ( where both Windows and OSX versions of JMTTrader were available for download. There are also zip and a tar.gz files containing the source code. JMT Trading has a legitimately signed Sectigo SSL certificate. The SSL certificate was “Domain Control Validated,” just as the Celas LLC certificate for AppleJeus variant 1. The domain was registered at the IP address with ASN 22612.




Name JMTTrader.exe
Size 2645744 bytes
Type PE32 executable (GUI) Intel 80386, for MS Windows
MD5 70cf78e117359b17f079c128fcead8c8
SHA1 8ec7f4b39f0843e5eae3b8af01578fd8e4432995
SHA256 081d1739422bf050755e6af269a717681274821cea8becb0962d4db61869c5d6
SHA512 8e21ea416f4c58743183394a28e347bc5c45f40306a8ffa7eef8403cf340538acf0794fd7bfdf60e120822fae5a21fc0f15de28cdf91d64f866781eb260b302e
ssdeep 49152:RHvo5BtSCkrN6DyhGr2W8Ujk4DJX4TnKuwdJg0b:65+rN+8GSog4lX/
Entropy 7.024119
Emsisoft MalCert.A (A)
Sophos Mal/BadCert-Gen
PE Metadata
Compile Date 2019-07-29 03:06:34-04:00
Import Hash 03d73bcb914fff965a82c9d9fe1fb7a1
Company Name JMT Trading Group
File Description JMT Trader
Internal Name JMT Trader
Legal Copyright JMT Trading Group (C) 2019
Original Filename JMTTrader.exe
Product Name Automatic Secure Bitcoin Trader Application
Product Version 1.40.42
PE Sections
MD5 Name Raw Size Entropy
f9a353aa651137f95669fd2b1a50e70b header 1024 3.181420
d00e20fb387da8ab6898391019288f30 .text 1181696 6.125747
c7fcd13c45b7c15042b8024839cf18c4 .rdata 1269248 7.095514
7504000617caec62a5a3221a785a58a8 .data 6144 4.261115
55550745e0d79ebbad96ac438f26f8a1 .rsrc 13312 7.626081
8ae8dead88483b69b09b01b024e882a2 .reloc 165376 6.784821
Microsoft Visual C++ ?.?
081d173942… Contained_Within 07c38ca1e0370421f74c949507fc0d21f4cfcb5866a4f9c0751aefa0d6e97542

This file is a 32-bit Windows executable contained within the Windows MSI Installer “JMTTrader_Win.msi.” When executed, “JMTTrader.exe” asks for the user’s exchange, and then loads a legitimate cryptocurrency trading platform with no signs of malicious activity.

“JMTTrader.exe” is similar in appearance to version 1 and QT Bitcoin Trader. In addition to similar appearance, many strings found in “JMTTrader.exe” have QT Bitcoin Trader references and parameters being set to “JMT Trader” including but not limited to:

–Begin similarities–
String_ABOUT_QT_BITCOIN_TRADER_TEXT=JMT Trader is a free Open Source project<br>developed on pure C++ Qt and OpenSSL.
July IGHOR (note: Ighor July is one of the developers of QT Bitcoin Trader)
–End similarities–

The strings also reference the name “Gary Mendez” with email [email protected] as the author of “JMTTrader.exe.” There is also reference to an additional GitHub repository under the name Gary Mendez “”

While the JMTTrader application is likely a modification of QT Bitcoin Trader, the legitimate QT Bitcoin Trader for Windows is not available for download as an MSI, but only as a Windows portable executable. This is a singular file named “QtBitcoinTrader.exe” and does not install or run any additional programs. The JMTTrader MSI contains “JMTTrader.exe,” the modified version of QT Bitcoin Trader, as well as the additional “CrashReporter.exe” (9bf8e8ac82b8f7c3707eb12e77f94cd0e06a972658610d136993235cbfa53641) executable not included with the original QT Bitcoin Trader.


Figure 2 - Screenshot of the JMTTrader Application.

Figure 2 – Screenshot of the JMTTrader Application.




Name CrashReporter.exe
Size 609008 bytes
Type PE32 executable (GUI) Intel 80386, for MS Windows
MD5 48971e0e71300c99bb585d328b08bc88
SHA1 ec8d7264953b5e9e416b7e8483954d9907278f2f
SHA256 9bf8e8ac82b8f7c3707eb12e77f94cd0e06a972658610d136993235cbfa53641
SHA512 6a664cd56e2201237bb24c148f39db6878e7cb6bb507290144f4cea327989535dbea64db11de398eee822aae56e873126dc95e2abf73642070f5f15c61d9eb19
ssdeep 12288:VhOHEwPzMEoJ1BpfYYPmrv3l1dxs6GWRGuGTi2euRBFXTnn8HPIRlxhD44ENrYAt:zOHEwPzMEoJ1BpfYYPmrv3l1dxs6GWRz
Entropy 6.526076
Ahnlab Trojan/Win32.Stealer
Antiy Trojan[Backdoor]/Win32.Stealer
Avira TR/Agent.lnumk
BitDefender Gen:Variant.Razy.567005
Comodo Malware
ESET a variant of Win32/NukeSped.GN trojan
Emsisoft MalCert.A (A)
Ikarus Trojan.Win32.Agent
K7 Trojan ( 005597f41 )
Lavasoft Gen:Variant.Razy.567005
Microsoft Security Essentials Backdoor:Win32/Stealer.A!MSR
NANOAV Trojan.Win32.Crypted.gczdoi
NetGate Trojan.Win32.Malware
Sophos Troj/APosT-L
Symantec Trojan.Gen.2
Systweak trojan.nukesped
TrendMicro Backdoo.80EE6F49
TrendMicro House Call Backdoo.80EE6F49
VirusBlokAda Backdoor.Agent
Zillya! Trojan.NukeSped.Win32.182
PE Metadata
Compile Date 2019-10-04 03:22:31-04:00
Import Hash 1513eba25694f99cecbcdc6cb414f6bd
PE Sections
MD5 Name Raw Size Entropy
cedc0880c9b0b6fea37e0079f1a4b406 header 1024 2.832478
189feb1b74269eaa7894c984df4268c3 .text 367104 6.351925
03c4cd021cfac8b5a8c0b944712e3217 .rdata 78336 4.408592
cf410dbcdd83eb2426120e72027f119b .data 130048 5.206737
bf619eac0cdf3f68d496ea9344137e8b .rsrc 512 0.000000
fe66dfb20b91197d86cc8bbf0fc7139c .reloc 23040 6.417054
Microsoft Visual C++ ?.?
9bf8e8ac82… Contained_Within 07c38ca1e0370421f74c949507fc0d21f4cfcb5866a4f9c0751aefa0d6e97542
9bf8e8ac82… Connected_To

This file is a 32-bit Windows executable contained within the Windows MSI Installer “JMTTrader_Win.msi.” Unlike the first version of the malware, “CrashReporter.exe” is installed in the “C:\Users\<username>\AppData\Roaming\JMTTrader,” which is a different folder than “JMTTrader.exe.” “CrashReporter.exe” is heavily obfuscated with the ADVObfuscation library, which has been renamed “snowman” by the malware writer. ADVObfuscation is described as using C++ 11/14 language to generate, at compile time, obfuscated code without using any external tool and without modifying the compiler and introduces some form of randomness to generate polymorphic code like the encryption of strings literals and the obfuscation of calls using finite state machines. Due to this obfuscation, detailed functionality can be difficult to determine to the extent of the non-obfuscated “Updater.exe” binary.

At launch, “CrashReporter.exe” first checks for the “Maintain” parameter and if not found, exits the program to likely evade detection in a sandbox environment. The malware collects basic victim information and encrypts the data with the hardcoded XOR key “X,%`PMk–Jj8s+6=15:20:11.”

The encrypted data is sent to “hxxps[:]//” with a multipart form data separator “–wMKBUqjC7ZMG5A5g.”

The malware’s capabilities include reading/writing itself to various directories, querying/writing to the registry, searching for files, extract/decode payload, and terminating processes. “CrashReporter.exe” also creates a scheduled SYSTEM task named “JMTCrashReporter,” which runs the “CrashReporter.exe” program with the “Maintain” parameter at the login of any user.


Figure 3 - Hard-coded XOR key and XOR encryption.

Figure 3 – Hard-coded XOR key and XOR encryption.

Figure 4 - Screenshot of the "JMTCrashReporter" scheduled task.

Figure 4 – Screenshot of the “JMTCrashReporter” scheduled task.



  • https[:]//

Whois information for the domain on October 11, 2019 was as follows:
Registrar: NameCheap
Created Date: July 19, 2019
Expiration Date: July 19, 2020

Relationships Connected_From 9bf8e8ac82b8f7c3707eb12e77f94cd0e06a972658610d136993235cbfa53641 Connected_From e352d6ea4da596abfdf51f617584611fc9321d5a6d1c22aff243aecdef8e7e55

The site “” had as valid digital signature signed by Sectigo. This is a “Domain Control Validated” signature, which is the lowest level of validation. The domain was registered at the IP address with ASN 205406.




Name jmttrader_mac.dmg
Size 13583316 bytes
Type zlib compressed data
MD5 39cdf04be2ed479e0b4489ff37f95bbe
SHA1 74390fba9445188f2489959cb289e73c6fbe58e4
SHA256 4d6078fc1ea6d3cd65c3ceabf65961689c5bc2d81f18c55b859211a60c141806
SHA512 d04bc9adbe56414ec2cba134ebf8af42ef79495a89748367464e73c6dd69fd978a194df23a646ff90d45114bf68a93f580cd540ba3b600a6524b198294416148
ssdeep 393216:sEFxMIZkTx7Nzm4qbicUC7Gk6RH1NBTtJRr49Hg4pgl:sEFiIYw4u8HxTDOi
Entropy 7.997633
Ahnlab Backdoor/OSX.NukeSped
Antiy Trojan/Win32.Casdet
Avira OSX/W97M.CVE-2017-8759.wrdas
BitDefender Trojan.MAC.Lazarus.G
Comodo Malware
Cyren Trojan.HUJK-1
ESET OSX/NukeSped.B trojan
Emsisoft Trojan.MAC.Lazarus.G (B)
Ikarus Trojan.Win32.Casdet
Lavasoft Trojan.MAC.Lazarus.G
McAfee OSX/Nukesped.d
Microsoft Security Essentials Trojan:MacOS/NukeSped.A!MTB
Sophos OSX/Lazarus-E
Symantec OSX.Trojan.Gen
TrendMicro Backdoo.6FE2634B
TrendMicro House Call Backdoo.6FE2634B
Zillya! Backdoor.Agent.OSX.57
4d6078fc1e… Downloaded_From
4d6078fc1e… Contains 7ea6391c11077a0f2633104193ec08617eb6321a32ac30c641f1650c35eed0ea
4d6078fc1e… Contains e352d6ea4da596abfdf51f617584611fc9321d5a6d1c22aff243aecdef8e7e55

This OSX program from the JMTTrader GitHub is an Apple DMG installer. The OSX program has very similar functionality to the Windows program, but does not have a digital signature. Again, the installer appears to be legitimate and installs both JMTTrader in the “/Applications/” folder and a hidden program named “.CrashReporter” in the “/Applications/” folder. The installer contains a postinstall script (see Figure 5).

This postinstall script has similar functionality to the postinstall script of the first version but has a few additional features. It still moves the hidden plist file (.com.jmttrading.plist) to the LaunchDaemons folder, but also changes the file permissions on the plist. Once in the LaunchDaemons folder, this program will be ran on system load as root for every user, which will launch the CrashReporter program with the Maintain parameter.

The postinstall script also moves the “.CrashReporter” program to a new location “/Library/JMTTrader/CrashReporter” and makes it executable. Like CelasTradePro, as the LaunchDaemon will not run automatically after the plist file is moved, the postinstall script then launches the CrashReporter program with the Maintain parameter and runs it in the background (&).

The package also has “Developed by Gary Mendez. JMTTrading Group” in the Info.plist properties file.


Figure 5 - Screenshot of the postinstall script included in OSX JMTTrader installer.

Figure 5 – Screenshot of the postinstall script included in OSX JMTTrader installer.