
أداة لاستغلال مسارات تصعيد الامتيازات في Active Directory بشكل تلقائي كما تظهرها BloodHound
autobloodyautobloody هي أداة لاستغلال مسارات رفع الامتيازات في Active Directory تلقائياً كما هو موضح في BloodHound.
تقوم هذه الأداة بأتمتة رفع الامتيازات بين كائنين من Active Directory، المصدر (الذي نملكه) والهدف (الذي نريده) إذا كان هناك مسار رفع امتيازات في قاعدة بيانات BloodHound. تتكون الأتمتة من خطوتين:
bloodyADنظرًا لأن autobloody تعتمد على bloodyAD، فهي تدعم المصادقة باستخدام كلمات المرور النصية الصريحة، وتمرير التجزئة (pass-the-hash)، وتمرير التذكرة (pass-the-ticket)، أو الشهادات، وتتصل بخدمات LDAP لوحدة تحكم المجال لتنفيذ رفع الامتيازات في AD.
حزمة بايثون متاحة:
pip install autobloody
أو يمكنك استنساخ المستودع:
git clone --depth 1 https://github.com/CravateRouge/autobloody
pip install .
للحصول على أداء أفضل، يُوصى بتثبيت مكتبة GDS في Neo4j. بدونها، ستستخدم autobloody استعلامات CYPHER الأصلية التي تكون أبطأ ولكنها لا تزال فعالة.
يمكن تثبيت بيئة BloodHound خفيفة مع إضافة GDS عن طريق تشغيل ./bloodhound-ce من https://github.com/CravateRouge/Single-User-BloodHound.
أولاً، يجب استيراد البيانات إلى BloodHound (مثل استخدام SharpHound أو BloodHound.py) ويجب أن يكون Neo4j قيد التشغيل.
⚠️ قيم -ds و -dt حساسة لحالة الأحرف
استخدام بسيط:
autobloody -p 'Password123!' --host 192.168.10.2 -dp 'neo4jP@ss' -ds '[email protected]' -dt 'BLOODY.LOCAL'
المساعدة الكاملة:
[bloodyAD]$ ./autobloody.py -h
usage: autobloody.py [-h] [--dburi DBURI] [-du DBUSER] -dp DBPASSWORD -ds DBSOURCE -dt DBTARGET [-d DOMAIN] [-u USERNAME] [-p PASSWORD] [-k] [-c CERTIFICATE] [-s] --host HOST [-y] [-v] [--timeout TIMEOUT]
AD Privesc Automation
options:
-h, --help show this help message and exit
--dburi DBURI The host neo4j is running on (default is "bolt://localhost:7687")
-du DBUSER, --dbuser DBUSER
Neo4j username to use (default is "neo4j")
-dp DBPASSWORD, --dbpassword DBPASSWORD
Neo4j password to use
-ds DBSOURCE, --dbsource DBSOURCE
Case sensitive label of the source node (name property in bloodhound)
-dt DBTARGET, --dbtarget DBTARGET
Case sensitive label of the target node (name property in bloodhound)
-d DOMAIN, --domain DOMAIN
Domain used for NTLM authentication (optional, default is dbsource domain)
-u USERNAME, --username USERNAME
Username used for NTLM authentication (optional, default is dbsource sAMAccountName)
-p PASSWORD, --password PASSWORD
Cleartext password or LMHASH:NTHASH for NTLM authentication
-k, --kerberos
-c CERTIFICATE, --certificate CERTIFICATE
Certificate authentication, e.g: "path/to/key:path/to/cert"
-s, --secure Try to use LDAP over TLS aka LDAPS (default is LDAP)
--host HOST Hostname or IP of the DC (ex: my.dc.local or 172.16.1.3)
-y, --yes Assume yes to apply the generated privesc
-v, --verbose Enable verbose output (-v for INFO, -vv for DEBUG)
--timeout TIMEOUT Connection timeout in seconds (default is 60)
أولاً، يتم العثور على مسار رفع الامتيازات باستخدام خوارزمية Dijkstra المطبقة في مكتبة GDS الخاصة بـ Neo4j.
تتيح خوارزمية Dijkstra حل مشكلة أقصر مسار في رسم بياني مرجح. افتراضيًا، لا تحتوي الحواف التي أنشأها BloodHound على وزن بل نوع (مثل MemberOf, WriteOwner). ثم يتم إضافة وزن لكل حافة وفقًا لنوع الحافة ونوع العقدة التي تم الوصول إليها (مثل مستخدم، مجموعة، مجال).
بمجرد إنشاء مسار، ستتصل autobloody بوحدة التحكم بالمجال وتنفذ المسار وتنظف ما هو قابل للعكس (كل شيء باستثناء ForcePasswordChange و setOwner).
حاليًا، يتم دعم الحواف التالية فقط من BloodHound للاستغلال التلقائي:
هل يعجبك هذا المشروع؟ التبرعات مرحب بها
هل تحتاج إلى دعم مخصص؟ أرسل لي بريدًا إلكترونيًا للحصول على تدريبات أو ميزات مخصصة.