SOC Prime Bias: Critico

18 Feb 2026 13:42 UTC

Tracciare Campagne di Malware con Materiale Riutilizzato

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Segui
Tracciare Campagne di Malware con Materiale Riutilizzato
shield icon

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

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‑Expression per lanciare calc.exe) codificato in Base64. Il payload è racchiuso tra le stringhe BaseStart- and -BaseEnd in 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_start and selezione_base_end condizioni, 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