Jamf Threat Labs Discovers Pirated macOS Apps Similar to ZuRu Malware

Jamf Threat Labs uncovered pirated macOS apps backdoored with a dylib that downloads and executes payloads, secretly compromising the victim’s machine. The campaign shows ZuRu-like traits, including attacker infrastructure communications and persistence via LaunchAgents on pirate-hosted binaries in China. #ZuRu #FinalShell #Khepri #LaunchAgents #macOS

Keypoints

  • Jamf Threat Labs found pirated macOS applications that have been modified to contact attacker infrastructure and download additional payloads.
  • A malicious dylib (libpng.dylib) is injected into each app, acting as a dropper that starts malware every time the app opens.
  • The backdoor is downloaded via the dylib and uses the Khepri C2/post-exploitation framework for commands and control.

MITRE Techniques

  • [T1055] Dynamic-link Library Injection – The malicious dylib libpng.dylib is loaded at runtime by the app to start malware in the background. “an additional dylib library titled libpng.dylib loaded at runtime. This dylib is loaded each time the application is opened thus starting the malware in the background.”
  • [T1027] Obfuscated/Compressed Files and Information – Downloaded payloads are XOR-encoded and decoded in memory before execution. “Both of the downloaded executables are encoded with a custom XOR routine and get decoded in-memory before being written to disk.”
  • [T1547.001] Boot or Logon Autostart Execution: Launch Agents – The persistent downloader uses a LaunchAgent to run a hidden binary at startup. “The LaunchAgent will ensure the .fseventsd binary persists by executing it at the hidden path /Users/Shared/.fseventsd.”
  • [T1059.004] Command and Scripting Interpreter – The malware uses shell/launchctl commands and manipulates process arguments to blend in. “The arguments to represent that of ssh…”; “sudo launchctl procinfo 62127 program path = /private/tmp/.test argument count = 2 argument vector = { [0] = /usr/local/bin/ssh [1] = -n }”
  • [T1071.001] Web Protocols – The backdoor communicates with attacker infrastructure via HTTP(S) to fetch payloads. “GET /fs.log HTTP/1.1 HOST: bd.vscode.digital” and similar requests to download payloads.
  • [T1036] Masquerading – The malware disguises its persistence artifacts with Apple-like naming (com.apple.fsevents.plist) and other system-like paths. “com.apple.fsevents prefix is an evasion technique… to disguise itself as a legitimate Apple plist.”
  • [T1041] Exfiltration Over C2 Channel – ZuRu-like behavior to grab sensitive files and upload them to an attacker server (historical context referenced in ZuRu). “the ZuRu malware … would execute a Python script in the background to grab sensitive files and upload them to an attacker server.”

Indicators of Compromise

  • [File name] navicat161_premium_cs.dmg, secureCRT.dmg – compromised DMGs used in the campaign. Context: the initial pirated apps carrying the dropper.
  • [SHA1] ca91c796f211f49b789b0bcdb1e07a26433c1c2d, daa12a5a3f393590e74338a19af444a706b122dd – file hashes for compromised DMGs.
  • [File hash] Navicat Premium dylib hash: c20ece082eefb432fa98a0e1535b4b4bdf6c97d3, and d67726952ab17c1e3acef6e57bf1a24c98187810 – dylib-related hashes.
  • [URL] download.macnavicat[.]com/bd.log, download.macnavicat[.]com/nv01.log; download.securecrt[.]vip/bd.log; download.ultraedit[.]info/bd.log; download.finallshell[.]cc/bd.log; download.rdesktophub[.]com/bd.log – payload delivery URLs.
  • [Domain] macnavicat[.]com, securecrt[.]cc, bd.vscode[.]digital – attacker infrastructure domains referenced in the campaign.
  • [IP] 47.242.144.113, 8.217.76.133, 8.217.132.190, 47.242.252.82 – sample attacker or proxy IPs observed.
  • [Path] /Users/Shared/.fseventsd, /tmp/.test, /tmp/.fseventsds – persistent and temporary dropper locations.
  • [BackdoorHash] 1220bd814d4ac523b9a2c47d22bc01c43eb4bde3, 902e… (additional hashes listed in the article) – identifiers for backdoor payloads.
  • [PersistentDownloaderUrl] bd.macnavicat[.]com/fs.log, etc. – downloader endpoints for sustained access.

Read more: https://www.jamf.com/blog/jtl-malware-pirated-applications/