Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dumpguard_bof — نسخة Beacon Object File (BOF) من DumpGuard لاستخراج تجزئات NTLMv1 من الجلسات على أنظمة Windows الحديثة. | Kitploit
أدوات/GitHubGitHub/0xedh/dumpguard_bof
هجمات كلمات المرورالاستغلالما بعد الاستغلالاختبار الاختراقالمصادقةالفريق الأحمر
GitHub0xedh/dumpguard_bof

dumpguard_bof

نسخة Beacon Object File (BOF) من DumpGuard لاستخراج تجزئات NTLMv1 من الجلسات على أنظمة Windows الحديثة.

عرض المستودع
22224منذ 7 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

DumpGuard BOF

نسخة Beacon Object File (BOF) من أداة DumpGuard لاستخراج تجزئات NTLMv1 من الجلسات على أنظمة Windows الحديثة.

Demo

حول هذا المشروع

يحتوي هذا المستودع على تنفيذ Beacon Object File (BOF) لأداة DumpGuard، وهو منقول من التنفيذ الأصلي بلغة C#/.NET إلى لغة C خالصة للاستخدام مع Havoc وأُطر عمل C2 الأخرى التي تدعم تنفيذ BOF.

هذا إثبات مفهوم (PoC) وتمرين تعليمي.

تم إنشاء منفذ BOF هذا كجزء من رحلتي الشخصية لفهم تفاصيل بروتوكول Remote Credential Guard، وتدفقات مصادقة Kerberos، وآليات أمان Windows الأساسية. وكانت عملية نقل هذه الأداة من C# إلى C خالصة لتنفيذ BOF مسعى تعليميًا في المقام الأول.

يرجى الانتباه إلى أن:

  • قد يحتوي هذا الكود على أخطاء برمجية، أو أخطاء، أو تطبيقات غير مكتملة.
  • لم يتم اختباره بشكل موسّع عبر جميع إصدارات Windows أو تكويناته.
  • بعض الحالات الطرفية أو الفروق الدقيقة في البروتوكول قد لا تتم معالجتها بشكل صحيح.
  • قد يختلف التنفيذ عن الأصل بطرق تؤثر على الموثوقية.
  • هذا ليس كودًا جاهزًا للإنتاج. استخدمه على مسؤوليتك الخاصة Ü.

إذا وجدت مشكلات أو لديك تحسينات، فالمساهمات مرحب بها. للحصول على تنفيذ قوي ومختبر جيدًا، يُرجى الرجوع إلى أداة DumpGuard الأصلية.

البحث الأصلي

يستند هذا BOF إلى البحث والأدوات التي أعدها @bytewreck في SpecterOps:

  • الأداة الأصلية: github.com/bytewreck/DumpGuard
  • مقالة المدونة: Catching Credential Guard Off Guard

نظرة عامة

تستغل أداة DumpGuard ميزة Windows Remote Credential Guard (RCG) لاستخراج تجزئات NTLMv1 من المستخدمين المسجلين دون لمس ذاكرة LSASS ودون الحاجة إلى صلاحيات المسؤول. وهي تعمل حتى عندما يكون Credential Guard مفعّلاً.

كيف تعمل

  1. انتحال صفة خادم CredSSP/RDP محليًا. يعمل BOF كخادم RDP وهمي.
  2. خداع Windows SSPI لتنفيذ مصادقة Kerberos + CredSSP كاملة.
  3. استلام بيانات اعتماد المستخدم مغلّفة في TSRemoteGuardCreds.
  4. استدعاء حزمة TSSSP الخاصة بـ LSA لحساب استجابة NTLMv1 بتحدٍّ معروف.

رقصة CredSSP المكونة من 4 جولات

بعد الجولة الرابعة، نحصل على كتلة بيانات الاعتماد المشفرة. يحدث السحر عندما نستدعي LsaCallAuthenticationPackage مع حزمة TSSSP. تقوم LSA بتوجيه طلبنا عبر RDPEAR -> TSRemoteGuard -> MSV1_0، التي تفك تشفير الأسرار وتحسب استجابة NTLMv1 لنا.

خلفية

يعزل Credential Guard أسرار NTLM وKerberos في مساحة VBS آمنة (LsaIso.exe)، مما يمنع هجمات الوصول المباشر إلى الذاكرة مثل Mimikatz. ومع ذلك، لا يزال Credential Guard بحاجة إلى استخدام تلك الأسرار للمصادقة المشروعة. هذه هي الواجهة التي تستغلها هذه التقنية.

للغوص الفني الكامل، راجع: Catching Credential Guard Off Guard

التنفيذ

ينفّذ منفذ BOF هذا وضع "Self" فقط من أداة DumpGuard الأصلية. أوضاع "All" غير منفّذة في هذا الإصدار.

وضع Self

يستخرج تجزئة NTLMv1 لمستخدم العملية الحالية عبر بروتوكول Remote Credential Guard.

  • متطلب الصلاحيات: لا شيء (يعمل في سياق المستخدم الحالي)
  • حالة Credential Guard: يعمل بغض النظر عما إذا كان Credential Guard مفعّلاً
  • المتطلبات: بيانات اعتماد لحساب لديه SPN مسجّل

استخراج تجزئات المستخدمين الآخرين

بينما ينفّذ هذا BOF وضع "self" فقط، لا يزال بإمكانك استخراج تجزئات NTLMv1 للمستخدمين الآخرين عن طريق، على سبيل المثال، الحقن في عملية تعمل باسم ذلك المستخدم. على سبيل المثال، إذا كانت لديك صلاحيات المسؤول، يمكنك حقن BOF في عملية يملكها مستخدم آخر مسجّل للحصول على تجزئته.

المتطلبات الأساسية

حساب مفعّل لـ SPN

تتطلب هذه التقنية بيانات اعتماد لحساب لديه اسم خدمة رئيسي (SPN) مسجّل. إحدى الطرق لتحقيق ذلك هي إنشاء حساب جهاز وإضافة SPN إليه.

الخطوة 1: إنشاء حساب جهاز

باستخدام Impacket:

root@kitploit:~
python3 addcomputer.py -computer-name 'YOURCOMPUTER$' domain.local/user:password -dc-ip <DC_IP>

مثال على المخرجات:

root@kitploit:~
[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.

الخطوة 2: إضافة SPN إلى حساب الجهاز

باستخدام krbrelayx addspn.py:

root@kitploit:~
python3 addspn.py -u domain.local\\YOURCOMPUTER\$ -p '<password>' -s host/yourspn.domain.local --target-type samname <DC_IP>

الخطوة 3: التحقق من SPN (إذا أردت)

باستخدام pywerview:

root@kitploit:~
python3 pywerview.py get-adobject -d domain.local -u YOURCOMPUTER\$ -p '<password>' -t <DC_IP> --sam-account-name YOURCOMPUTER\$

ابحث عن serviceprincipalname: host/yourspn.domain.local في المخرجات.

الاستخدام

Havoc C2

root@kitploit:~
inline-execute /path/to/dumpguard.x64.o x <domain> <username> <password> <spn>

ملاحظة: المعامل x هو وسيط نائب/وهمي مطلوب قبل اسم المجال. قد تتم معالجة هذا في الإصدارات المستقبلية (إن وُجدت).

مثال:

root@kitploit:~
inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local

مثال على المخرجات:

root@kitploit:~
[DG] Domain: sevenkingdoms.local
[DG] User: EVIL_COMPUTER$
[DG] SPN: host/EVILSPN.sevenkingdoms.local
[DG] checkpoint 1: init APIs
[DG] SSPI init OK
[DG] checkpoint 2: acquire creds
[DG] checkpoint 3: starting SSPI loop
[DG] Round 1
[DG] AS-REQ: LTK derived, etype=18 len=32
[DG] AS-REQ: sending to KDC...
[DG] Round 2
[DG] Round 3
[DG] NTLMv1: SEVENKINGDOMS\EVIL_COMPUTER$::GOAD-WIN2025::6D270E39AD2DE48B561895C3257D7123FE84F1438B147E2A:1122334455667788

مهم: تنتمي تجزئة NTLMv1 المستخرجة إلى المستخدم الذي يشغّل عملية BOF، وليس حساب الجهاز المستخدم للمصادقة (EVIL_COMPUTER$). تُستخدم بيانات اعتماد حساب الجهاز فقط للمصادقة على KDC وإنشاء جلسة Remote Credential Guard.

يكون المخرج بتنسيق NTLMv1 المتوافق مع hashcat:

root@kitploit:~
DOMAIN\user::HOSTNAME::NTRESPONSE:CHALLENGE

البناء

root@kitploit:~
make clean && make

المخرج: build/dumpguard.x64.o

المتطلبات

  • يجب أن يكون الهدف جهاز Windows منضمًا إلى مجال
  • تحتاج إلى بيانات اعتماد لحساب مفعّل لـ SPN (انظر المتطلبات الأساسية)
  • يعمل BOF في سياق مستخدم العملية الحالية

المراجع

وثائق Microsoft

  • Credential Guard Overview
  • Remote Credential Guard
  • AcquireCredentialsHandle
  • InitializeSecurityContext
  • AcceptSecurityContext
  • LsaRegisterLogonProcess
  • LsaConnectUntrusted
  • LsaCallAuthenticationPackage

بروتوكولات Microsoft

  • MS-RDPEAR - Remote Desktop Protocol: Authentication Redirection Virtual Channel Protocol
  • MS-CSSP - Credential Security Support Provider Protocol

الأوراق البحثية ومقالات المدونات

  • Catching Credential Guard Off Guard - Valdemar Caroe, SpecterOps (2025)
  • Pass the Challenge: Defeating Windows Defender Credential Guard - Oliver Lyak (2022)
  • Windows Exploitation Tricks: Exploiting Arbitrary File Writes for Local Elevation of Privilege - James Forshaw, Project Zero (2018)
  • The LSA Whisperer Project - Evan McBroom, SpecterOps

الترخيص

ترخيص BSD 3-Clause

الأداة الأصلية DumpGuard مرخصة بموجب ترخيص BSD 3-Clause، حقوق الطبع والنشر (c) 2025 Valdemar Carøe. يحافظ منفذ BOF هذا على نفس شروط الترخيص.


للاستفسارات أو تقارير الأخطاء أو المساهمات، يُرجى فتح مشكلة (issue) على GitHub.

تنزيل الأداة
RoundClient -> ServerServer -> Client
1SPNEGO + TGT-REQTGT-REPLY (from real KDC)
2AP-REQ (service ticket)AP-REP + MIC
3PubKeyAuth (binding hash)Server binding hash
4AuthInfo (TSRemoteGuardCreds)N/A