
GPOHound — Updated!
أداة هجومية لتفريغ وتحليل GPO تستفيد من بيانات BloodHound وتثريها
GPOHound
GPOHound هي أداة لتفريغ وتحليل كائنات نهج المجموعة (GPOs) المستخرجة من مشاركة SYSVOL.
توفر شكلاً منظمًا ورسميًا للمساعدة في كشف الأخطاء في التهيئة والإعدادات غير الآمنة ومسارات رفع الامتيازات في بيئات Active Directory.
تتكامل الأداة مع قاعدة بيانات Neo4j الخاصة بـ BloodHound، وتستخدمها كمصدر يشبه LDAP لمعلومات Active Directory مع إثرائها بإضافة علاقات (حواف) وخصائص عقد جديدة بناءً على التحليل.
المميزات
التفريغ
-
تفريغ GPOs بتنسيق JSON منظم أو تنسيق شجري
-
التعامل مع نطاقات متعددة
-
حل أسماء GPOs مع GUIDs الخاصة بها
-
تصفية المخرجات حسب ملفات GPO وGUIDs الخاصة بالنطاق
-
البحث في أزواج المفاتيح/القيم باستخدام regex
التحليل
-
تجميع الإعدادات حسب الكائن المتأثر (مثلاً: المجموعات المحلية، السجل)
-
كشف الأعضاء المضافين إلى المجموعات المحلية المميزة
-
كشف إعدادات السجل غير الآمنة، وبيانات الاعتماد المخزنة، وحقوق الامتياز
-
دعم فك تشفير بيانات اعتماد VNC وكلمات مرور GPP
-
العثور على النطاقات والحاويات ووحدات التنظيم المتأثرة بـ GPOs
-
الحصول على GPOs المطبقة على مستخدم أو جهاز كمبيوتر أو وحدة تنظيم أو حاوية أو نطاق معين
-
إثراء بيانات BloodHound بالعلاقات والخصائص
التثبيت
التثبيت باستخدام pip
git clone "https://github.com/cogiceo/GPOHound"
cd GPOHound
pip install .
التثبيت باستخدام pipx
pipx install "git+https://github.com/cogiceo/GPOHound"
إعداد APOC لـ Neo4j
تحتاج إلى إعداد APOC الخاص بـ Neo4j لإثراء بيانات BloodHound:
-
إذا كنت تستخدم تثبيت Neo4j القياسي، يمكنك تمكين APOC عن طريق نسخ ملف
jarالخاص بـ APOC إلى مجلد الإضافات ثم إعادة تشغيل Neo4j:cp /var/lib/neo4j/labs/apoc-* /var/lib/neo4j/plugins/ neo4j restart -
إذا كنت تقوم بتثبيت Neo4j باستخدام "Docker Compose"، أضف متغير البيئة
NEO4J_PLUGINS=["apoc"]:neo4j: image: neo4j:latest environment: - NEO4J_PLUGINS=["apoc"]
لمزيد من التفاصيل أو طرق التثبيت البديلة، راجع وثائق APOC الرسمية.
إضافة استعلامات BloodHound
لتصور العلاقات والخصائص التي أضافها GPOHound، يمكنك استيراد الاستعلامات المخصصة من ملف customqueries.json إلى BloodHound. بشكل افتراضي، يقع هذا الملف في ~/.config/bloodhound/customqueries.json.
المتطلبات الأساسية
تفريغ SYSVOL
ابدأ بتنزيل محتويات SYSVOL من وحدة تحكم النطاق.
-
تنزيل كامل
SYSVOL:gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD -
تنزيل GPOs فقط:
gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD --gpos -
تنزيل مع استثناءات:
gpohound sysvol --dc $DC_HOST -u $USER -p $PASSWORD --exclude '/Policydefinitions/','/scripts/' --max-size 100
تفريغ LDAP
استرداد جميع البيانات المطلوبة من LDAP:
gpohound ldap --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD
BloodHound
لإثراء بيانات BloodHound، يجب جمع بيانات BloodHound باستخدام أداة تجميع مثل bloodhound.py أو SharpHound.exe ثم استيراد البيانات المجمعة إلى واجهة BloodHound.
الاستخدام
تتوفر ملفات GPOHound نموذجية في example.zip. قم باستخراجها باستخدام unzip example.zip.
انظر إلى CONFIG.md للحصول على تعليمات حول تخصيص القيم الافتراضية والتكوينات.
gpohound --neo4j-user $USER --neo4j-pass $PASS dump
gpohound --neo4j-user $USER --neo4j-pass $PASS analysis
التحليل
gpohound parse "gpos/sysvols/$DOMAIN/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol"
التفريغ
gpohound dump
gpohound dump --list
gpohound dump --guid 31B2F340-016D-11D2-945F-00C04FB984F9
gpohound dump --policies scripts psscripts
gpohound dump --search 'VNC.*Server' --show
التحليل
gpohound analysis
gpohound analysis --affected
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL'
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --list
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --dump
gpohound analysis --enrich
gpohound analysis --enrich-ce
التحليل والإثراء الحالي
[!مهم]
- لا يتم تفسير شروط مثل عوامل التصفية الأمنية وعوامل تصفية WMI والاستهداف على مستوى العنصر.
- لا يتم محاكاة تعارضات GPO، لتجنب فقدان الإعدادات الصالحة.
المجموعات المحلية
-
كشف المستخدمين المعينين للمجموعات المحلية المميزة أثناء تسجيل الدخول
-
كشف المجموعات المحلية المميزة المضمنة التي تمت إعادة تسميتها.
-
كشف الأمناء المضافين إلى المجموعات المحلية المميزة باستخدام "متغيرات عملية التفضيل" (مثل %ComputerName%, %DomainName%)
-
كشف الأمناء القابلين للاستغلال باستخدام اختطاف
sAMAccountName -
كشف أي أمناء مضافين إلى المجموعات المحلية المميزة:
المجموعة الحافة المسؤولون (Administrators) AdminToمستخدمو سطح المكتب البعيد (Remote Desktop Users) CanRDPمستخدمو COM الموزع (Distributed COM Users) ExecuteDCOMمستخدمو الإدارة عن بُعد (Remote Management Users) CanPSRemoteمشغلو النسخ الاحتياطي (Backup Operators) CanPrivEscمشغلو الطباعة (Print Operators) CanPrivEscمشغلو تكوين الشبكة (Network Configuration Operators) CanPrivEsc
السجل
| التحليل | الخاصية |
|---|---|
| مجموعة "الجميع" تشمل "تسجيل الدخول المجهول" | — |
| توقيع جلسة خادم SMB غير ممكّن | smbSigningEnabled: false |
| توقيع جلسة خادم SGB غير مطلوب | smbSigningRequired: false |
| مصادقة NTLMv1 مدعومة | NTLMv1Support: true |
| كلمة مرور تسجيل الدخول التلقائي الافتراضية لنظام Windows | — |
| بيانات اعتماد VNC (عامة: RealVNC, TightVNC, TigerVNC، إلخ.) | *VNC*PASS* (متنوعة) |
| كلمات مرور FileZilla المخزنة | — |
| كلمة مرور وكيل PuTTY | — |
| بيانات اعتماد TeamViewer المخزنة | — |
| جلسات WinCP المحفوظة | — |
| كلمة مرور Picasa المخزنة | — |
الحقوق المميزة
يتم استبعاد الأمناء المميزين الافتراضيين، بالإضافة إلى حسابات الخدمة التي تبدأ SIDs الخاصة بها بـ S-1-5-8، من التحليل.
| الامتياز | الوصف | الحافة |
|---|---|---|
| SeDebugPrivilege | يسمح للمستخدم بتصحيح التفاعل مع أي عملية | CanPrivEsc |
| SeBackupPrivilege | يمنح الوصول إلى الملفات الحساسة | CanPrivEsc |
| SeRestorePrivilege | يتجاوز أذونات الكائن أثناء الاستعادة | CanPrivEsc |
| SeAssignPrimaryTokenPrivilege | يمكّن من انتحال الرمز لرفع الامتياز إلى SYSTEM | CanPrivEsc |
| SeImpersonatePrivilege | يسمح بإنشاء عملية تحت سياق مستخدم آخر | CanPrivEsc |
| SeTakeOwnershipPrivilege | يسمح للمستخدمين بالحصول على ملكية كائنات النظام | CanPrivEsc |
| SeTcbPrivilege | يمنح القدرة على العمل كجزء من نظام التشغيل | CanPrivEsc |
| SeCreateTokenPrivilege | يسمح بإنشاء رموز المصادقة | CanPrivEsc |
| SeLoadDriverPrivilege | يخوّل تحميل/إلغاء تحميل برامج التشغيل | CanPrivEsc |
| SeManageVolumePrivilege | يمنح امتيازات إدارة الأقراص أو الأحجام | CanPrivEsc |
| SeEnableDelegationPrivilege | يمكّن حسابات الكمبيوتر والمستخدم من أن تكون موثوقة للتفويض |
التحسين
- تحسين التسجيل
- دمج LDAP
- دمج SMB
- تحليل الامتدادات المتبقية
- واجهة ويب
- إبراز التعارضات المحتملة بين GPOs
وثائق GPO
SYSVOL و LDAP
- [MS-GPAC] امتداد تهيئة التدقيق
- [MS-GPCAP] امتداد بروتوكول سياسات الوصول المركزية
- [MS-GPEF] امتداد نظام تشفير الملفات
- [MS-GPFAS] بنية بيانات جدار الحماية والأمان المتقدم
- [MS-GPFR] امتداد بروتوكول إعادة توجيه المجلدات
- [MS-GPIE] امتداد صيانة Internet Explorer
- [MS-GPNAP] امتداد حماية الوصول إلى الشبكة (NAP)
- [MS-GPNRPT] امتداد بيانات جدول سياسة تحليل الأسماء (NRPT)
- [MS-GPOL] البروتوكول الأساسي
- [MS-GPPREF] بنية بيانات امتداد التفضيلات
- [MS-GPREG] تشفير امتداد السجل
- [MS-GPSB] امتداد بروتوكول الأمان
- [MS-GPSCR] تشفير امتداد البرامج النصية
- [MS-GPSI] امتداد بروتوكول تثبيت البرامج
LDAP فقط
- [MS-GPDPC] امتداد توصيلات الطابعة المنشورة
- [MS-GPWL] امتداد بروتوكول الاتصالات اللاسلكية/السلكية