La campagna TerminalFix abilita il pivoting di rete tramite host compromessi
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
TerminalFix è una variante della tecnica ClickFix in cui gli attaccanti utilizzano falsi prompt di verifica Cloudflare per indurre gli utenti a eseguire comandi PowerShell dannosi. L’attacco combina il caricamento DLL laterale, la consegna di payload basata sulla steganografia e un tunnel inverso basato su WebSocket. Questo consente alla workstation compromessa di funzionare come un pivot di rete per ulteriori ricognizioni e potenziale distribuzione di ransomware.
Indagine
L’indagine ha esaminato il ciclo di vita dell’attacco dal richiamo iniziale basato sul web all’attività post-sfruttamento. Gli analisti hanno identificato LockScreenContentServer.exe come abusato per il caricamento DLL laterale e file PNG utilizzati per la consegna di payload steganografici. La campagna è stata ulteriormente associata a Vice Spider sulla base di rapporti dei media tedeschi e avvisi pubblicati dal BSI.
Mitigazione
I difensori dovrebbero monitorare per iframe del browser sospetti seguiti dall’esecuzione di PowerShell o del Terminale di Windows. Le organizzazioni dovrebbero rilevare comportamenti di caricamento DLL inusuali, in particolare binari legittimi che caricano DLL da posizioni inaspettate come C:ProgramData. Limitare le politiche di esecuzione di PowerShell e monitorare le attività pianificate non autorizzate e le modifiche a chiavi Run del registro possono ridurre ulteriormente l’esposizione all’attacco.
Risposta
Quando viene rilevata un’attività di TerminalFix, isolare la workstation colpita per impedirle di operare come un pivot di rete. Analizzare il traffico di rete per connessioni WebSocket esterne a domini sconosciuti e attività di ricognizione interna come interrogazioni LDAP. Rivedere la telemetria dell’endpoint per l’esecuzione non autorizzata di script Python e l’uso di strumenti come Impacket e Certipy.
Flusso di Attacco
Stiamo ancora aggiornando questa parte.
Rilevamenti
Operazioni sospette sulla chiave del registro NoWarningNoElevationOnInstall (via registry_event)
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)
Possibili Pattern della Riga di Comando di Impacket (via cmdline)
Possibile Esecuzione di Codice Remoto utilizzando Impacket (via cmdline)
Esecuzione di Python da Cartelle Sospette (via cmdline)
Possibile Enumerazione di Account o Gruppi Admin (via cmdline)
Scoperta Sospetta di Fiducia dei Domini (via cmdline)
Possibile Movimento Laterale tramite PsExec o Simile (via system)
Possibile Movimento Laterale tramite PsExec o Simile (via audit)
Possibile Utilizzo di PsExec (via audit)
IOC (SourceIP) per rilevare: TerminalFix: Quando una Workstation Diventa un Pivot di Rete
IOC (DestinationIP) per rilevare: TerminalFix: Quando una Workstation Diventa un Pivot di Rete
Rilevamento di Pivot di Rete TerminalFix [Connessione di Rete Windows]
Rilevazione di Esecuzione Maligna di TerminalFix [Creazione Processi Windows]
Rilevamento di Comandi PowerShell Dannosi per il Recupero di ZIP e PNG [Windows Powershell]
Esecuzione della Simulazione
-
Narrazione dell’Attacco e Comandi: L’avversario ha ottenuto l’accesso iniziale e sta tentando di stabilire un canale C2 persistente per pivotare attraverso la workstation. Per confondersi con il traffico web standard, utilizzano il protocollo WebSocket. L’attaccante esegue uno script PowerShell che inizia una connessione a
gitnow.dev. Questo imita il comportamento di TerminalFix dove la workstation agisce come un relè. L’obiettivo è attivare ilselezione_dominioandselezione_connessionecriteri della regola di rilevamento. -
Script di Test di Regressione:
# Simulazione della connessione C2 WebSocket di TerminalFix # Dominio Target: gitnow.dev $dominTarget = "gitnow.dev" $uri = "wss://$dominTarget/path/to/c2" Write-Host "Simulando la connessione C2 di TerminalFix a $dominTarget..." $ws = New-Object System.Net.WebSockets.ClientWebSocket $ct = New-Object System.Threading.CancellationTokenSource try { # Tentare la connessione per generare telemetria di Connessione di Rete $connectTask = $ws.ConnectAsync($uri, $ct.Token) # Utilizziamo un timeout perché il dominio probabilmente non esiste/non risponderà if ($connectTask.Wait(10000)) { Write-Host "Connesso con successo a $dominTarget" $ws.CloseAsync([System.Net.WebSockets.WebSocketCloseStatus]::NormalClosure, "Chiusura", $ct.Token).Wait() } } catch { Write-Host "Tentativo di connessione. La telemetria dovrebbe essere generata nei log Sysmon/EDR." Write-Host "Dettaglio Errore: $($_.Exception.Message)" } finally { $ws.Dispose() } -
Comandi di Pulizia:
# Nessuna persistenza o file sono stati creati in questo specifico script di simulazione. # Se sono stati usati file temporanei, dovrebbero essere rimossi qui. Write-Host "Pulizia della simulazione completata. Nessun artefatto lasciato da questo script."