
صدفة سطر أوامر تفاعلية لواجهة BloodHound API.
صدفة سطر أوامر تفاعلية لـ BloodHound. ابحث عن كائنات Active Directory، وتقصَّ عن نقاط الضعف واعثر على مسارات الهجوم من الطرفية، دون فتح واجهة الويب.
يتطلب Python 3.11+ وخادم BloodHound CE v9 (تم اختباره على v9.7.1).
pipx install bhshell # recommended
# or
pip install bhshell
$ bhshell --url http://127.0.0.1:8080
[bh: shell] > login -u admin
[+] Logged in as admin on 127.0.0.1:8080
[bh: shell] > hunt
Severity Check Count Example Description
critical dcsync 2 [email protected] Non-Tier-Zero principals with replication rights
high kerberoastable 2 [email protected] Kerberoastable users
...
[*] Details: 'hunt CHECK' (e.g. 'hunt kerberoastable'), or 'hunt --all'.
[bh: shell] > user CORP\svc_sql --all -o svc_sql.csv
[bh: shell] > path --owned -g
يمكن تشغيل الأوامر نفسها بشكل غير تفاعلي للبرمجة النصية: bhshell -c "hunt --json" > hunt.json.
| الأمر | يعرض |
|---|---|
user، computer، group، lookup | قابلية Kerberoasting / AS-REP roasting، والتفويض، وعمر كلمة المرور، وعلامات Tier Zero والمملوكة، بالإضافة إلى تداخل المجموعات، والتحكم الوارد/الصادر عبر ACL، والجلسات وحقوق المسؤول المحلي |
search | الكائنات المطابقة لمرشحات الخصائص (search -t user hasspn enabled)، مع التواريخ والأعمار (90d) وأحرف البدل |
path | أقصر المسارات إلى هدف أو إلى Tier Zero، من كل ما تملكه، أو عبر خطوات --via؛ تُطبع كسلاسل قفزات، أو رسم بياني طرفي، أو SVG/PNG للتقارير |
hunt | فحوصات على مستوى النطاق حسب الخطورة: DCSync، والتحكم في Tier Zero، وAD CS (ESC*)، وKerberoasting، والجلسات ذات الامتيازات، وقارئات LAPS/gMSA، وكلمات المرور في الخصائص، وأساسيات الاستيلاء (Shadow Credentials، RBCD)، والتحكم في GPO، وNTLM relay، والثقات، ورموز honeytoken المحتملة...؛ يحدّها hunt --owned على ما يمكن للكائنات التي تملكها فعله |
cypher، query | Cypher الخام، ومكتبة من الاستعلامات المحفوظة: المضمّنة، وملفات .cyp الخاصة بك (~/.bhshell/queries/ أو أي مجلد يُضبط بـ config query_dirs) وتلك المحفوظة على الخادم |
owned، hvt | وضع أو إزالة علامات الكائنات المملوكة وTier Zero |
domains، trusts | الإحصاءات لكل نطاق، وخريطة الثقات مع حالة تصفية SID |
لإضافة استعلامك الخاص، احفظه كملف .cyp في ~/.bhshell/queries/ وشغّله بالاسم:
$ cat ~/.bhshell/queries/stale-admins.cyp
// description: Enabled adminCount users who have not logged on for a year
MATCH (u:User) WHERE u.admincount = true AND u.enabled = true
AND u.lastlogontimestamp < (datetime().epochseconds - 31536000) RETURN u
[bh: shell] > query run stale-admins -o stale-admins.csv
راجع مكتبة الاستعلامات للتعرّف على التنسيق وللاحتفاظ بالاستعلامات في مجلدات أخرى (مستودع فريق، مجلد واحد لكل مهمة).
معظم الأوامر تقبل --json و-o FILE (JSON أو CSV). يعمل تسجيل الدخول بكلمة مرور (مع MFA) أو
برمز API؛ تُطلب الأسرار أو تُقرأ من البيئة، ولا تُمرَّر أبدًا كوسائط.
دليل الاستخدام الكامل (كل أمر، وعلامة عرض، ومرشح بحث، وخيار مسار، وفحص hunt،
وإعداد تهيئة) موجود في docs/USAGE.md.
داخل الصدفة، شغّل help أو help <command>.
تقارير الأخطاء وطلبات السحب مرحّب بها في github.com/kr0no/bloodhound-shell/issues.
git clone https://github.com/kr0no/bloodhound-shell.git
cd bloodhound-shell
python3 -m venv .venv && . .venv/bin/activate
pip install -e '.[dev]'
python -m pytest
تحاكي الاختبارات واجهة BloodHound API باستخدام responses، لذا لا حاجة إلى خادم BloodHound.
موزَّع تحت ترخيص MIT. راجع LICENSE للتفاصيل.
BloodHound علامة تجارية لـ SpecterOps. bhshell مشروع مستقل وليس تابعًا لـ SpecterOps ولا معتمدًا منه.