
رسم خرائط مسارات الهجوم لـ Active Directory وADCS وSCCM وMSSQL باستخدام بيانات BloodHound CE + OpenGraph.
ADPathFinder هي أداة لرسم خرائط الهجمات موجّهة لمختبري الاختراق وفرق الاختبار الأحمر. تحلّل بيانات SharpHound وتوحّدها مع إضافات OpenGraph لكشف مسارات الهجوم نحو الأهداف عالية القيمة مثل مسؤولي النطاق (Domain Admins) ووحدات تحكم النطاق (Domain Controllers)، انطلاقًا من المستخدمين والحواسيب منخفضة الامتيازات. MSSQLHound وConfigManBearPig مدعومان بشكل أصلي، ما يوسّع التغطية عبر AD وADCS وSCCM وMSSQL.
المدونة: رسم خرائط مسارات الهجوم عبر OpenGraph في BloodHound CE
انتقل إلى: البدء السريع · التغطية · كيف يعمل · المخرجات · الإعداد · المساهمون
| المجال | أمثلة |
|---|---|
| AD الأساسي | مسارات التصعيد، التفويض، صلاحيات الإدارة، BadSuccessor، جلسات عالية القيمة مكشوفة |
| كلمات المرور | كلمات مرور ضعيفة، كلمات مرور فارغة، إعادة الاستخدام، تشابه أسماء المستخدمين، استخدام تجزئات LM، تعرّض Kerberoast وAS-REP مقترنًا بكلمات مرور ضعيفة |
| ADCS | مخاطر قوالب الشهادات ومراجع التصديق (CA) بنمط ESC |
| MSSQL (بيانات MSSQLHound عبر OpenGraph) | تسجيلات الدخول، الخوادم المرتبطة، الانتحال، الترحيل، ومسارات تصعيد الامتيازات |
| SCCM (بيانات ConfigManBearPig عبر OpenGraph) | مسارات الاستيلاء والترحيل، نقاط التوزيع الممكّنة عبر PXE، واسترجاع سياسات نقطة الإدارة |
| عبر النطاقات | علاقات الثقة، كلمات المرور المشتركة، ومسارات التصعيد بين النطاقات |
neo4j://localhost:7687.git clone https://github.com/NetSPI/AD-PathFinder.git
cd AD-PathFinder
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
adpathfinder --setup-bloodhound-api
يخزّن هذا إعدادات واجهة برمجة تطبيقات BloodHound CE المستخدمة في عمليات الاستيراد والحذف.
adpathfinder --import SharpHound.zip
يمكن استيراد ملفات SharpHound وملفات إضافات OpenGraph المضغوطة المتعددة في أمر واحد:
adpathfinder --import SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip
adpathfinder -i SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
استخدم ملفات zip المتوفرة لديك فقط. قيمة --pwd ليست نطاق AD؛ بل قائمة مفصولة بفواصل من مصطلحات الشركة أو العلامة التجارية أو المؤسسة لوضع علامة عليها ضمن كلمات المرور المكسورة.
adpathfinder --ad
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
استخدم --unsafe-report فقط عندما يجب أن تتضمن التقارير كلمات مرور بنص واضح.
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile --diagnostics
يقرأ ADPathFinder ملف config.ini من دليل العمل. يمكن أيضًا ضبط القيم عبر متغيرات بيئة ADPF_*.
شغّل هذا الأمر لتكوين الوصول إلى واجهة برمجة تطبيقات BloodHound CE لعمليات الاستيراد والحذف:
adpathfinder --setup-bloodhound-api
راجع الإعداد في الويكي لمعرفة جميع الخيارات، وإعدادات اتصال Neo4j، وصلاحيات الملفات، وأمثلة الإعدادات. وراجع العلاقات المستثناة لتصفية مخرجات مسارات الهجوم.
تُكتب التقارير إلى report_<domain>/، على سبيل المثال report_training.local/.
تعامل مع بيانات NTDS وملفات potfile والتقارير المُنشأة كبيانات تقييم حساسة. يكتب علم --unsafe-report كلمات المرور بنص واضح في ملفات المخرجات؛ استخدمه فقط عندما تحتاج تحديدًا إلى نص واضح في التقرير، وخزّن ملفات _unsafe الناتجة وفقًا لذلك.
راجع sample_reports/ للحصول على نماذج من مخرجات تدقيق النطاق وتدقيق كلمات المرور.
الفحوصات عبارة عن أصناف (classes) صغيرة تُسجَّل عبر مُزيِّن (decorator)، وتُعلن متطلبات بياناتها، وتُعيد قواميس نتائج. تُعلن فحوصات المنصات مصدر بياناتها، لذا تتخطى تدقيقات AD العادية فحوصات MSSQL أو SCCM عندما لا تتوفر بيانات OpenGraph المطابقة.
راجع إضافة فحوصات جديدة، والعمل مع إضافات OpenGraph، ودليل الإطار العام في الويكي.
pip install -e ".[test]" ثم pytest tests/ -m "not neo4j and not integration" يشغّل اختبارات الإطار السريع دون Neo4j. راجع tests/README.md لمجموعة تجهيزات Neo4j وسير عمل الاختبار المحلي الكامل.
يبني ADPathFinder على البيانات التي جمعتها مشاريع أخرى؛ شكرًا لمؤلفيها وفريق SpecterOps:
| المرحلة | ما يحدث |
|---|
| الاستيعاب (Ingest) | يدمج SharpHound وملفات OpenGraph المدعومة المضغوطة في رسم بياني واحد. بيانات MSSQLHound وConfigManBearPig مدعومة مباشرة |
| رسم الخرائط (Map) | يجد أقصر المسارات من المستخدمين والحواسيب إلى الأهداف عالية القيمة. يمكنك تكوين مجموعة العلاقات لإزالة العلاقات المزعجة مثل HasSession |
| التجميع (Group) | يجمع الحسابات التي تتشارك مسارًا، بحيث تُبلَّغ المسارات المتكررة كنتيجة واحدة بدلًا من نتائج شبه مكررة متعددة |
| المزاوجة (Pair) | يقارن تجزئات NTDS وملفات potfile الخاصة بـ hashcat مع بيانات الرسم البياني لإظهار المسارات القابلة للاستخدام أثناء التقييم |
| الطبقات (Layer) | يبلّغ عن نتائج مستقلة مثل تعطيل توقيع SMB أو المجموعات المميزة الافتراضية، ويرفع مستوى الخطورة عندما يقع نفس المضيف أو المجموعة أيضًا على مسار نحو أهداف عالية القيمة |
| العرض (Render) | يكتب تقارير HTML مع رسوم بيانية SVG للمسارات، وملاحظات التخفيف، وخطوات تحقق عبر PowerShell، وتتبّع حالة المعالجة، إضافةً إلى مخرجات نصية وJSON والتشخيص |
| المخرَج | الغرض |
|---|
<domain>_AD_report.html | تقرير HTML للعملاء مع النتائج المجمّعة، ورسوم المسارات، وملاحظات التخفيف، وخطوات التحقق، وتتبّع حالة المعالجة |
<domain>_domain_audit.txt / <domain>_domain_audit.json | مخرجات تدقيق النطاق النصية وJSON للمراجعة والأتمتة والتحليل اللاحق |
<domain>_password_audit.html / <domain>_password_audit.txt / <domain>_password_audit.json | مخرجات تدقيق كلمات المرور عند توفير تجزئات NTDS وملف potfile خاص بـ hashcat |
<domain>_*_unsafe.* | تقارير غير آمنة اختيارية تُنشأ فقط مع --unsafe-report؛ وقد تتضمن كلمات مرور بنص واضح |
diagnostics.json | إحصائيات تشغيل اختيارية وبيانات تصحيح أخطاء تُنشأ مع --diagnostics |