
BloodHound द्वारा दिखाए गए Active Directory विशेषाधिकार वृद्धि पथों का स्वचालित रूप से शोषण करने का उपकरण
autobloodyautobloody एक उपकरण है जो BloodHound द्वारा दिखाए गए Active Directory विशेषाधिकार वृद्धि पथों का स्वचालित रूप से दोहन करने के लिए है।
यह उपकरण दो AD ऑब्जेक्ट्स के बीच AD privesc को स्वचालित करता है: स्रोत (जो हमारे पास है) और लक्ष्य (जो हम चाहते हैं), यदि BloodHound डेटाबेस में कोई privesc पथ मौजूद है। स्वचालन दो चरणों में किया जाता है:
bloodyAD पैकेज का उपयोग कर पाए गए पथ को निष्पादित करना।क्योंकि autobloody bloodyAD पर निर्भर है, यह स्पष्ट टेक्स्ट पासवर्ड, पास-द-हैश, पास-द-टिकट या प्रमाणपत्रों का उपयोग कर प्रमाणीकरण का समर्थन करता है और AD privesc करने के लिए डोमेन नियंत्रक की LDAP सेवाओं से बंधता है।
एक पाइथन पैकेज उपलब्ध है:
pip install autobloody
या आप रिपॉजिटरी क्लोन कर सकते हैं:
git clone --depth 1 https://github.com/CravateRouge/autobloody
pip install .
बेहतर प्रदर्शन के लिए, Neo4j में GDS लाइब्रेरी स्थापित होना अनुशंसित है। इसके बिना, autobloody मूल CYPHER क्वेरी का उपयोग करेगा जो धीमी हैं लेकिन फिर भी कार्यात्मक हैं।
GDS प्लगइन के साथ एक हल्का BloodHound वातावरण ./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)
सबसे पहले, Neo4j के GDS लाइब्रेरी में लागू Dijkstra के एल्गोरिदम का उपयोग कर एक privesc पथ पाया जाता है। Dijkstra का एल्गोरिदम एक भारित ग्राफ पर सबसे छोटा पथ समस्या हल करने की अनुमति देता है। डिफ़ॉल्ट रूप से BloodHound द्वारा बनाए गए किनारों का कोई भार नहीं होता, बल्कि एक प्रकार होता है (जैसे MemberOf, WriteOwner)। फिर प्रत्येक किनारे के प्रकार और पहुँचे गए नोड के प्रकार (जैसे उपयोक्ता, समूह, डोमेन) के अनुसार एक भार जोड़ा जाता है।
एक बार पथ उत्पन्न हो जाने के बाद, autobloody DC से कनेक्ट होगा और पथ को निष्पादित करेगा तथा जो कुछ प्रतिवर्ती है (ForcePasswordChange और setOwner को छोड़कर सब कुछ) उसे साफ करेगा।
अभी के लिए, स्वचालित शोषण के लिए केवल निम्नलिखित BloodHound किनारे समर्थित हैं:
क्या यह परियोजना पसंद है? दान का स्वागत है
व्यक्तिगत सहायता चाहिए? प्रशिक्षण या कस्टम सुविधाओं के लिए मुझे ईमेल भेजें।