
AD-PathFinder v1.2.0
رسم خرائط مسارات الهجوم لـ Active Directory وADCS وSCCM وMSSQL باستخدام بيانات BloodHound CE + OpenGraph.
ADPathFinder
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، واسترجاع سياسات نقطة الإدارة |
| عبر النطاقات | علاقات الثقة، كلمات المرور المشتركة، ومسارات التصعيد بين النطاقات |
المتطلبات
- Python 3.9 أو أحدث.
- BloodHound CE وNeo4j متاحان محليًا افتراضيًا على
neo4j://localhost:7687. - بيانات اعتماد واجهة برمجة تطبيقات BloodHound CE لعمليات الاستيراد والحذف.
- ملف zip من BloodHound CE / SharpHound لتغطية تدقيق AD.
- ملفات zip اختيارية لإضافات OpenGraph من MSSQLHound وConfigManBearPig لتغطية MSSQL وSCCM.
- تفريغ تجزئات NTDS اختياري وملف potfile من hashcat لتدقيق كلمات المرور.
البدء السريع
التثبيت من المصدر
git clone https://github.com/NetSPI/AD-PathFinder.git
cd AD-PathFinder
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
تكوين الوصول إلى واجهة برمجة تطبيقات BloodHound
adpathfinder --setup-bloodhound-api
يخزّن هذا إعدادات واجهة برمجة تطبيقات BloodHound CE المستخدمة في عمليات الاستيراد والحذف.
استيراد بيانات SharpHound
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
كيف يعمل
| المرحلة | ما يحدث |
|---|---|
| الاستيعاب (Ingest) | يدمج SharpHound وملفات OpenGraph المدعومة المضغوطة في رسم بياني واحد. بيانات MSSQLHound وConfigManBearPig مدعومة مباشرة |
| رسم الخرائط (Map) | يجد أقصر المسارات من المستخدمين والحواسيب إلى الأهداف عالية القيمة. يمكنك تكوين مجموعة العلاقات لإزالة العلاقات المزعجة مثل HasSession |
| التجميع (Group) | يجمع الحسابات التي تتشارك مسارًا، بحيث تُبلَّغ المسارات المتكررة كنتيجة واحدة بدلًا من نتائج شبه مكررة متعددة |
| المزاوجة (Pair) | يقارن تجزئات NTDS وملفات potfile الخاصة بـ hashcat مع بيانات الرسم البياني لإظهار المسارات القابلة للاستخدام أثناء التقييم |
| الطبقات (Layer) | يبلّغ عن نتائج مستقلة مثل تعطيل توقيع SMB أو المجموعات المميزة الافتراضية، ويرفع مستوى الخطورة عندما يقع نفس المضيف أو المجموعة أيضًا على مسار نحو أهداف عالية القيمة |
| العرض (Render) | يكتب تقارير HTML مع رسوم بيانية SVG للمسارات، وملاحظات التخفيف، وخطوات تحقق عبر PowerShell، وتتبّع حالة المعالجة، إضافةً إلى مخرجات نصية وJSON والتشخيص |
تقرير AD بتنسيق HTML
تقرير تدقيق كلمات المرور بتنسيق HTML
الإعداد
يقرأ ADPathFinder ملف config.ini من دليل العمل. يمكن أيضًا ضبط القيم عبر متغيرات بيئة ADPF_*.
شغّل هذا الأمر لتكوين الوصول إلى واجهة برمجة تطبيقات BloodHound CE لعمليات الاستيراد والحذف:
adpathfinder --setup-bloodhound-api
راجع الإعداد في الويكي لمعرفة جميع الخيارات، وإعدادات اتصال Neo4j، وصلاحيات الملفات، وأمثلة الإعدادات. وراجع العلاقات المستثناة لتصفية مخرجات مسارات الهجوم.
المخرجات
تُكتب التقارير إلى report_<domain>/، على سبيل المثال report_training.local/.
| المخرَج | الغرض |
|---|---|
<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 |
تعامل مع بيانات 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:
- BloodHound CE — بيانات الرسم البياني لـ Active Directory.
- MSSQLHound بقلم Chris Thompson — جمع بيانات MSSQL.
- ConfigManBearPig بقلم Chris Thompson — جمع بيانات SCCM.