XCSSET v40 is a heavily updated macOS malware family that uses memory-resident execution, polymorphism, and supply-chain infection through poisoned Xcode projects to target developers. It also adds browser hijacking, Telegram trojanizing, defense evasion, and a rotating C2 infrastructure across domains, IPs, and endpoints. #XCSSET #Xcode #GoogleChrome #Telegram #Apple
Keypoints
- XCSSET v40 targets the macOS ecosystem and primarily infects developers through poisoned Xcode projects and vulnerable Git repositories.
- The malware uses a mostly fileless, in-memory architecture to reduce its disk footprint and evade detection.
- Its infection chain includes staged loaders, host fingerprinting, and final modules executed from volatile memory.
- XCSSET v40 introduces new modules, including a Chrome hijacking backdoor using the Chrome DevTools Protocol and a Telegram Desktop trojanizer.
- The malware enhances persistence through Git hooks, Launch Daemons, trojanized apps, and abuse of the macOS defaults system.
- It actively impairs defenses by disabling update channels, blocking telemetry, locking XProtect-related files, and resetting TCC permissions.
- The campaign uses rotating C2 domains, multiple IP addresses, and polymorphic encrypted payloads to complicate detection and analysis.
MITRE Techniques
- [T1055 ] Process Injection â The malware loads core logic into memory and pivots through legitimate processes to stay hidden (âthe third stage includes a temporary staging applet that is dropped onto the system to load the final stage into volatile memory spaceâ).
- [T1027 ] Obfuscated Files or Information â XCSSET v40 conceals functions, strings, and payloads with layered encryption and ciphers (âthe author used a multi-layered cipher shift to conceal the threatâs internal functionsâ).
- [T1105 ] Ingress Tool Transfer â It downloads modules and payloads from C2 endpoints for staged execution (âdownloads further modulesâ).
- [T1053 ] Scheduled Task/Job â The malware uses persistence mechanisms such as Launch Daemons and recurring re-infection behavior (âpersistent browser hijackingâ, âusual persistence through Git hooks, Launch Daemonsâ).
- [T1547 ] Boot or Logon Autostart Execution â It persists through Launch Daemons, .zshrc, and trojanized applications to re-launch automatically (âusual persistence through Git hooks, Launch Daemons and trojanized applicationsâ).
- [T1219 ] Remote Access Software â The Chrome hijacking backdoor leverages CDP and remote payloads to control the browser (âconnects to the opened CDP portâ).
- [T1056 ] Input Capture â Modules intercept credentials, password-manager autofill, and clipboard-related data (âCredential theftâ, âclipboard hijackersâ).
- [T1114 ] Email Collection â Not mentioned directly; omitted.
- [T1557 ] Adversary-in-the-Middle â Traffic interception hooks on browser APIs capture sensitive streams and tokens (âHooks placed on window.fetch and XMLHttpRequest monitor to exfiltrate sensitive data streamsâ).
- [T1056.001 ] Keylogging â The malware includes keyboard hijacker functionality (âclipboard_v2â, âpayloader ⌠performs keyboard hijackingâ).
- [T1106 ] Native API â It invokes shell execution and system commands through local APIs (âpasses the remaining payload to the hostâs underlying shell handler (exec.Command)â).
- [T1562.001 ] Disable or Modify Tools â It disables update, telemetry, and security mechanisms (âprevents the endpoint from automatically retrieving updatesâ, âhinders the endpointâs ability to send security-related dataâ).
- [T1497 ] Virtualization/Sandbox Evasion â The stats module checks hardware metadata and stops delivery on VMs (âHosts reporting a virtual environment receive no further module deliveriesâ).
- [T1071.001 ] Web Protocols â The malware uses WebSocket, HTTP GET, and POST for C2 communications (âestablishes a persistent WebSocket connection to the C2 serverâ).
- [T1132.001 ] Data Encoding â It uses Base64 and AES-encrypted blobs for transport and storage (âBase64-encoded staging payloadâ).
- [T1021.005 ] VNC â Not mentioned directly; omitted.
- [T1095 ] Non-Application Layer Protocol â The C2 uses WebSocket for interactive payload delivery (âpersistent WebSocket connection to the C2 serverâ).
- [T1555 ] Credentials from Password Stores â It captures autofill and browser cookie tokens (âextract cookie tokens invisiblyâ).
- [T1113 ] Screen Capture â Not mentioned directly; omitted.
- [T1587.001 ] Develop Capabilities: Malware â The operators refined and expanded XCSSET v40 with new modules and polymorphic infrastructure (âactively refining XCSSET v40 after it was already deployed in the wildâ).
Indicators of Compromise
- [Domains ] XCSSET v40 C2 infrastructure and delivery nodes â amzndev[.]in, whiteads[.]ru, and 50+ other rotating domains listed in the article.
- [URLs ] Chrome CDP helper binary download paths â hxxps[:]//amzndev[.]in/d/zw_sfp64, hxxps[:]//whiteads[.]ru/d/zw_sfp64, and 4 more similar URLs.
- [IP addresses ] C2 hosting and campaign infrastructure â 91.108.106[.]229, 95.142.35[.]34, and 5 more IPs.
- [SSL thumbprint ] Shared operator certificate fingerprint â 6e480d648fa1b70612f5d198a66875e28847547d.
- [File names / paths ] Telegram trojanizer and staging artifacts â Telegram.app, ~/.tr, ~/.tr_map, /tmp/r, and /tmp/p.app.
- [Endpoint paths ] C2 API routes used for staging, exfiltration, and config retrieval â /a, /s/, /w?tr, and /e.
Read more: https://unit42.paloaltonetworks.com/xcsset-v40-malware-analysis/