المقدمة
كي تكون مسؤول على نظام ولا هاوي أمن معلومات، راك تعرف بلي Active Directory (AD) هو قلب الشبكة عند الشركات. فيه المستخدمين، الصلاحيات، الأجهزة، وكل العلاقات اللي تحكم الشبكة.
لكن واش إذا كانت كاينة صلاحيات مخبّية؟ ولا مستخدم يقدر يوصل لـ Domain Admin بلا ما تكون باينة في الأول؟ هنا يجي دور أداة BloodHound Community Edition (CE).
فهاد المقال، رح نكتشفو كيفاش نستعملو BloodHound CE باش نفهمو العلاقات والصلاحيات الحقيقية داخل AD، خطوة بخطوة، وبأسلوب مبسط وقريب للفهم.
واش هو BloodHound؟
BloodHound هي أداة مفتوحة المصدر تعتمد على نظرية الرسم البياني (Graph Theory) باش توريك ببساطة شكون يقدر يوصل لصلاحيات كبيرة (كيما Domain Admin) داخل Active Directory، حتى لو ما كانتش باينة مباشرة.
يعني ما تبقاش تشوف غير “شكون Administrator” … الأداة توريك “شكون يقدر يولي Admin” عبر مسارات مخفية: مثلاً عندك مستخدم عضو فـ مجموعة، هذي المجموعة عندها صلاحيات على جهاز، والجهاز فيه حساب بصلاحيات أكبر… BloodHound توريك هاد الطريق كامل فالرسم البياني.
BloodHound CE (النسخة المجانية) تعتمد على ingestors (أدوات تجمع الداتا) منها:
SharpHound: الأداة الرسمية اللي تخدم على بيئة Windows، تجمع بزاف أنواع المعلومات من AD.
bloodhound‑python: نسخة Python تعمل في Linux/macOS، تنفع في بعض الحالات الخاصة.
بعض الأدوات الخارجية كـ NetExec يقدرو يدمجو مع BloodHound CE تلقائياً (مثلاً flag –bloodhound) باش يجمعو داتا ويرفعوها مباشرة لـ BloodHound CE بعد ما يكتشفو credentials في الشبكة.
ومن بعد ما تجمع الداتا، BloodHound CE يحللها ويعرضها في واجهة الويب عبر المتصفح
كيفاش يخدم BloodHound؟
BloodHound CE (Community Edition) يخدم على مراحل، كل وحدة عندها دور مهم:
1. جمع البيانات (Ingestion)
باش BloodHound يقدر يحلل الشبكة، لازم أولًا يجمع المعطيات. هاد المهمة تقوم بها أدوات تسمى ingesters. كل وحدة تخدم بطريقة معينة، حسب النظام والبيئة.
أشهر الأدوات:
- SharpHound
أداة رسمية مدمجة مع المشروع، مكتوبة بـ C#. تخدم داخل Windows و Active Directory، وتجمع معلومات مثل:- العضويات في المجموعات
- الجلسات النشطة (sessions)
- صلاحيات الإدارة المحلية (local admin rights)
- ACLs (صلاحيات الوصول)
- BloodHound-python
بديل بلينكس، مكتوب بالبايثون. مفيد في البيئات وين ما تقدرش تستعمل SharpHound، مثلاً أثناء اختبار الاختراق من خارج الدومين أو من نظام غير Windows. - NetExec (خليفة CrackMapExec)
أداة هجومية تدير enumeration فـ Active Directory، وتقدر تولّد ملفات JSON مباشرة متوافقة مع BloodHound (خاصية--bloodhound)، يعني تقدر تستعملها كـ ingester غير رسمي.
كل ingester يصدر الملفات بصيغة JSON، وهذي ترفعهم بعدين للـ BloodHound.
2. رفع البيانات (Upload)
من بعد ما تجمع البيانات، ترفع الملفات (عادة تكون .json.zip) للـ BloodHound CE عبر الواجهة في المتصفح.
3. التحليل والعرض
بعد ما تترفع الملفات، BloodHound CE يقوم بتحليلها وبناء رسم بياني يوضح:
- المسارات للصلاحيات العالية
- علاقات المستخدمين، المجموعات، الأجهزة، والصلاحيات
- السيناريوهات المحتملة للتصعيد (Privilege Escalation)
كل هذا يتعرض في واجهة رسومية سهلة للتنقل والفلترة.
كيفاش تثبّت BloodHound؟
كاين نسختين من BloodHound، لكن حنا نركزو على BloodHound CE (Community Edition) لأنه الأحدث والأسهل في الاستخدام، وفيه واجهة متطورة.
المتطلبات:
- Node.js (v16 أو أكثر)
- Neo4j (قاعدة بيانات الرسم البياني)
- Git (باش تنزّل الريبو)
- نظام تشغيل:
- Linux (Ubuntu مفضّلة)
- macOS (يخدم مليح)
- Windows (أقل مرونة، لكن ممكن)
خطوات التثبيت على Linux (Ubuntu مثال):
1. ثبّت Neo4j:
<code>sudo apt install apt-transport-https
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/neo4j.gpg
echo 'deb https://debian.neo4j.com stable 5' | sudo tee /etc/apt/sources.list.d/neo4j.list
sudo apt update
sudo apt install neo4j
</code>ثم فعّل الخدمة:
<code>sudo systemctl enable --now neo4j<br></code>2. ثبّت Node.js و Yarn:
<code>sudo apt install curl<br>curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -<br>sudo apt install nodejs<br>npm install -g yarn<br></code>3. نزّل BloodHound CE:
<code>git clone https://github.com/BloodHoundAD/BloodHound.git<br>cd BloodHound<br>yarn install<br></code>4. ثبّت القاعدة واستورد البيانات المبدئية:
<code>yarn db:init
</code>5. شغّل BloodHound CE:
<code>yarn dev<br></code>رح يخدم السيرفر على http://localhost:8080
الإعداد بعد التشغيل:
لما تفتح الواجهة، تسجّل الدخول بمعلومات الـ Neo4j (عادة: neo4j / neo4j) وثم يطلب منك تغيّر كلمة السر.
بعدها تقدر ترفع ملفات JSON اللي جمعتها بأداة مثل SharpHound أو NetExec.
. كيفاش تثبّت BloodHound CE في كالي لينكس
إذا راك تستعمل Kali Linux، عندك الحظ: BloodHound CE يجي مُثبّت مسبقًا في أغلب الإصدارات الحديثة. لكن لو ما كانش، تقدر تثبّتو بسهولة كبيرة عبر APT.
التثبيت عبر APT (في حالة ماكانش مثبّت):
<code>sudo apt update<br>sudo apt install bloodhound<br></code>هذا الأمر يثبّت BloodHound CE وكي تكون الحزمة محدثة، تجيك مع واجهتها الجديدة المعتمدة على تقنيات الويب.
Neo4j: قاعدة البيانات الأساسية
BloodHound يحتاج Neo4j باش يخزن ويحلّل العلاقات في Active Directory.
لتثبيتها:
<code>sudo apt install neo4j<br></code>بعد التثبيت، فعّل الخدمة:
<code>sudo systemctl enable --now neo4j<br></code>بعدها تقدر تدخل عبر المتصفح:
http://localhost:7474
الإعداد المبدئي يطلب منك تغيّر كلمة السر (الافتراضية: neo4j / neo4j).
كيف تشغّل BloodHound:
ببساطة:
<code>bloodhound<br></code>تفتح لك واجهة رسومية (Electron-based GUI) وين تقدر تسجّل الدخول ببيانات Neo4j وتبدأ ترفع بياناتك.
كيفاش تحلل العلاقات داخل BloodHound
من بعد ما ترفع الـ .zip اللي فيه بياناتك، BloodHound يحولهم لرسومات بيانية (Graphs) توضح العلاقات بين المستخدمين، المجموعات، الأجهزة، والصلاحيات.
المفاهيم الرئيسية في الواجهة
- Nodes (العُقد): تمثل عناصر مثل Users, Groups, Computers, Domains.
- Edges (العلاقات): تمثل نوع العلاقة (مثلاً: عضو فمجموعة، عنده صلاحيات، …).
أهم Queries (الاستعلامات)
BloodHound يجي مجهّز بـ queries جاهزين يسهلو التحليل، من أشهرهم:
| الاستعلام | واش يدير |
|---|---|
| Find Shortest Paths to Domain Admins | يورّيك أسرع طريق باش توصل لصلاحيات Domain Admin |
| Find Principals with DCSync Rights | يبين المستخدمين لي يقدرو يسحبو الهاشات من الدومين |
| Outbound Control Rights | يوريك شكون يقدر يتحكم في شكون |
أمثلة تحليل:
- خد صلاحيات Domain Admin
شوف أقصر مسار بين مستخدم عادي و Domain Admin. - Privilege Escalation
شوف واش المستخدم يقدر يرقّي صلاحياته عبر جروب ولا ACL. - Path to Computer Admin
تشوف شكون يقدر يتحكم فجهاز معيّن، مثلاً باش تنفذ أمر عن بعد.
الفلاتر و الـ Nodes Info
تقدر تضغط على أي node وتشوف التفاصيل:
- SID
- الجروبات لي تابع ليها
- الأجهزة لي سجل الدخول فيها
- الصلاحيات الخاصة (GenericAll, WriteDacl…)
مثال سيناريو
تدخل بيوزر عادي → تلقى أنه عضو فـ Group معين → هاد الجروب عنده GenericWrite على Computer → الجهاز فيه Session لمستخدم أقوى → تستغل وتسحب صلاحيات.
تحديات CTF فيها BloodHound
كيفاش تدير عمليات تدقيق AD دوريا باستعمال BloodHound CE
الهدف: تستعمل الأداة كما لو كنت مهاجم (بعقلية Red Team)، لكن في بيئة مراقبة وتحت سيطرتك، باش تكتشف المسارات الخطرة وتغلقها قبل ما يستغلّها أي شخص.
1. جدولة جمع البيانات (Ingestion) بشكل منتظم
- استعمل
SharpHound(أوAzureHoundبالنسبة لـ Azure AD) بطريقة دورية، مثلاً مرة كل شهر أو بعد أي تغيير كبير في البنية. - من الأفضل تفعيل جمع الجلسات عبر
-c SessionLoopوتشغيله لبضع دقائق باش تلتقط أكبر عدد من الجلسات الحقيقية.
2. حفظ نتائج SharpHound من كل مرة
- كل ملف ZIP تخرّجو من SharpHound سمّيه بتاريخ واسم الدورة (مثلاً:
sharphound_march2025.zip). - هكذا تقدر ترجع للمقارنات وتشوف التغيرات اللي تطرأ على الصلاحيات والمسارات.
3. تحليل المسارات بين كل دورة
- بعد رفع ملفات ZIP على BloodHound CE، جاوب على أسئلة مثل:
- ما هي أقصر الطرق للوصول إلى Domain Admin؟
- هل ظهرت صلاحيات جديدة مثل
GenericAll,ResetPassword,AddMember,WriteDACL؟ - هل كاين مسارات جديدة ما كانتش من قبل؟
4. وثّق التغيرات وراجعها
- إذا زادت الصلاحيات أو ظهرت مسارات خطيرة جديدة:
- راجع عضويات الجماعات.
- شوف صلاحيات ACL على الـ objects.
- احذف أو قلل من التفويضات اللي فيها خطر.
5. دمج BloodHound مع أدوات دفاعية أخرى
- BloodHound يعطيك مسارات الهجوم، لكن أدوات أخرى مثل PingCastle أو PurpleKnight تساعدك تشوف مشاكل التهيئة، إعدادات GPOs، delegation، إلخ.
- دمج النتائج يعطيك صورة كاملة على السطح الهجومي (attack surface) ويسهل عليك اتخاذ قرارات تصحيحية فعالة.
6. راقب التغييرات بعد عملية التدقيق
حتى بعد ما تستخدم BloodHound وتسد المسارات، من المهم تبقى تراقب التغييرات اللي تصير في الشبكة. إذا كانت عندك أداة مراقبة مركزية (SIEM)، تقدر:
- تربط التنبيهات مع المسارات اللي اكتشفتها.
- تلاحظ سلوك مشبوه (زي user عادي يحاول يوصّل لـ DC).
الهدف؟ تحمي بيئتك حتى بعد ما تغلق الثغرات، لأن الهجمات تتطور.
الخلاصة:
الاستعمال الدوري لـ BloodHound يحولّو من مجرد أداة تحقيق لمكوّن أساسي في استراتيجية الدفاع الداخلية. كل ما زادت دقة التحليل، كل ما نقص احتمال الاختراق.
كيف تستخدم BloodHound في اختبار اختراق حقيقي
خلال CTF أو اختبار اختراق حقيقي داخل بيئة Active Directory، BloodHound يعطيك ميزة واضحة:
- جمع المعلومات (Enumeration): بعد ما تحصل على وصول أولي (مثلاً من خلال phishing أو ثغرة)، تقدر تستعمل أدوات زي
SharpHoundلجمع معلومات عن:- المستخدمين
- المجموعات
- الجهازة (computers)
- الجلسات (sessions)
- الصلاحيات
- رفع الامتيازات (Privilege Escalation): BloodHound يرسم لك الطرق الممكنة للوصول من مستخدم عادي إلى دومين أدمن. مثلاً:
- GPO misconfig
- Session hijack
- ACL abuse
- توسيع الوصول (Lateral Movement): تقدر تحدد الأجهزة اللي عندها users بصلاحيات مهمة وتخطط للتنقل داخل الشبكة.
- التحقق من نجاحك: بعد كل خطوة، ترجع تعيد التجميع وتشوف واش تغير في الخريطة.
BloodHound ما يعطيك “زر سحري”، لكنه يعطيك خريطة مفصلة تخليك تفكر بعقلية المهاجم وتخطط خطواتك بذكاء.
روابط مفيدة
- BloodHound على GitHub (الإصدار المجاني)
- SharpHound – أداة جمع البيانات
- دليل الاستخدام الرسمي لـ BloodHound
عندك شبكة Active Directory؟ جرب BloodHound عليها وشوف شحال من طريق غير مباشر كاين للوصول للـ Domain Admin. فكر كمهاجم، وتصرف كمدقق. جربت BloodHound؟ شاركنا في التعليقات بأكثر حاجة فاجأتك في التحليل ديالك. وعندك اقتراح لموضوع تحب نغطيوه من بعد؟ اكتب رأيك تحت المقال
