Dentro dell’evoluzione delle tecniche di TAG-150 con DinDoor, DenoRAT e NightshadeC2
Detection stack
- AIDR
- Alert
- ETL
- Query
Sintesi
TAG-150 sta utilizzando una catena d’intrusione multi-stadio sofisticata costruita attorno a malware basato su Deno. La campagna si basa su un’ingegneria sociale in stile ClickFix per attivare l’esecuzione di un installer MSI, che poi distribuisce DinDoor, DenoRAT e infine NightshadeC2. Sfruttando il runtime Deno, gli attaccanti ottengono capacità avanzate di accesso remoto e furto di informazioni.
Indagine
L’Unità di Risposta alle Minacce di eSentire ha interrotto un comando in stile ClickFix all’interno dell’ambiente di un cliente finanziario. L’indagine ha rivelato una sequenza di infezione che è iniziata con un comando nel prompt di esecuzione di Windows, seguito da una fase PowerShell generata da IA, Griffin20.ps1, utilizzato per installare il runtime Deno. Le fasi successive hanno coinvolto DinDoor, DenoRAT, e un loader in memoria basato su Python che ha consegnato il RAT NightshadeC2.
Mitigazione
Le organizzazioni dovrebbero considerare di disabilitare il prompt di esecuzione di Windows tramite i Group Policy Objects dove operativamente fattibile. Si consiglia anche di implementare un programma di formazione per la consapevolezza della sicurezza e il phishing per ridurre il successo delle esche in stile ClickFix. Distribuire soluzioni antivirus di nuova generazione o di rilevamento e risposta degli endpoint è essenziale per la visibilità, il rilevamento e il contenimento.
Risposta
Se viene rilevata questa attività, l’host interessato dovrebbe essere isolato immediatamente per contenere la catena di infezione. Le organizzazioni dovrebbero coinvolgere un fornitore di rilevamento e risposta gestito 24/7 o un team di risposta agli incidenti equivalente per supportare il contenimento rapido e la completa remediation. Si consiglia anche il monitoraggio continuo per i componenti di malware basati su Deno identificati.
Flusso di Attacco
Rilevamenti
Punti di persistenza possibili [ASEPs – Software/NTUSER Hive] (via registry_event)
Visualizza
Esecuzione di Python da cartelle sospette (via cmdline)
Visualizza
Download o Upload tramite Powershell (via cmdline)
Visualizza
Possibile tentativo di abuso del runtime Deno (via process_creation)
Visualizza
LOLBAS Conhost (via cmdline)
Visualizza
Chiama metodi .NET sospetti da Powershell (via powershell)
Visualizza
Download di eseguibili sospetti (via proxy)
Visualizza
IOC (HashSha256) per rilevare: DinDoor, DenoRAT e NightshadeC2: Analizzando l’evoluzione delle tecniche di TAG-150
Visualizza
Rileva richieste GET agli endpoint utente e messaggi-evento associati a DenoRAT [Connessione di rete di Windows]
Visualizza
Esecuzione della simulazione
Prerequisito: La verifica pre-volo della telemetria e baseline deve essere superata.
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 i TTP identificati e tendere a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a una diagnosi errata.
-
Narrazione dell’attacco & Comandi: L’avversario ha stabilito con successo un punto d’appoggio su un host Windows e sta tentando di attivare il loro beacon DenoRAT. Per eludere le tradizionali rilevazioni basate su firme EDR, il malware utilizza modelli di rete “Living-off-the-Land”, comunicando tramite HTTP/S standard. Il malware tenterà di effettuare il check-in con il server C2 inviando richieste GET agli endpoint specifici
/utenteand/evento-messaggio. Questa simulazione imita il comportamento di beacon per verificare che la logica di rilevamento del SOC si attivi quando queste stringhe specifiche appaiono nei log di accesso web. -
Script di test di regressione:
# Script di simulazione C2 DenoRAT # Questo script simula le specifiche richieste HTTP GET utilizzate da DenoRAT per attivare la regola di rilevamento. $C2_URL = "http://localhost" # Sostituire con l'indirizzo del server web locale di test $Endpoints = @("/utente", "/evento-messaggio") Write-Host "[+] Inizio della simulazione C2 DenoRAT..." -ForegroundColor Cyan foreach ($Endpoint in $Endpoints) { $Target = $C2_URL + $Endpoint Write-Host "[*] Simulazione check-in C2 su: $Target" -ForegroundColor Yellow try { # Esecuzione della richiesta GET $Response = Invoke-WebRequest -Uri $Target -Method Get -ErrorAction SilentlyContinue Write-Host "[+] Richiesta Inviata. Codice di Stato: $($Response.StatusCode)" -ForegroundColor Green } catch { # Ci aspettiamo un 404 se gli endpoint non esistono effettivamente, il che va bene per testare la telemetria Write-Host "[!] Richiesta Inviata (Errore 404 previstp/Errore di Connessione): $_" -ForegroundColor Gray } Start-Sleep -Seconds 2 } Write-Host "[+] Simulazione Completa." -ForegroundColor Cyan -
Comandi di pulizia:
# Nessuna modifica persistente viene apportata dallo script di simulazione. # Per ripulire i log del server web se necessario (Attenzione: Questa azione elimina i log!): # Remove-Item -Path "C:inetpublogsLogFilesW3SVC1*.log" -Force Write-Host "[+] Pulizia: Nessun artefatto persistente è stato creato." -ForegroundColor Green