MacSync macOS infostealer/backdoor: reworked MaaS chain stages stage-two via a public iCloud calendar (SONOMAC1)

MacSync macOS infostealer/backdoor (TL-2026-2637), also tracked as MacSync, is a high-severity malware campaign, first published 2026-09-24. It is attributed to Crazy Evil with medium confidence, affects Apple macOS, maps to 25 MITRE ATT&CK techniques (T1005, T1027.013, T1036.005), and is covered by 9 detection rules and 28 indicators of compromise.

Key facts for TL-2026-2637

Threat ID
TL-2026-2637
Also known as
MacSync, Mac.c, Sonoma, SONOMAC1
Severity
HIGH
Status
ACTIVE
Category
MALWARE
First published
2026-09-24
Last reviewed
2026-09-24
Attribution
Crazy Evil
Attribution confidence
MEDIUM
Motivation
FINANCIAL
Target sectors
technology, software-development, cryptocurrency, financial-services, news - media, government administration
Target regions
Global, spain, japan
Detection rules
9
Indicators of compromise
28

Malware and tooling in MacSync macOS infostealer/backdoor

Malware and tooling: AMOS

Kaspersky documented a substantially reworked version of MacSync, a macOS crypto/infostealer plus backdoor sold malware-as-a-service, first seen in the wild in September 2026. The six-stage chain delivers a compiled JXA loader disguised as cracked apps or the fictitious 'Toria' crypto-wallet app and, in at least one variant, stages stage-two from a publicly published iCloud CalDAV calendar entry hosting Loader.app.tar.gz. It installs a Swift infostealer that verifies the admin password through the PAM API and a persistent Objective-C backdoor masquerading as a Finder LaunchAgent, whose HTTP C2 supports browser-extension deployment, Ledger wallet replacement and live browser relay.

How MacSync macOS infostealer/backdoor works

MacSync is a macOS cryptocurrency and information stealer sold under the malware-as-a-service (MaaS) model, first advertised on dark-web forums in 2025 as 'Mac.c' and rebranded to MacSync around September 2025. Early builds were AppleScript droppers closely resembling the AMOS (Atomic macOS Stealer) family; the family has since added a full remote-access backdoor alongside the stealer. In September 2026 Kaspersky (Securelist, Sergey Puzan) documented a substantially reworked version, first observed in the wild that month, whose infection chain has grown to six stages and whose second stage is, in at least one variant, hosted on Apple's own iCloud CalDAV infrastructure rather than attacker-controlled infrastructure.

Delivery is operator-dependent, consistent with MaaS. Observed lures are malicious DMG disk images disguised as free or cracked versions of popular applications and as new software, including the entirely fictitious 'Toria' crypto-wallet application promoted through a dedicated website and on X and Telegram. Two delivery variants were observed within a single fake-app campaign: one where a compiled JXA (JavaScript for Automation) script inside the DMG decodes a shell script and passes it straight to the interpreter without ever writing it to disk, and one that traverses a longer chain of droppers and loaders.

In the longer chain, a stage-one .APP on the disk image strips the com.apple.quarantine attribute with 'xattr -cr', reads an XOR-encrypted URL from its Mach-O overlay (XOR key 73 6f 6e 6f 6d 61 62 6c 64 07, magic SONOMAC1, read backwards as magic, then 8-byte length, then ciphertext), and downloads a second-stage script. In the iCloud variant that URL is a published iCloud calendar: the downloader creates an anonymous pipe, launches 'zsh -s' with the pipe as stdin, and feeds the calendar lines in - the lines are invalid commands until the payload following the DESCRIPTION: line, which downloads a .TAR.GZ from an iCloud CalDAV attachment containing an .APP bundle. That app is stripped of extended attributes, ad-hoc signed and executed. Stage three drops a zlib-compressed, AES-CBC-encrypted executable at /tmp/.sys-<16-digit random value>; stage four adds anti-debugging (VM checks via sysctl on kern.hv_vmm_present and machdep.cpu.brand_string, and ptrace with PT_DENY_ATTACH) and runs an AES-CBC-encrypted shell script; stage five fetches the next stage from the C2, decrypts it with AES-CBC and executes it in memory; stage six downloads the infostealer, the backdoor and the pkgunpack utility, sets persistence and uploads stolen data, with modules arriving as .TAR.GZ that are extracted, stripped of extended attributes and ad-hoc signed.

The infostealer is a Swift binary that impersonates the application the user believed they were installing, prompts for the macOS administrator password, and verifies it through the PAM API rather than the dscl utility - a comparatively new technique in macOS malware. It harvests browser history, cookies, crypto-wallet extension data, saved logins and Local State files, crypto-wallet application data, Telegram data, the device login and password, the Keychain, installed applications, running processes, hardware and UUID details, and SSH/ZSH/AWS/Kubernetes/GIT configuration files, along with ZSH and Bash command history and the current user profile picture. Keychain partition_id lists are rewritten via 'security set-generic-password-partition-list' so that entries are readable by apple:, apple-tool: and specific team IDs (for example EQHXZ8M8AV for Chrome Safe Storage and KL8N8XSYF4 for Brave Safe Storage) without a user confirmation prompt.

The Objective-C backdoor masquerades as the Finder application, lives under $HOME/Library/Application Support/System (not a default macOS directory), logs to $HOME/Library/Logs/.sysnotif-agent.log, and persists as the LaunchAgent com.apple.finder.agent, additionally adding itself as a Login Item and injecting a command into .ZSHRC. A .repair-run script invoked from .ZSHRC and from global GIT pre-commit and post-checkout hooks restores missing backdoor files from backup and recreates and reloads the LaunchAgent. Its HTTP C2 exposes deploy_ext (browser-extension deployment), deploy_ledger (replacement of the Ledger wallet application), regrab (re-collection of system information and specific files) and live_browser (a relay/MitM on victim browser traffic, the only command that is not an AppleScript); all other commands execute a base64 AppleScript supplied by the server's script_b64 field. Beaconing uses GET /v1/agent/ping with tag (victim ID plus build number) and build, where a 403 means an expired token, refreshed via POST /v1/agent/refresh; stolen data is uploaded with POST /v1/asset/<upload_id>/init (size in X-File-Size, SHA-256 in X-File-Sha256) followed by PUT /v1/asset/<upload_id> in 90-megabyte chunks, all gated by a custom X-Upload-Token header. Data keys are wrapped with ECDH over Curve25519 (curve25519_donna) and AES-GCM, with buffers zeroed after use at each stage to hinder forensics and dynamic analysis.

Attribution: Kaspersky presents MacSync as a MaaS product and does not name an operator. Independent reporting on the SONOMAC1/'Sonoma' cluster - which shares the same campaign apex domains (appstore.com.mx, apple03cloudstore.com), the same iCloud CalDAV staging technique, the same /tmp/osalogging.zip staging artefact and the same pkgunpack/Curve25519/AES-GCM tooling - attributes that operation to the 'Crazy Evil' traffer team (named sub-teams DEFI, ZOOMLAND, AVLAND, KEVLAND), whose tooling previously delivered AMOS-style stealers behind fake Loom downloads. Attribution is assessed at MEDIUM confidence: the infrastructure overlap is strong and independently reported, but no vendor has formally merged the two family names, and MacSync is explicitly distinct from PamStealer/'Avenger' (Jamf, July 2026), another macOS stealer that also abuses the PAM API - 'PAM' describes an API, not a family.

Detection relevance: the family's durable, rotation-resistant signals are behavioural rather than domain-based - curl fetching /curl/<token> or /dynamic?txd=, exfiltration via PUT to /gate?buildtxd= with upload_id/chunk_index/total_chunks parameters and an api-key header, osascript executing shell utilities (sh, cp, rm, curl, mkdir, killall, dscl), xattr -cr followed by ad-hoc codesign and open -gn, staging under /tmp/.sys-*, /tmp/.ldr-*, /tmp/.pkgunpack-*, /tmp/.core-*.enc and /tmp/osalogging.zip, and any outbound request to *.icloud.com/caldav/.../attach/ piped into tar. Microsoft documented that correlating these traits connected more than 30 rotating domains, and RST Cloud showed a static api-key value binding four confirmed C2 domains across separate deployments while the per-build token rotated. BeaconBeagle returned no C2-framework configuration match for the network indicators checked (85.206.161.241, 103.216.221.95, agenticsora.com, toria.apple03cloudstore.com, docsend.appstore.com.mx), consistent with a bespoke HTTP C2 rather than a commodity framework such as Cobalt Strike or Sliver.

MITRE ATT&CK techniques used in TL-2026-2637

Collection

T1005 Data from Local System; T1056.002 Input Capture: GUI Input Capture; T1074.001 Data Staged: Local Data Staging; T1560.001 Archive Collected Data: Archive via Utility

Defense Evasion

T1027.013 Obfuscated Files or Information: Encrypted/Encoded File; T1036.005 Masquerading: Match Legitimate Resource Name or Location; T1140 Deobfuscate/Decode Files or Information; T1497.001 Virtualization/Sandbox Evasion: System Checks; T1622 Debugger Evasion

Execution

T1059.002 Command and Scripting Interpreter: AppleScript; T1059.004 Command and Scripting Interpreter: Unix Shell; T1059.007 Command and Scripting Interpreter: JavaScript; T1106 Native API; T1204.002 User Execution: Malicious File

Command and Control

T1071.001 Application Layer Protocol: Web Protocols

Credential Access

T1539 Steal Web Session Cookie; T1552.001 Unsecured Credentials: Credentials In Files; T1555.001 Credentials from Password Stores: Keychain; T1555.003 Credentials from Password Stores: Credentials from Web Browsers

Persistence

T1543.001 Create or Modify System Process: Launch Agent; T1546 Event Triggered Execution; T1546.004 Event Triggered Execution: Unix Shell Configuration Modification; T1554 Compromise Host Software Binary

defense-impairment

T1553.001 Subvert Trust Controls: Gatekeeper Bypass; T1553.002 Subvert Trust Controls: Code Signing

Affected products and versions in MacSync macOS infostealer/backdoor

  • Apple — macOS
    Vulnerable versions: All supported releases are targeted (macOS 13 Ventura through macOS 26.x)
    Fixed in: No fix applies - this is malware, not a vulnerability. macOS 26.4 and later add ClickFix paste-blocking and XProtect script checks that mitigate the delivery vector only.
  • Ledger — Ledger Live / Ledger Wallet desktop
    Vulnerable versions: Application replaced in place by the backdoor's deploy_ledger command; observed versions 2.133.0 and 2.126.2
  • Trezor — Trezor Suite desktop
    Vulnerable versions: Application replaced in place by the wallet-trojan module, which also allowlists main.southcarolinacounselor.com in the app's network configuration

Remediation for MacSync macOS infostealer/backdoor

Patches

  • No CVE or vendor patch applies - MacSync is MaaS malware, not a software vulnerability. Apply current Apple security updates and keep Gatekeeper and XProtect enabled; macOS 26.4+ additionally blocks the ClickFix paste vector.

Immediate actions

  • Treat any curl|zsh, '/bin/zsh -s' pipe, or osascript execution initiated from Terminal as a potential compromise; isolate and triage the host rather than just deleting files.
  • Hunt for and remove the staging artefacts /tmp/.sys-*, /tmp/.ldr-*, /tmp/.pkgunpack-*, /tmp/.eph-*.key, /tmp/.core-*.enc, /tmp/.core-*.tar.gz, /tmp/sync*/ and /tmp/osalogging.zip.
  • Remove the LaunchAgent com.apple.finder.agent and any ~/Library/LaunchAgents/com.apple.<8hex>.hcpi.plist entry, the Login Item, the injected .ZSHRC lines and the .repair-run script, and audit global git pre-commit and post-checkout hooks.
  • Block or alert on outbound requests to the campaign apexes appstore.com.mx and apple03cloudstore.com and to the confirmed C2 hosts docsend.appstore.com.mx, toria.apple03cloudstore.com, streamyard.appstore.com.mx, slack.apple03cloudstore.com and waaako.appstore.com.mx.
  • Assume full credential compromise: rotate the macOS account password, all browser-saved credentials and session cookies, SSH keys, AWS and Kubernetes credentials, and move funds and seed phrases off any wallet present on the host (Ledger, Trezor, MetaMask and browser-extension wallets).

Workarounds

  • Disable or centrally manage global git hooks and audit .zshrc/.bashrc for injected re-pull commands that re-stage the backdoor.
  • Block execution from /tmp and /Volumes for non-admin users via MDM policy.
  • Monitor via the Endpoint Security framework for PAM API credential verification, ptrace(PT_DENY_ATTACH) and sysctl kern.hv_vmm_present probes as anti-analysis and credential-phishing signals.

Longer-term hardening

  • Deploy EDR with behavioural coverage for osascript-abused shell utilities, curl PUT exfiltration with upload_id/chunk_index/total_chunks parameters, and LaunchAgent creation outside signed installers.
  • Enforce macOS 26.4 or later where possible: it blocks pasted Terminal commands with a 'Possible malware, Paste blocked' warning and adds XProtect script checks, mitigating the ClickFix delivery vector.
  • Require Developer ID signing and notarisation via MDM and restrict standard users from launching unsigned or ad-hoc-signed applications from /tmp and /Volumes.
  • Monitor DNS and certificate transparency for lookalike domains registered against brand keywords and for newly issued Let's Encrypt certificates on campaign-shaped hostnames, which rotate roughly 24 hours after public disclosure.
  • Treat developer and crypto-treasury workstations as high-value assets and monitor for anomalous access to Keychain, browser Safe Storage and dotfile credential stores.

Timeline of MacSync macOS infostealer/backdoor

  • MacSync is rebranded from its original 'Mac.c' dark-web listing and continues to be sold under a malware-as-a-service model (Securelist; RST Cloud).
  • CloudSEK publishes YARA rules for MacSync, the earliest public detection content for the family (RST Cloud timeline).
  • SANS Internet Storm Center publicly discloses the then-current MacSync C2 glowmedaesthetics.com (RST Cloud).
  • Jamf Protect blocks a MacSync stage-one download from jacksonvillemma.com; the new C2's Let's Encrypt certificate had been issued on 2 May 2026, roughly 24 hours after the prior C2 was disclosed (RST Cloud).
  • RST Cloud publishes 'MacSync Stealer: C2 Infrastructure Rotation', showing a static api-key value binding four confirmed C2 domains while the per-build token rotates (RST Cloud).
  • Huntress observes a mid-July intrusion delivering a six-stage MacSync chain from agenticsora.com via a poisoned claude.ai share page and Google Ads malvertising (Huntress).
  • Huntress publishes its reverse-engineering analysis of the six-stage MacSync stealer and RAT, including the Mach-O agent, capture agent and Ledger/Trezor wallet trojans (Huntress).
  • Microsoft Security publishes behavioural-pivot hunting research that correlates more than 30 rotating MacSync domains via shared URI paths, headers and curl command-line traits (Microsoft Security).
  • Researcher @L0Psec publishes a thread on the Toria.dmg chain, initially hypothesised to be PamStealer before it was distinguished from that family (HackerNoon).
  • Moonlock/HackerNoon document the SONOMAC1 'Sonoma' cluster and attribute the operation to the Crazy Evil traffer team (HackerNoon).
  • Kaspersky publishes 'MacSync: a new version of the macOS stealer', documenting the reworked six-stage chain, iCloud CalDAV stage-two staging and the newly added backdoor (Securelist).

Sources cited for MacSync macOS infostealer/backdoor

More in malware

Detection coverage for TL-2026-2637

As of 2026-09-24, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-2637 across Splunk SPL, Microsoft KQL and Sigma, covering 28 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Latest Threats