
رسم خرائط مسارات الهجوم لـ Active Directory وADCS وSCCM وMSSQL باستخدام بيانات BloodHound CE + OpenGraph.
# ADPathFinder
[](https://github.com/NetSPI/AD-PathFinder/actions/workflows/test.yml)
ADPathFinder هي أداة لرسم خرائط الهجمات موجّهة لمختبري الاختراق وفرق الاختبار الأحمر. تحلّل بيانات SharpHound وتوحّدها مع إضافات OpenGraph لكشف مسارات الهجوم نحو الأهداف عالية القيمة مثل مسؤولي النطاق (Domain Admins) ووحدات تحكم النطاق (Domain Controllers)، انطلاقًا من المستخدمين والحواسيب منخفضة الامتيازات. MSSQLHound وConfigManBearPig مدعومان بشكل أصلي، ما يوسّع التغطية عبر AD وADCS وSCCM وMSSQL.
> **المدونة:** [رسم خرائط مسارات الهجوم عبر OpenGraph في BloodHound CE](https://www.netspi.com/blog/technical-blog/network-pentesting/adpathfinder-opengraph-attack-path-mapping-in-bloodhound-ce/)
<p align="center">
<a href="https://github.com/netspi/ad-pathfinder/blob/main/docs/images/demo-slideshow.mp4">
<img src="https://assets.kitploit.com/production/public/readmes/35238/da8b4155e654c3272e19b1158bbaa3bc4632356196ea17dae76a4ad0c51aa3c0.webp" alt="عرض توضيحي لواجهة أوامر ADPathFinder يُظهر نتائج المخاطر المجمّعة ومسارات الهجوم" width="850">
</a>
</p>
**انتقل إلى:** [البدء السريع](#quickstart) · [التغطية](#coverage) · [كيف يعمل](#how-it-works) · [المخرجات](#outputs) · [الإعداد](#configuration) · [المساهمون](#contributors)
## التغطية
| المجال | أمثلة |
| --- | --- |
| 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 لتدقيق كلمات المرور.
## البدء السريع
<details open>
<summary><strong>التثبيت من المصدر</strong></summary>
```bash
git clone https://github.com/NetSPI/AD-PathFinder.git
cd AD-PathFinder
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```
</details>
<details>
<summary><strong>تكوين الوصول إلى واجهة برمجة تطبيقات BloodHound</strong></summary>
```bash
adpathfinder --setup-bloodhound-api
```
يخزّن هذا إعدادات واجهة برمجة تطبيقات BloodHound CE المستخدمة في عمليات الاستيراد والحذف.
</details>
<details>
<summary><strong>استيراد بيانات SharpHound</strong></summary>
```bash
adpathfinder --import SharpHound.zip
```
يمكن استيراد ملفات SharpHound وملفات إضافات OpenGraph المضغوطة المتعددة في أمر واحد:
```bash
adpathfinder --import SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip
```
</details>
<details>
<summary><strong>استيراد البيانات وتشغيل تدقيق كامل</strong></summary>
```bash
adpathfinder -i SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
```
استخدم ملفات zip المتوفرة لديك فقط. قيمة `--pwd` ليست نطاق AD؛ بل قائمة مفصولة بفواصل من مصطلحات الشركة أو العلامة التجارية أو المؤسسة لوضع علامة عليها ضمن كلمات المرور المكسورة.
</details>
<details>
<summary><strong>تشغيل تدقيق نطاق</strong></summary>
```bash
adpathfinder --ad
```
</details>
<details>
<summary><strong>تشغيل تدقيق كلمات المرور</strong></summary>
```bash
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
```
استخدم `--unsafe-report` فقط عندما يجب أن تتضمن التقارير كلمات مرور بنص واضح.
</details>
<details>
<summary><strong>كتابة بيانات التشخيص</strong></summary>
```bash
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile --diagnostics
```
</details>
## كيف يعمل
| المرحلة | ما يحدث |
| --- | --- |
| **الاستيعاب (Ingest)** | يدمج SharpHound وملفات OpenGraph المدعومة المضغوطة في رسم بياني واحد. بيانات MSSQLHound وConfigManBearPig مدعومة مباشرة |
| **رسم الخرائط (Map)** | يجد أقصر المسارات من المستخدمين والحواسيب إلى الأهداف عالية القيمة. يمكنك [تكوين مجموعة العلاقات](https://github.com/NetSPI/AD-PathFinder/wiki/Excluded-Relationships) لإزالة العلاقات المزعجة مثل `HasSession` |
| **التجميع (Group)** | يجمع الحسابات التي تتشارك مسارًا، بحيث تُبلَّغ المسارات المتكررة كنتيجة واحدة بدلًا من نتائج شبه مكررة متعددة |
| **المزاوجة (Pair)** | يقارن تجزئات NTDS وملفات potfile الخاصة بـ hashcat مع بيانات الرسم البياني لإظهار المسارات القابلة للاستخدام أثناء التقييم |
| **الطبقات (Layer)** | يبلّغ عن نتائج مستقلة مثل تعطيل توقيع SMB أو المجموعات المميزة الافتراضية، ويرفع مستوى الخطورة عندما يقع نفس المضيف أو المجموعة أيضًا على مسار نحو أهداف عالية القيمة |
| **العرض (Render)** | يكتب تقارير HTML مع رسوم بيانية SVG للمسارات، وملاحظات التخفيف، وخطوات تحقق عبر PowerShell، وتتبّع حالة المعالجة، إضافةً إلى مخرجات نصية وJSON والتشخيص |
<p align="center">
<img src="https://raw.githubusercontent.com/netspi/ad-pathfinder/HEAD/docs/images/workflow.svg" alt="مخطط سير عمل ADPathFinder" width="850">
</p>
## تقرير AD بتنسيق HTML
<p align="center">
<a href="https://github.com/netspi/ad-pathfinder/blob/main/docs/images/ad-report-slideshow.mp4">
<img src="https://assets.kitploit.com/production/public/readmes/35238/039c3cda9d34b24185b439d441359ed63a5b4f03002d400a88a8fbf04717c98c.webp" alt="جولة في تقرير AD الصادر عن ADPathFinder تعرض نظرة عامة وخطوات التخفيف وخطوات التأكيد" width="850">
</a>
</p>
## تقرير تدقيق كلمات المرور بتنسيق HTML
<p align="center">
<a href="https://github.com/netspi/ad-pathfinder/blob/main/docs/images/password-audit-slideshow.mp4">
<img src="https://assets.kitploit.com/production/public/readmes/35238/0d3b193537b32399c070e2f2caf32c8de6149ee267dfaa497a0c7b500f8f987d.webp" alt="جولة في تقرير تدقيق كلمات المرور الصادر عن ADPathFinder تعرض الفئات المكسورة والامتثال للسياسات وأطوال كلمات المرور والحسابات القابلة لـ roasting" width="850">
</a>
</p>
## الإعداد
يقرأ ADPathFinder ملف `config.ini` من دليل العمل. يمكن أيضًا ضبط القيم عبر متغيرات بيئة `ADPF_*`.
شغّل هذا الأمر لتكوين الوصول إلى واجهة برمجة تطبيقات BloodHound CE لعمليات الاستيراد والحذف:
```bash
adpathfinder --setup-bloodhound-api
```
راجع [الإعداد](https://github.com/NetSPI/AD-PathFinder/wiki/Configuration) في الويكي لمعرفة جميع الخيارات، وإعدادات اتصال Neo4j، وصلاحيات الملفات، وأمثلة الإعدادات. وراجع [العلاقات المستثناة](https://github.com/NetSPI/AD-PathFinder/wiki/Excluded-Relationships) لتصفية مخرجات مسارات الهجوم.
## المخرجات
تُكتب التقارير إلى `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/`](https://github.com/netspi/ad-pathfinder/blob/main/sample_reports) للحصول على نماذج من مخرجات تدقيق النطاق وتدقيق كلمات المرور.
## المساهمون
الفحوصات عبارة عن أصناف (classes) صغيرة تُسجَّل عبر مُزيِّن (decorator)، وتُعلن متطلبات بياناتها، وتُعيد قواميس نتائج. تُعلن فحوصات المنصات مصدر بياناتها، لذا تتخطى تدقيقات AD العادية فحوصات MSSQL أو SCCM عندما لا تتوفر بيانات OpenGraph المطابقة.
راجع [إضافة فحوصات جديدة](https://github.com/NetSPI/AD-PathFinder/wiki/Adding-New-Checks)، و[العمل مع إضافات OpenGraph](https://github.com/netspi/ad-pathfinder/blob/main/docs/OPENGRAPH.md)، و[دليل الإطار العام](https://github.com/NetSPI/AD-PathFinder/wiki/Framework-Guide) في الويكي.
### الاختبارات
`pip install -e ".[test]"` ثم `pytest tests/ -m "not neo4j and not integration"` يشغّل اختبارات الإطار السريع دون Neo4j. راجع [`tests/README.md`](https://github.com/netspi/ad-pathfinder/blob/main/tests/README.md) لمجموعة تجهيزات Neo4j وسير عمل الاختبار المحلي الكامل.
## شكر وتقدير
يبني ADPathFinder على البيانات التي جمعتها مشاريع أخرى؛ شكرًا لمؤلفيها وفريق SpecterOps:
- [BloodHound CE](https://github.com/SpecterOps/BloodHound) — بيانات الرسم البياني لـ Active Directory.
- [MSSQLHound](https://github.com/SpecterOps/MSSQLHound) بقلم Chris Thompson — جمع بيانات MSSQL.
- [ConfigManBearPig](https://github.com/SpecterOps/ConfigManBearPig) بقلم Chris Thompson — جمع بيانات SCCM.