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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ImproHound — تحديد مسارات الهجوم في BloodHound التي تكسر هيكل طبقات Active Directory الخاص بك. | Kitploit
أدوات/GitHubGitHub/improsec/improhound
تصعيد الامتيازاتتحليل الثغرات الأمنيةجمع المعلوماتاختبار الاختراق
GitHubimprosec/improhound

ImproHound

تحديد مسارات الهجوم في BloodHound التي تكسر هيكل طبقات Active Directory الخاص بك.

عرض المستودع
32836منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

GitHub release (latest SemVer) GitHub all releases

إمبروهند

تحديد مسارات الهجوم في بلدهاوند التي تخترق تسلسل الـ AD الخاص بك

إمبروهند هو تطبيق dotnet مستقل يعمل على نظام ويندوز x64 بواجهة رسومية. لاستخدام إمبروهند، يجب تشغيل SharpHound لجمع البيانات اللازمة من الـ AD. ثم تقوم برفع البيانات إلى تثبيت بلدهاوند الخاص بك. سيتصل إمبروهند بقاعدة بيانات Neo4j الأساسية لـ بلدهاوند. في إمبروهند، ستقوم بتصنيف الـ AD إلى مستويات (tiers) عبر هيكل الوحدات التنظيمية (OU)، وسيقوم إمبروهند بتحديد علاقات الـ AD التي تمكن كائنات الـ AD من اختراق كائن من مستوى أعلى (أقرب إلى الصفر) وحفظ انتهاكات التسلسل في ملف csv.

منشور مدونة إمبروهند

فيديو توضيحي لإمبروهند

عرض إمبروهند في قرية الخصوم في مؤتمر DEF CON

جدول المحتويات
  • التثبيت
  • الاستخدام
  • إرشادات لتصنيف كائنات الـ AD إلى مستويات
  • أحدث إصدارات التبعيات التي تم اختبارها

التثبيت

1. إعداد قاعدة بيانات بلدهاوند الخاصة بك

  1. تثبيت بلدهاوند

  2. جمع بيانات بلدهاوند باستخدام SharpHound في الـ AD الخاص بك

    ملاحظة: سيؤدي ذلك إلى توليد ضوضاء في برنامج الحماية الخاص بك، ونظام SIEM، إلخ.

    مثال: تشغيل SharpHound.exe من موجه الأوامر، جمع الكل (نعم، GPOLocalGroup غير مضمنة في "الكل"):

    root@kitploit:~
    SharpHound.exe --CollectionMethods All,GPOLocalGroup
    

    نصيحة 1: استخدم معامل Domain لجمع البيانات من نطاقات أخرى في الغابة.

    نصيحة 2: للحصول على المزيد من البيانات، استخدم طريقة جمع جلسات التكرار

  3. رفع بيانات بلدهاوند الخاصة بك في واجهة بلدهاوند الرسومية

    يوجد خلل في بلدهاوند يتسبب أحيانًا في تخطي ملف النطاق json عند رفع ملف zip لبيانات بلدهاوند. تحقق من إحصائيات قاعدة البيانات في بلدهاوند بعد رفع البيانات وتأكد من وجود كائنات النطاق.

2. تثبيت إضافة APOC لـ Neo4j (تمكن عمليات الرسم البياني الرائعة التي نحتاجها)

  1. قم بتنزيل APOC الإصدار المطابق لإصدار Neo4j لديك (apoc-x.x.x.x-all.jar).

    ابحث عن إصدار APOC المطابق لإصدار Neo4j في مصفوفة التوافق.

  2. حاول تذكر أين قمت بتثبيت Neo4j وضع ملف APOC jar في: $NEO4J_HOME/plugins/

    • $NEO4J_HOME في لينكس: /var/lib/neo4j/
    • $NEO4J_HOME في ويندوز: تحقق من خدمة Neo4j. ستظهر لك الموقع.
  3. قم بتحرير neo4j.conf في محرر النصوص المفضل لديك للسماح بالوصول غير المقيد إلى APOC عن طريق استبدال السطر: #dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.* بـ dbms.security.procedures.unrestricted=apoc.*

    • neo4j.conf في لينكس: /etc/neo4j/neo4j.conf
    • neo4j.conf في ويندوز: $NEO4J_HOME/conf/neo4j.conf

    إذا كنت ترغب في تشغيل إمبروهند على مضيف و بلدهاوند على آخر، يجب عليك السماح بالاتصالات عن بُعد بقاعدة بيانات Neo4j على مضيف بلدهاوند. للقيام بذلك، قم بإزالة # من السطر #dbms.default_listen_address=0.0.0.0 في neo4j.conf.

3. قم بتنزيل وتشغيل أحدث إصدار من ImproHound.exe في ويندوز (x64)

    تأكد من أنه يمكنك تسجيل الدخول إلى قاعدة بيانات بلدهاوند باستخدام نفس بيانات الاعتماد التي تستخدمها في واجهة بلدهاوند الرسومية.

الاستخدام

الاتصال بقاعدة البيانات

alt text

أدخل بيانات اعتماد قاعدة البيانات وقم بإنشاء اتصال. إنها نفس بيانات الاعتماد التي تستخدمها في واجهة بلدهاوند الرسومية.

المتابعة أو البدء من جديد

alt text

يقوم إمبروهند بإنشاء تسمية 'TierX' على العقد في قاعدة بيانات بلدهاوند. إذا كنت قد استخدمت إمبروهند سابقًا مع قاعدة بيانات بلدهاوند هذه، فسيُطلب منك ما إذا كنت ترغب في المتابعة مع التسلسل الذي أنشأته بالفعل أو البدء من جديد.

التسلسل الافتراضي أو الكل في المستوى 2

alt text

يمنحك إمبروهند خيار تعيين 'التسلسل الافتراضي' والذي سيقوم بتعيين مديري النطاق في المستوى 0، ومستخدمي النطاق في المستوى 2، إلخ، أو تعيين جميع الكائنات في المستوى 2.

هيكل الوحدة التنظيمية (OU)

alt text

هذه هي الصفحة التي ستقوم فيها بتصنيف كائنات الـ AD إلى مستويات. تعرض النافذة هيكل الوحدة التنظيمية. كل كائن من كائنات الـ AD له قيمة مستوى يمكن زيادتها أو تقليلها باستخدام الأسهم.

تعيين الأطفال إلى مستوى

إذا قمت بتحديد نطاق أو حاوية AD، يمكنك النقر على 'تعيين الأطفال إلى مستوى' لتعيين جميع الأطفال (بشكل متكرر) إلى مستوى النطاق/الحاوية المحددة.

تعيين الأعضاء إلى مستوى

إذا قمت بتحديد مجموعة، يمكنك النقر على 'تعيين الأطفال إلى مستوى' لتعيين جميع الأعضاء (بشكل متكرر) إلى مستوى المجموعة المحددة.

تعيين مستوى لسياسات المجموعة (GPOs)

إذا قمت بالنقر على 'تعيين مستوى لسياسات المجموعة'، فسيتم تعيين كل سياسة مجموعة إلى مستوى الوحدة التنظيمية الأعلى مستوى (الأقرب إلى الصفر) التي ترتبط بها سياسة المجموعة. سياسات المجموعة غير المرتبطة بوحدة تنظيمية لن يتغير مستوىها.

الحصول على انتهاكات التسلسل

ابحث عن جميع العلاقات في قاعدة بيانات بلدهاوند حيث يمتلك كائن الـ AD السيطرة على كائن الـ AD من مستوى أعلى (أقرب إلى الصفر).

يتم إنشاء ملفي CSV كخرج:

  • adobjects-[timestamp].csv: جميع كائنات الـ AD والمستوى الذي تنتمي إليه.

  • tiering-violations-[timestamp].csv: انتهاكات التسلسل.

مثال على السجلات في ملف CSV الخاص بالانتهاكات:

السجل الأول هو حساب خدمة من المستوى 1 لديه صلاحية تغيير كلمة مرور حساب مستخدم من المستوى 0. العلاقة موروثة. لسوء الحظ، ليس من الممكن دائمًا رؤية من أين تم توريث العلاقة في بيانات بلدهاوند، ولكن يمكنك التحقق يدويًا من خلال فحص الصلاحيات على كائن الـ AD المستهدف في المستخدمين وأجهزة الكمبيوتر. السجل الثاني هو مجموعة لديها صلاحية تحرير سياسة مجموعة، والتي من المحتمل أن تكون مرتبطة بوحدة تنظيمية تحتوي على خوادم من المستوى 0 لأنها سياسة مجموعة من المستوى 0.

يمكنك الاطلاع على جميع أنواع العلاقات وكيفية استغلالها هنا.

إذا اكتشفت أن كائنًا ما في مستوى مرتفع جدًا (أقرب إلى الصفر)، يجب عليك تصحيحه في إمبروهند، ثم التحقق من وجود انتهاكات باستخدام هذا الكائن كمصدر (SOURCE). إذا كان الكائن في مستوى منخفض جدًا (أقرب إلى اللانهاية)، يجب عليك تصحيحه في إمبروهند والتحقق من وجود انتهاكات باستخدام الكائن كهدف (TARGET).

حذف التسلسل

سيتم حذف جميع تسميات المستويات والعقد التي أنشأها إمبروهند في قاعدة بيانات بلدهاوند.

إرشادات لتصنيف كائنات الـ AD إلى مستويات

من المهم تصنيف كائنات الـ AD بشكل صحيح. إذا قمت بتعيين وحدة تحكم النطاق ومستخدم عادي منخفض الامتياز ككائنات من المستوى 0، فلن يجد إمبروهند أن وصول المسؤول للمستخدم إلى وحدة تحكم النطاق يعد انتهاكًا للتسلسل. نفس الحالة إذا أضفت كليهما إلى المستوى 2.

الكمبيوتر

يتم تصنيف أجهزة الكمبيوتر بناءً على مدى أهمية اختراقها.

  • المستوى 0 – وحدات تحكم النطاق والأنظمة الأخرى المصنفة كحرجة. أنظمة مثل SCCM و ADFS و PKI وخوادم الظاهرية (VMware، Hyper V، إلخ.)
  • المستوى 1 – باقي البنية التحتية للخوادم
  • المستوى 2 – محطات العمل العادية

المستخدم

يتم تصنيف المستخدمين بناءً على أجهزة الكمبيوتر التي يمكنهم تسجيل الدخول إليها وكائنات الـ AD التي يسيطرون عليها. مثال على صلاحية السيطرة يمكن أن يكون مستخدم لديه حقوق تحرير سياسات المجموعة المرتبطة بخوادم من المستوى 1، مما يجعله كائنًا من المستوى 1.

المجموعة

المجموعة تنتمي إلى أدنى مستوى (أقرب إلى اللانهاية) من أعضائها، ما لم تحتوي المجموعة على أعضاء سيئين، على سبيل المثال مستخدم عادي كعضو في مديري النطاق.

أمثلة: مستخدمو النطاق هم مجموعة من المستوى 2 حتى لو كان مستخدمو المستوى 0 الخاصون بك أعضاء في المجموعة لأن العضوية في مستخدمي النطاق هي التي تمنح المستخدمين الامتيازات. من ناحية أخرى، مجموعة مديري النطاق هي مجموعة من المستوى 0 لأن العضوية في هذه المجموعة تجعل المستخدمين مميزين جدًا. وحدات تحكم النطاق القابلة للاستنساخ ليس لديها امتيازات AD حسب علمي، ولكن يجب أن تحتوي فقط على كائنات من المستوى 0 أي وحدات تحكم النطاق، لذا فهي مجموعة من المستوى 0.

الحاوية (بما في ذلك الوحدة التنظيمية والنطاق)

الحاوية تنتمي إلى أعلى مستوى (أقرب إلى الصفر) من كائناتها الفرعية، أو أعلى.

مثال: لديك جميع مستخدمي المستوى 0 والمستوى 1 والمستوى 2 في حاوية المستخدمين. المستخدم الذي لديه صلاحية تحكم كامل على حاوية المستخدمين سيكون قادرًا على اختراق جميع المستخدمين بما في ذلك مستخدمي المستوى 0 (باستثناء بعض المحميين ولكن هذا ليس مهمًا للمثال)، لذلك يجب أن تكون حاوية المستخدمين كائنًا من المستوى 0.

سياسة المجموعة (GPO)

يتم تحديد مستوى سياسة المجموعة من خلال مستوى الوحدات التنظيمية المرتبطة بها. تنتمي سياسة المجموعة إلى أعلى مستوى (أقرب إلى الصفر) من الوحدات التنظيمية المرتبطة بها. استخدم زر 'تعيين مستوى لسياسات المجموعة' للتأكد من أن جميع سياسات المجموعة تتبع هذا المبدأ.

مثال: مستخدم لديه صلاحية تحرير سياسة مجموعة مرتبطة بوحدة تنظيمية من المستوى 1 سيكون قادرًا على التحكم في عضوية المسؤولين على جميع الخوادم الموجودة تحت الوحدة التنظيمية من المستوى 1 عن طريق تعديل سياسة المجموعة.

أحدث إصدارات التبعيات التي تم اختبارها

  • BloodHound 4.2.0
  • Neo4j 4.4.10
  • APOC 4.4.0.8
  • Java/OpenJDK 11.0.16.1 LTS

المهام المستقبلية

  • تصفية GetChanges / GetChangesAll حيثما يوجد واحد فقط.
  • المزيد من المستوى 0 افتراضيًا: RODC (بما في ذلك krbtgt_xxxxxx)، MSOL_، AdminSDHolder، إلخ.
تنزيل الأداة
  • أعد تشغيل Neo4j

    • لينكس: systemctl restart neo4j
    • ويندوز (موجه أوامر): net stop neo4j && net start neo4j (PowerShell: net stop neo4j; net start neo4j)
  • SourceTierSourceTypeSourceNameSourceDistinguishednameRelationIsInheritedTargetTierTargetTypeTargetNameTargetDistinguishedname
    Tier1User[email protected]CN=svc-monitor,CN=Users,DC=hot,DC=localForceChangePasswordTrueTier0User[email protected]CN=T0_JBK,CN=Users,DC=hot,DC=local
    Tier2Group[email protected]CN=Wrk-Admins,CN=Groups,DC=hot,DC=localGenericWriteTier0GPO[email protected]CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=hot,DC=local