Tracciare Campagne di Malware con Materiale Riutilizzato
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Questa campagna riutilizza un’immagine “carrier” JPEG che nasconde un payload dannoso tra i tag BaseStart- e -BaseEnd. L’accesso iniziale avviene tramite l’esploit di Microsoft Equation Editor (CVE-2017-11882) in un allegato appositamente creato, che scarica un HTA. L’HTA esegue PowerShell per recuperare un .NET stage binario. Il riutilizzo della stessa immagine su molti campioni suggerisce che l’operatore si affidi a componenti ripetibili.
Investigazione
Il ricercatore ha osservato TELERADIO_IB_OBYEKTLRIN_BURAXILIS_FORMASI.xIs contenente l’exploit di Equation Editor. La catena recupera un HTA da un IP malevolo, che esegue PowerShell per scaricare un secondo payload ospitato su un altro IP. Lo stadio finale è un binario .NET incorporato nel carrier JPEG e recuperato tramite i delimitatori BaseStart/-BaseEnd. Immagini carrier simili sono state trovate in dozzine di submission su VirusTotal.
Mitigazione
Applica la patch CVE-2017-11882 e mantieni Office aggiornato. Blocca o limita l’esecuzione degli HTA, imponi la firma degli script PowerShell e utilizza il filtraggio URL/IP per negare l’accesso all’infrastruttura di hosting.
Risposta
Rileva e metti in quarantena l’allegato e lo stadio HTA, e allerta sull’attivitĂ di download di PowerShell verso gli IP identificati. Isola gli host interessati ed esegui la verifica della memoria per individuare e rimuovere il payload .NET in memoria.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ffcc99 %% Nodes node_phishing[“<b>Azione</b> – <b>T1566.001 Phishing: Allegato Spearphishing</b><br/><b>Descrizione</b>: File .xls dannoso che sfrutta CVEu20112017u201111882 inviato via e-mail.”] class node_phishing action node_user_exec[“<b>Azione</b> – <b>T1204.002 Esecuzione Utente</b><br/><b>Descrizione</b>: La vittima apre l’allegato dannoso.”] class node_user_exec action node_exploit_client[“<b>Azione</b> – <b>T1203 Sfruttamento per Esecuzione Client</b><br/><b>Descrizione</b>: La vulnerabilitĂ dell’Editor Equazioni innesca il download di contenuti dannosi.”] class node_exploit_client action node_mshta[“<b>Azione</b> – <b>T1218.005 Esecuzione Proxy di Binario di Sistema: Mshta</b><br/><b>Descrizione</b>: File HTA scaricato ed eseguito tramite mshta.”] class node_mshta action node_powershell[“<b>Azione</b> – <b>T1059.001 Interprete di Comando e Script: PowerShell</b><br/><b>Descrizione</b>: Script PowerShell recuperato da server remoto ed eseguito.”] class node_powershell action node_web_comm[“<b>Azione</b> – <b>T1102.003 Servizio Web: Comunicazione Unidirezionale</b><br/><b>Descrizione</b>: Lo script recupera un’immagine PNG da un server remoto.”] class node_web_comm action node_stego[“<b>Azione</b> – <b>T1027.003 File o Informazioni Offuscati: Steganografia</b><br/><b>Descrizione</b>: PNG contiene payload Base64 delimitato dai marcatori BaseStart e BaseEnd.”] class node_stego action node_dotnet[“<b>Azione</b> – <b>Esecuzione</b><br/><b>Descrizione</b>: Payload binario .NET incorporato viene eseguito sull’host.”] class node_dotnet process %% Connections node_phishing –>|porta a| node_user_exec node_user_exec –>|porta a| node_exploit_client node_exploit_client –>|porta a| node_mshta node_mshta –>|esegue| node_powershell node_powershell –>|scarica| node_web_comm node_web_comm –>|recupera| node_stego node_stego –>|contiene| node_dotnet
Flusso di Attacco
Rilevamenti
Comportamento Sospetto di Elusione della Difesa MSHTA LOLBAS mediante il Rilevamento di Comandi Associati (via process_creation)
Visualizza
Stringhe PowerShell Sospette (via powershell)
Visualizza
Download File Sospetto Diretto IP (via proxy)
Visualizza
Processo Figlio di Equation Editor Sospetto (via cmdline)
Visualizza
Stringhe PowerShell Sospette (via cmdline)
Visualizza
IOC (DestinationIP) da rilevare: Monitoraggio delle Campagne Malware con Materiale Riutilizzato
Visualizza
IOC (SourceIP) da rilevare: Monitoraggio delle Campagne Malware con Materiale Riutilizzato
Visualizza
Rileva HTA Maligno e Consegna del Payload Immagine Base64 [Proxy]
Visualizza
Recupero Payload PowerShell con Tecnica Encoder Base64 [Windows Powershell]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Controllo Preliminare Telemetria & Baseline deve essere superato.
Motivo: Questa sezione descrive 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 puntare a generare l’esatta telemetria prevista dalla logica di rilevamento.
-
Narrativa & Comandi di Attacco:
Un avversario ha sfruttato una vulnerabilitĂ lato client che serve un file HTA dannoso. L’HTA lancia PowerShell con una riga di comando che incorpora un payload dannoso (ad es.Invoke‑Expressionper lanciarecalc.exe) codificato in Base64. Il payload è racchiuso tra le stringheBaseStart-and-BaseEndin modo che l’attaccante possa estrarlo in modo affidabile al volo. Il comando eseguito sull’host compromesso è:powershell.exe -NoProfile -Command "$b='BaseStart-$( [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) )-BaseEnd'; $payload=$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($payload)))"Questa riga di comando soddisfa entrambe le
selezione_base_startandselezione_base_endcondizioni, causando l’attivazione della regola. -
Script di Test di Regressione: Il seguente script PowerShell auto‑contenuto riproduce il comportamento dannoso e può essere eseguito su qualsiasi host Windows con la telemetria abilitata sopra.
# Script di Test di Regressione – attiva la regola di rilevamento # 1. Costruisci il payload codificato in Base64 (avvia calc.exe) $payload = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) # 2. Assembla la linea di comando completa con i delimitatori $cmd = "BaseStart-$payload-BaseEnd" # 3. Esegui PowerShell con la riga di comando creata $fullCommand = "powershell.exe -NoProfile -Command `"& {`$b='$cmd'; `$payload=`$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$payload)))`"" # 4. Esegui il comando (questo lancerà calc.exe) Invoke-Expression $fullCommand -
Comandi di Pulizia: Rimuovi eventuali tracce e termina il processo generato se necessario.
# Pulizia – chiudi Calculator se ancora in esecuzione e cancella la cronologia dei comandi Get-Process calc -ErrorAction SilentlyContinue | Stop-Process -Force # Opzionalmente cancella la cronologia di PowerShell (solo per la sessione corrente) Remove-Item (Get-PSReadlineOption).HistorySavePath -ErrorAction SilentlyContinue