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.
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