MacSync macOS stealer returns with binary droppers, iCloud calendar staging and a backdoor targeting crypto users and developers
Kaspersky researchers describe a new MacSync macOS infostealer variant, first seen in the wild in September 2026, that replaces the earlier AppleScript-based droppers with FAT Mach-O binaries written in Objective-C and Swift. MacSync is sold as malware-as-a-service, so delivery varies by operator. In this campaign it spread through malicious DMG images posing as a nonexistent crypto wallet app called Toria, promoted on X and Telegram. The multi-stage chain stages payloads through a public iCloud calendar and iCloud-hosted archives, then installs a stealer and a persistent backdoor. The data collected and the lures used indicate that developers, crypto enthusiasts and other IT and crypto users are the primary targets.
Detalhes técnicos
- Stage one: the DMG contains an .APP that removes the quarantine attribute with
xattr -cr. It decrypts an XOR-encrypted URL from its overlay (magic wordSONOMAC1, key73 6f 6e 6f 6d 61 62 6c 64 07). A second variant uses a compiled JXA script that runs a shell script in memory. - Stage two: the URL points to an attacker server or a public iCloud calendar. The downloader pipes the calendar line by line into
zsh -s. The malicious commands sit after theDESCRIPTION:line and fetch a .TAR.GZ containing an .APP, which is de-quarantined, ad-hoc signed and run. - Stages three and four: AES-CBC-encrypted droppers extract to
/tmp/.sys-<16 digits>. The second dropper adds anti-analysis checks (kern.hv_vmm_present,machdep.cpu.brand_string,ptracePT_DENY_ATTACH). - Later stages: the script is executed in memory. It uses the custom pkgunpack utility (
genkey/decrypt) with ECDH Curve25519 (curve25519_donna), a SHA-256 key derivation using the stringsn-dek-wrap-v1, and AES-GCM to decrypt the stealer and backdoor modules. Familiar MacSync traits includedaemon_function, 90 MB PUT uploads and a/loader/URL path. The C2 requires anX-Upload-Tokenheader. - Stealer: a Swift .APP that prompts for the admin password under a fake corrupted-app notification and validates it through the PAM API rather than
dscl. It collects browser data, crypto wallet data, SSH/ZSH/AWS/Kubernetes/GIT configs, shell history and system information, staged in a hidden directory under/tmp/. A currently disabled keychain feature (KcHelper/_kc_grab_storage_item) modifiespartition_idto read browser secrets without a prompt. - Backdoor: an Objective-C binary (build BLD-150) that disguises itself as Finder. Persistence uses a LaunchAgent named
com.apple.finder.agent,.ZSHRCinjection, and global GITpre-commitandpost-checkouthooks that call.repair-run. That script restores the files and kills BTMNotificationAgent, NotificationCenter and BackgroundTaskManagementAgent to suppress persistence alerts. All backdoor commands execute base64 AppleScript from the C2:deploy_ext,deploy_ledger,regrab, andlive_browser(downloadssn_relay, likely browser traffic MitM). Logs go to$HOME/Library/Logs/.sysnotif-agent.log.
Remediação
- Detect and block the Kaspersky verdicts
HEUR:Trojan.OSX.MacSync.*,HEUR:Trojan-PSW.OSX.MacSync.*,HEUR:Trojan-Dropper.OSX.MacSync.*andHEUR:Trojan-Downloader.OSX.MacSync.*. - Block the listed domains and URLs, and hunt for the
com.apple.finder.agentLaunchAgent,$HOME/Library/Application Support/System,.repair-run, and unexpected entries in.zshrcand global GIT hooks. - Treat any host where such software was run as compromised: rotate credentials, SSH/cloud keys and wallet secrets, and move crypto assets.
- Warn developers and crypto users against installing unofficial or cracked applications from DMG images.
Linha do tempo
-
MacSync macOS stealer returns with binary droppers, iCloud calendar staging and a backdoor targeting crypto users and developers
ler a análise desta fonte ocultar
Kaspersky researchers describe a new MacSync macOS infostealer variant, first seen in the wild in September 2026, that replaces the earlier AppleScript-based droppers with FAT Mach-O binaries written in Objective-C and Swift. MacSync is sold as malware-as-a-service, so delivery varies by operator. In this campaign it spread through malicious DMG images posing as a nonexistent crypto wallet app called Toria, promoted on X and Telegram. The multi-stage chain stages payloads through a public iCloud calendar and iCloud-hosted archives, then installs a stealer and a persistent backdoor. The data collected and the lures used indicate that developers, crypto enthusiasts and other IT and crypto users are the primary targets.
Technical Details
- Stage one: the DMG contains an .APP that removes the quarantine attribute with
xattr -cr. It decrypts an XOR-encrypted URL from its overlay (magic wordSONOMAC1, key73 6f 6e 6f 6d 61 62 6c 64 07). A second variant uses a compiled JXA script that runs a shell script in memory. - Stage two: the URL points to an attacker server or a public iCloud calendar. The downloader pipes the calendar line by line into
zsh -s. The malicious commands sit after theDESCRIPTION:line and fetch a .TAR.GZ containing an .APP, which is de-quarantined, ad-hoc signed and run. - Stages three and four: AES-CBC-encrypted droppers extract to
/tmp/.sys-<16 digits>. The second dropper adds anti-analysis checks (kern.hv_vmm_present,machdep.cpu.brand_string,ptracePT_DENY_ATTACH). - Later stages: the script is executed in memory. It uses the custom pkgunpack utility (
genkey/decrypt) with ECDH Curve25519 (curve25519_donna), a SHA-256 key derivation using the stringsn-dek-wrap-v1, and AES-GCM to decrypt the stealer and backdoor modules. Familiar MacSync traits includedaemon_function, 90 MB PUT uploads and a/loader/URL path. The C2 requires anX-Upload-Tokenheader. - Stealer: a Swift .APP that prompts for the admin password under a fake corrupted-app notification and validates it through the PAM API rather than
dscl. It collects browser data, crypto wallet data, SSH/ZSH/AWS/Kubernetes/GIT configs, shell history and system information, staged in a hidden directory under/tmp/. A currently disabled keychain feature (KcHelper/_kc_grab_storage_item) modifiespartition_idto read browser secrets without a prompt. - Backdoor: an Objective-C binary (build BLD-150) that disguises itself as Finder. Persistence uses a LaunchAgent named
com.apple.finder.agent,.ZSHRCinjection, and global GITpre-commitandpost-checkouthooks that call.repair-run. That script restores the files and kills BTMNotificationAgent, NotificationCenter and BackgroundTaskManagementAgent to suppress persistence alerts. All backdoor commands execute base64 AppleScript from the C2:deploy_ext,deploy_ledger,regrab, andlive_browser(downloadssn_relay, likely browser traffic MitM). Logs go to$HOME/Library/Logs/.sysnotif-agent.log.
Remediation
- Detect and block the Kaspersky verdicts
HEUR:Trojan.OSX.MacSync.*,HEUR:Trojan-PSW.OSX.MacSync.*,HEUR:Trojan-Dropper.OSX.MacSync.*andHEUR:Trojan-Downloader.OSX.MacSync.*. - Block the listed domains and URLs, and hunt for the
com.apple.finder.agentLaunchAgent,$HOME/Library/Application Support/System,.repair-run, and unexpected entries in.zshrcand global GIT hooks. - Treat any host where such software was run as compromised: rotate credentials, SSH/cloud keys and wallet secrets, and move crypto assets.
- Warn developers and crypto users against installing unofficial or cracked applications from DMG images.
- Stage one: the DMG contains an .APP that removes the quarantine attribute with