Researchers uncovered a new Android malware campaign targeting Android-based automotive head unit firmware through the legitimate TWCore updater, making this the first documented infection chain of its kind on a car head unit. The multi-stage payload ends in a clicker and the zhima reverse proxy module, and Kaspersky attributes the activity with high confidence to the MoYu Group, an actor linked to BADBOX. #TWCore #JarService #zhima #MoYuGroup #BADBOX #DoFun
Keypoints
- The malware is a multi-stage Android downloader whose end goals are ad fraud and proxy-botnet creation.
- It was distributed through the built-in TWCore updater on Android-based automotive head units.
- This is the first documented case of malware found on a car head unit with a device-specific infection chain.
- Stage 1, called JarService, is a UI-less dropper that decrypts embedded payload blocks and launches the next stage.
- Stage 2 is a loader that contacts attacker infrastructure, retrieves stage 3, and uses reflection to execute it.
- Stage 3 functions as a clicker/reverse proxy loader, periodically contacting C2 for configuration and tasking.
- The zhima reverse proxy module and network overlap support attribution to MoYu Group, linked to BADBOX.
MITRE Techniques
- [T1105 ] Ingress Tool Transfer â The malware downloads successive payloads from attacker servers and pulls updated modules like the stage 3 payload and zhima. (âdownloading APK filesâ, âreturns a link for downloading the stage 3 payloadâ, âdownload and execute arbitrary codeâ)
- [T1059.005 ] Command and Scripting Interpreter: Java â The Android malware stages are implemented in Java and execute payload logic through Java classes and methods. (âthe entry point for the next-stage payload was the wa method of the com.c.j.qbh classâ, âthe init method of the com.ast.sdk.BillingMain classâ)
- [T1027 ] Obfuscated Files or Information â The payloads use XOR-encrypted blocks, encrypted strings, and serialized data to hide code and configuration. (âXOR-encrypted with a single-byte keyâ, âcontains encrypted stringsâ, âdecrypt the strings in the loaderâs codeâ)
- [T1140 ] Deobfuscate/Decode Files or Information â The malware decrypts embedded blocks and serialized payload data before loading the next stage. (âdecrypted data contains serialized information about the payload version and entry pointâ, âXOR-decrypt the stage 3 payloadâ)
- [T1055 ] Process Injection â The loader uses reflection to execute the next-stage payload in memory-like fashion within the app context. (âexecute the stage 3 payload using the reflection mechanismâ)
- [T1102 ] Web Service â The malware uses HTTP/POST/GET requests to attacker-controlled services to fetch configuration, tasking, and payloads. (âsends a POST request to /cpc/api/taskâ, âsends a GET request to /cpc/api/xmlâ, âMake a POST/GET HTTP requestâ)
- [T1219 ] Remote Access Software â The zhima module acts as a reverse proxy to relay traffic through infected devices. (âthe payload downloaded via the loadlib2 command is a reverse proxy module named âzhimaââ)
- [T1036 ] Masquerading â The malware is installed as an ordinary system app update via TWCore and abuses legitimate update functionality to blend in. (âinstalled like an ordinary user appâ, âdistribution through the legitimate update functionality of a system applicationâ)
- [T1518.001 ] Software Discovery: Security Software Discovery â The malware checks whether apps are already installed before installing when a flag allows it. (âTWCore only checks whether an app is already installedâ)
- [T1090 ] Proxy â The operation builds a proxy botnet and uses proxy infrastructure and modules to relay connections. (âcreation of a proxy botnetâ, âproxyforu[.]comâ, âresidential proxiesâ)
- [T1071.001 ] Application Layer Protocol: Web Protocols â The malware communicates with C2 using HTTP-based APIs and JSON. (âsends a POST requestâ, âreturns updated configurationâ, âcommand information for each unknown identifierâ)
- [T1123 ] Audio Capture â The article does not describe audio capture; no valid use confirmed. (âno UI of any kindâ)
Indicators of Compromise
- [Domain ] C2 and infrastructure for payload delivery and configuration â cardoor[.]cn, kshahnd[.]sbs, and 2 more domains
- [IP address ] C2 and reverse proxy infrastructure â 144.217.243[.]201, 107.151.248[.]132, and 1 more IP
- [URL ] Stage 3 payload and zhima module delivery â hxxp://144.217.243[.]201/vr34der34/dex3.68.png, hxxp://144.217.243[.]201/vr34der34/sh65.io, and 2 more URLs
- [File hash ] Malware and module samples â e9f3a0dab6949ce2cddab9e0aa80ae1a, 412e9243f2981bbea3894254d105b3b871ab5517f71866279d0d87d37f2ae32089ef78f716a75964539f2db6520be362a4223ce4288a230d1e6c3ff2c7639045bd4d81cd27125ad3d9a114922d468499c6bfb1643ac7474ed8a7b4f96a187fdbde77c3303e93c9450424759f1741441cf8cf8c23ff597700d471fb7767df8bac, and 3 more hashes
- [Package name ] Android malware packages observed in the chain â com.tw.core, com.tw.jar1, and com.miyc.transfer.Client
- [API path ] C2 endpoints used by the malware â /cpc/api/task, /cpc/api/report, and /cpc/api/xml
- [File path ] TWCore download cache path for APK installation â /push/apk/
- [Command name ] Command identifiers used by the stage 3 framework â loadlib2, http, and 7 more commands
Read more: https://securelist.com/android-head-unit-malware/121106/