[Rapporto Operativo] Da SSA Phish a AdaptixC2: Un’Intrusione Multi-RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Un attore di minacce ha realizzato un’intrusione a strati con commodity che inizia con un’email di phishing a tema con l’Amministrazione della sicurezza sociale degli Stati Uniti. L’operazione si è basata su AdaptixC2 come principale framework di comando e controllo, ha utilizzato XWorm come canale di accesso secondario e per l’esfiltrazione basata su Telegram, e ha distribuito ScreenConnect per supportare attività tastiera-manuale. La campagna ha inoltre mostrato una forte disciplina operativa mediante l’uso dell’inganno del nome file RTLO e percorsi di persistenza multipli progettati per sopravvivere a una parziale rimediazione.
Indagine
L’indagine è avvenuta in un ambiente Deception.Pro utilizzando una workstation di inganno. Poiché l’ispezione TLS era abilitata, i ricercatori sono stati in grado di recuperare il traffico beacon in chiaro, gli URL di download del payload e le strette di mano del relay ScreenConnect. Tale visibilità ha reso possibile attribuire l’intrusione a specifici framework con alta fiducia piuttosto che dipendere solo da comportamenti o ipotesi basate su impronte digitali.
Mitigazione
Le organizzazioni dovrebbero ridurre il rischio abilitando l’ispezione TLS per il traffico di comando e controllo crittografato e distribuendo EDR in grado di rilevare certutil– staging basato su e l’esecuzione sospetta di PowerShell. La visibilità dell’estensione del file dovrebbe essere applicata per indebolire i trucchi del nome file basati su RTLO e le scritture delle chiavi Run del registro in posizioni pubbliche o scrivibili dagli utenti dovrebbero essere monitorate attentamente. I team dovrebbero inoltre inventariare e allertare sugli strumenti di gestione remota non autorizzati come ScreenConnect, specialmente quando installati tramite msiexec.
Risposta
Se viene rilevata questa attività, isolare immediatamente gli endpoint interessati per interrompere il traffico di comando e controllo e prevenire ulteriori movimenti laterali attraverso l’enumerazione SAMR o LSAD. Eseguire una scansione forense completa per le DLL XWorm e gli artefatti AdaptixC2 nelle cartelle pubbliche e in altri percorsi comuni di staging. Gli investigatori dovrebbero anche rivedere i modelli di esfiltrazione legati a Telegram e controllare le chiavi di persistenza del registro che imitano i nomi di aggiornatori legittimi.
Flusso di attacco
Rilevamenti
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)
Visualizza
Uso di Certutil per la codifica dei dati e le operazioni di certificato (via cmdline)
Visualizza
Esecuzione sospetta da profilo utente pubblico (via process_creation)
Visualizza
Software di accesso remoto / gestione alternativo (via process_creation)
Visualizza
Un archivio è stato estratto in una directory sospetta usando Powershell (via powershell)
Visualizza
File sospetti nel profilo utente pubblico (via file_event)
Visualizza
Tentativi di comunicazioni del dominio di ricerca IP possibili (via dns)
Visualizza
È stato contattato un possibile servizio DNS dinamico (via dns)
Visualizza
IOC (HashSha256) per rilevare: [Rapporto Op] Da SSA Phish a AdaptixC2: Un’intrusione Multi-RAT
Visualizza
IOC (HashMd5) per rilevare: [Rapporto Op] Da SSA Phish a AdaptixC2: Un’intrusione Multi-RAT
Visualizza
IOC (SourceIP) per rilevare: [Rapporto Op] Da SSA Phish a AdaptixC2: Un’intrusione Multi-RAT
Visualizza
IOC (DestinationIP) per rilevare: [Rapporto Op] Da SSA Phish a AdaptixC2: Un’intrusione Multi-RAT
Visualizza
Rilevamento della comunicazione di comando e controllo di AdaptixC2 [Connessione di rete Windows]
Visualizza
Rileva il dispiegamento di AdaptixC2 e ScreenConnect tramite Certutil e Msiexec [Creazione processo Windows]
Visualizza
Esecuzione di simulazione
Prerequisito: Il controllo preliminare di Telemetria e Baseline deve essere stato superato.
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 mirare a generare l’esatta telemetria prevista dalla logica di rilevamento.
-
Narrativa di attacco e comandi: L’avversario ha stabilito con successo un punto d’appoggio sulla macchina target tramite un link di spearphishing. Per mantenere il controllo e ricevere istruzioni, l’agente AdaptixC2 tenta di “registrarsi” con il suo server di comando e controllo. L’agente è programmato per contattare un URI hardcoded (
98.81.111.167/updates/check.php) o un IP di fallback (23.20.229.225) tramite porta 443. Simulando questi tentativi di connessione esatti, si valida se la regola di rilevamento firewall/rete identifica correttamente questi pattern noti-malvagi. -
Script di test di regressione: Questo script utilizza PowerShell per simulare due distinti tentativi di connessione: uno verso l’URL specifico e uno verso l’indirizzo IP specifico.
# Simulazione della comunicazione C2 di AdaptixC2 Write-Host "[+] Avvio della simulazione di AdaptixC2..." -ForegroundColor Cyan # Scenario 1: Connessione al pattern URL maligno specifico Write-Host "[+] Tentativo di connessione all'URL maligno: 98.81.111.167/updates/check.php" -ForegroundColor Yellow try { # Usiamo -ErrorAction SilentlyContinue perché probabilmente l'IP non risolverà o risponderà, # ma il tentativo di connessione genererà comunque la telemetria. Invoke-WebRequest -Uri "http://98.81.111.167/updates/check.php" -Method Get -ErrorAction SilentlyContinue } catch { Write-Host "[!] Connessione fallita (prevista), ma dovrebbe generarsi la telemetria." -ForegroundColor Gray } # Scenario 2: Connessione all'IP maligno specifico su porta 443 Write-Host "[+] Tentativo di connessione all'IP maligno: 23.20.229.225 sulla porta 443" -ForegroundColor Yellow try { $tcpClient = New-Object System.Net.Sockets.TcpClient $connection = $tcpClient.BeginConnect("23.20.229.225", 443, $null, $null) $success = $connection.AsyncWaitHandle.WaitOne(5000, $false) if ($success) { Write-Host "[+] Connessione riuscita (improbabile nel test reale)." -ForegroundColor Green } else { Write-Host "[!] Connessione scaduta (prevista), ma dovrebbe generarsi la telemetria." -ForegroundColor Gray } $tcpClient.Close() } catch { Write-Host "[!] Errore durante il tentativo di connessione TCP." -ForegroundColor Red } Write-Host "[+] Simulazione completa." -ForegroundColor Cyan -
Comandi di pulizia:
# Questa simulazione non crea artefatti persistenti poiché genera solo traffico di rete. Write-Host "[+] Nessuna pulizia necessaria. Le connessioni di rete erano transitorie." -ForegroundColor Green