MAR-10322463-2.v1 - AppleJeus: JMT Trading
body#cma-body { font-family: Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif; font-size: 15px; } table#cma-table { width: 900px; margin: 2px; table-layout: fixed; border-collapse: collapse; } div#cma-exercise { width: 900px; height: 30px; text-align: center; line-height: 30px; font-weight: bold; font-size: 18px; } div.cma-header { text-align: center; margin-bottom: 40px; } div.cma-footer { text-align: center; margin-top: 20px; } h2.cma-tlp { background-color: #000; color: #ffffff; width: 180px; height: 30px; text-align: center; line-height: 30px; font-weight: bold; font-size: 18px; float: right; } span.cma-fouo { line-height: 30px; font-weight: bold; font-size: 16px; } h3.cma-section-title { font-size: 18px; font-weight: bold; padding: 0 10px; margin-top: 10px; } h4.cma-object-title { font-size: 16px; font-weight: bold; margin-left: 20px; } h5.cma-data-title { padding: 3px 0 3px 10px; margin: 10px 0 0 20px; background-color: #e7eef4; font-size: 15px; } p.cma-text { margin: 5px 0 0 25px !important; word-wrap: break-word !important; } div.cma-section { border-bottom: 5px solid #aaa; margin: 5px 0; padding-bottom: 10px; } div.cma-avoid-page-break { page-break-inside: avoid; } div#cma-summary { page-break-after: always; } div#cma-faq { page-break-after: always; } table.cma-content { border-collapse: collapse; margin-left: 20px; } table.cma-hashes { table-layout: fixed; width: 880px; } table.cma-hashes td{ width: 780px; word-wrap: break-word; } .cma-left th { text-align: right; vertical-align: top; padding: 3px 8px 3px 20px; background-color: #f0f0f0; border-right: 1px solid #aaa; } .cma-left td { padding-left: 8px; } .cma-color-title th, .cma-color-list th, .cma-color-title-only th { text-align: left; padding: 3px 0 3px 20px; background-color: #f0f0f0; } .cma-color-title td, .cma-color-list td, .cma-color-title-only td { padding: 3px 20px; } .cma-color-title tr:nth-child(odd) { background-color: #f0f0f0; } .cma-color-list tr:nth-child(even) { background-color: #f0f0f0; } td.cma-relationship { max-width: 310px; word-wrap: break-word; } ul.cma-ul { margin: 5px 0 10px 0; } ul.cma-ul li { line-height: 20px; margin-bottom: 5px; word-wrap: break-word; } #cma-survey { font-weight: bold; font-style: italic; } div.cma-banner-container { position: relative; text-align: center; color: white; } img.cma-banner { max-width: 900px; height: auto; } img.cma-nccic-logo { max-height: 60px; width: auto; float: left; margin-top: -15px; } div.cma-report-name { position: absolute; bottom: 32px; left: 12px; font-size: 20px; } div.cma-report-number { position: absolute; bottom: 70px; right: 100px; font-size: 18px; } div.cma-report-date { position: absolute; bottom: 32px; right: 100px; font-size: 18px; } img.cma-thumbnail { max-height: 100px; width: auto; vertical-align: top; } img.cma-screenshot { margin: 10px 0 0 25px; max-width: 800px; height: auto; vertical-align: top; border: 1px solid #000; } div.cma-screenshot-text { margin: 10px 0 0 25px; } .cma-break-word { word-wrap: break-word; } .cma-tag { border-radius: 5px; padding: 1px 10px; margin-right: 10px; } .cma-tag-info { background: #f0f0f0; } .cma-tag-warning { background: #ffdead; }
NotificationThis report is provided "as is" for informational purposes only. The Department of Homeland Security (DHS) does not provide any warranties of any kind regarding any information contained herein. The DHS does not endorse any commercial product or service referenced in this bulletin or otherwise. This document is marked TLP:WHITE--Disclosure is not limited. Sources may use TLP:WHITE when information carries minimal or no foreseeable risk of misuse, in accordance with applicable rules and procedures for public release. Subject to standard copyright rules, TLP:WHITE information may be distributed without restriction. For more information on the Traffic Light Protocol (TLP), see http://www.us-cert.gov/tlp. SummaryDescriptionThis 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 https://www.us-cert.cisa.gov/ncas/alerts/AA21-048A. 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)beastgoc.com jmttrading.org Findings07c38ca1e0370421f74c949507fc0d21f4cfcb5866a4f9c0751aefa0d6e97542Tagsbackdoordroppertrojan Details
Antivirus
YARA RulesNo matches found. ssdeep MatchesNo matches found. Relationships
DescriptionThis 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 "jmttrading.org." 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. Screenshots Figure 1 - Screenshot of the JMTTrader Installation. jmttrading.orgTagscommand-and-control WhoisWhois for jmttrading.org had the following information on October 11, 2019: Relationships
DescriptionThis site contained a “Download from GitHub” button which takes the user to the JMTTrader GitHub page (github.com/jmttrading/JMTTrader/releases) 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 198.187.29.20 with ASN 22612. 081d1739422bf050755e6af269a717681274821cea8becb0962d4db61869c5d6Tagstrojan Details
Antivirus
YARA RulesNo matches found. ssdeep MatchesNo matches found. PE Metadata
PE Sections
Packers/Compilers/Cryptors
Relationships
DescriptionThis 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-- The strings also reference the name “Gary Mendez” with email garyhmendez@yahoo.com as the author of "JMTTrader.exe." There is also reference to an additional GitHub repository under the name Gary Mendez “github.com/garymendez/JMTTrader/issues." 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. Screenshots Figure 2 - Screenshot of the JMTTrader Application. 9bf8e8ac82b8f7c3707eb12e77f94cd0e06a972658610d136993235cbfa53641Tagsbackdoortrojan Details
Antivirus
YARA RulesNo matches found. ssdeep MatchesNo matches found. PE Metadata
PE Sections
Packers/Compilers/Cryptors
Relationships
DescriptionThis 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[:]//beastgoc.com/grepmonux.php” 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. Screenshots Figure 3 - Hard-coded XOR key and XOR encryption. Figure 4 - Screenshot of the "JMTCrashReporter" scheduled task. beastgoc.comTagscommand-and-control URLs
WhoisWhois information for the domain beastgoc.com on October 11, 2019 was as follows: Relationships
DescriptionThe site "beastgoc.com" 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 185.228.83.32 with ASN 205406. 4d6078fc1ea6d3cd65c3ceabf65961689c5bc2d81f18c55b859211a60c141806Tagsbackdoortrojan Details
Antivirus
YARA RulesNo matches found. ssdeep MatchesNo matches found. Relationships
DescriptionThis 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/JMTTrader.app/Contents/MacOS/” folder and a hidden program named “.CrashReporter” in the “/Applications/JMTTrader.app/Contents/Resources/” 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. Screenshots Figure 5 - Screenshot of the postinstall script included in OSX JMTTrader installer. Figure 6 - Screenshot of the "com.jmttrading.plist" file. 7ea6391c11077a0f2633104193ec08617eb6321a32ac30c641f1650c35eed0eaTagstrojan Details
AntivirusNo matches found. YARA RulesNo matches found. ssdeep MatchesNo matches found. Relationships
DescriptionThis OSX sample was contained within Apple DMG Installer "JMTTrader_Mac.dmg." When exexuted, JMTTrader has identical functionality and appearance to the Windows JMTTrader.exe. It asks for the user’s exchange and loads a legitimate cryptocurrency trading application with no signs of malicious activity. While the appearance has changed slightly from the CelasTradePro application, JMTTrader is close in appearance to both CelasTradePro and QT Bitcoin Trader, and is likely a modification of the OSX QT Bitcoin Trader. In addition to similar appearance, many strings found in JMTTrader have QT Bitcoin Trader references and parameters being set to “JMT Trader” including but not limited to: --Begin similarities-- The strings also reference the name “Gary Mendez” with email garyhmendez@yahoo.com as the author of JMTTrader.exe. There is also reference to an additional GitHub repository under the name Gary Mendez “github.com/garymendez/JMTTrader/issues." While the JMTTrader application is likely a modification of QT Bitcoin Trader, the legitimate QT Bitcoin Trader DMG for OSX does not contain the postinstall script nor the plist file which creates a LaunchDaemon. When executed, only QTBitcoinTrader will be installed, and no additional programs will be created, installed, or launched. In contrast, the JMTTrader DMG contains the CelasTradePro OSX executable, the modified version of QT Bitcoin Trader, as well as the additional CrashReporter OSX executable not included with the original QT Bitcoin Trader. e352d6ea4da596abfdf51f617584611fc9321d5a6d1c22aff243aecdef8e7e55Tagstrojan Details
Antivirus
YARA RulesNo matches found. ssdeep MatchesNo matches found. Relationships
DescriptionThis OSX sample was contained within Apple DMG Installer "JMTTrader_Mac.dmg." CrashReporter likely functions very similarly to the Windows CrashReporter.exe program, but unlike the Windows program, it is not obfuscated. This lack of obfuscation makes it easier to determine the program’s functionality in detail. Upon launch, the malware checks for the “Maintain” parameter, and will exit if the parameter is not found, likely to avoid sandbox analysis. CrashReporter then creates a randomly generated token (identifier) and collects the binary’s version and process ID to send to the server. This data is XOR encrypted with the hard-coded key “X,%`PMk--Jj8s+6=\x02” (last value is a non-printable ASCII character which is hexadecimal \x02). While the key is different than the XOR key for the Windows sample, the first 16 bytes are the same. The encrypted data is sent to the same C2 server as the Windows sample at hxxps[:]//beastgoc.com/grepmonux.php with the multipart data form separator “jGzAcN6k4VsTRn9”. CrashReporter also has a hard-coded user-agent string: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36” along with other hard-coded values sent with the data including “token," “query," and “mont.jpg." If CrashReporter receives a response with the HTTP code 200 (successful), it will invoke another function which will wait for tasking from the C2 server. When a tasking is received, the function decrypts the data with the same hardcoded XOR key and processes the tasking. Accepted tasking commands include the following: --Begin accepted tasking commands-- These possible commands from the C2 server gives the remote attacker full control over the OSX system. It is likely that the functionality of the Windows CrashReporter.exe is the same as this OSX malware, as the original AppleJeus had the same functionality on both operating systems. Screenshots Figure 7 - Screenshot of the maintain parameter verification in CrashReporter. Figure 8 - Screenshot of the hard-coded XOR key and XOR encryption. |