
BloodHound के लिए उपकरणों का सूट जो डोमेन पासवर्ड ऑडिटिंग, विशेषाधिकार पथ विश्लेषण, एज मैनिपुलेशन और कस्टम Cypher क्वेरीज़ को सक्षम बनाता है ताकि एक्टिव डायरेक्ट्री अटैक सरफेस मैपिंग को अधिकतम किया जा सके।
नया रिलीज़:
एक सरल टूल सूट:
यह निम्नलिखित ब्लॉगों पर स्क्रीनशॉट और उपयोग-मामलों के साथ जारी किया गया था: Max Release, Updates & Primitives और DPAT
मेरे शोध के दौरान इस टूल में एक नया संभावित आक्रमण प्रिमिटिव जोड़ा गया था, पूर्ण विवरण के लिए add-spns अनुभाग देखें।
आदर्श रूप में, स्थापित करने के लिए बहुत कुछ नहीं होना चाहिए, लेकिन मैंने बस मामले में एक requirements.txt फ़ाइल शामिल की है। Kali Linux और Windows 10 पर परीक्षण किया गया, सभी कार्यक्षमता लिनक्स और विंडोज ऑपरेटिंग सिस्टम दोनों के लिए काम करनी चाहिए।
pip3 install -r requirements.txt
Neo4j क्रेडेंशियल्स को स्क्रिप्ट की शुरुआत में हार्डकोड किया जा सकता है, उन्हें CLI तर्कों के रूप में प्रदान किया जा सकता है, या पर्यावरण चर के रूप में संग्रहीत किया जा सकता है। यदि कोई भी पैरामीटर खाली छोड़ दिया जाता है, तो आपको उपयोगकर्ता नाम/पासवर्ड के लिए संकेत दिया जाएगा। पर्यावरण चर का उपयोग करने के लिए, शायद ~/.bashrc या ~/.zshrc में एक पंक्ति जोड़ना सबसे आसान है (जैसे, export NEO4J_USERNAME='neo4j') ताकि उपयोगकर्ता नाम संग्रहीत हो सके क्योंकि यह वास्तव में संवेदनशील नहीं है। डेटाबेस पासवर्ड Max चलाने से पहले आपके शेल के टैब के भीतर सेट किया जा सकता है। एक्सपोर्ट कमांड से पहले एक स्पेस जोड़ने से इसे इतिहास में प्रकट होने से रोका जा सकता है।
export NEO4J_PASSWORD='bloodhound' # 'export' से पहले व्हाइटस्पेस पर ध्यान दें
python3 max.py {module} {args}
python3 max.py -u neo4j -p neo4j {module} {args}
python3 max.py {module} {args}
Neo4j Username: neo4j
Neo4j Password:
सामान्य रूप से और मॉड्यूल विशिष्ट रूप से सहायता प्राप्त करना
python3 max.py -h
python3 max.py {module} -h
स्वामित्व वाली वस्तुओं को BH में आयात करना
python3 max.py mark-owned -f owned.txt
python3 max.py mark-owned -f owned.txt --add-note "Owned by repeated local admin"
उपयोगकर्ताओं की सूची प्राप्त करें
python3 max.py get-info --users
python3 max.py get-info --users --enabled
[email protected]
[email protected]
...
लक्ष्य समूह में वस्तुओं की सूची प्राप्त करें
python3 max.py get-info --group-members "domain [email protected]"
एक उपयोगकर्ता के पास प्रशासनिक अधिकारों वाले कंप्यूटरों की सूची प्राप्त करें
python3 max.py get-info --adminto [email protected]
प्रत्येक के नोट्स के साथ स्वामित्व वाली वस्तुओं की सूची प्राप्त करें
python3 max.py get-info --owned --get-note
क्वेरी चलाना - DA तक पथ वाले सभी उपयोगकर्ताओं की सूची लौटाएं
python3 max.py query -q "MATCH (n:User),(m:Group {name:'DOMAIN [email protected]'}) MATCH (n)-[*1..]->(m) RETURN DISTINCT(n.name)"
डेटाबेस से एक एज हटाएं
python3 max.py del-edge CanRDP
HasSPNConfigured संबंध जोड़ें, BloodHound में संग्रहीत जानकारी का उपयोग करके, या GetUserSPNs impacket फ़ाइल के साथ
python3 max.py add-spns -b
python3 max.py add-spns -i getuserspns-raw-output.txt
DPAT
python3 max.py dpat -n ~/client/ntds.dit -c ~/.hashcat/hashcat.potfile -o ouputdir --html --sanitize
Pet max
python3 max.py pet-max
फ़ाइल में वस्तुओं में FQDN होना चाहिए, केस संवेदनशील नहीं है। यह तब भी लागू होता है जब CLI उपयोगकर्ता नाम/कंप्यूटर नाम प्रदान किया जाता है।
[email protected] <- जोड़ा जाएगा / सही CLI इनपुट
[email protected] <- जोड़ा जाएगा / सही CLI इनपुट
computer01.domain.local <- जोड़ा जाएगा / सही CLI इनपुट
ComPutEr01.doMAIn.LOcaL <- जोड़ा जाएगा / सही CLI इनपुट
user02 <- नहीं जोड़ा जाएगा / गलत CLI इनपुट
computer02 <- नहीं जोड़ा जाएगा / गलत CLI इनपुट
मैं उम्मीद करता हूँ कि PlumHound/Cypheroth के समान कुछ कार्यक्षमता प्रदान करने के लिए एक analyze फ़ंक्शन शामिल करूँ। अंत में, Windows पर Neo4j चलाने वालों के लिए एक Powershell संस्करण बनाने के बारे में सोच रहा हूँ, लेकिन मैं Powershell में कचरा हूँ, इसलिए TBD। कोई भी अन्य सुविधाएँ और सुधार स्वागत योग्य हैं, मुझे BloodHoundGang Slack चैनल और Twitter पर @knavesec खोजें।
मैं विशेष रूप से उन लोगों का धन्यवाद करना चाहता हूँ जिन्होंने इस टूल के विकास और सुधार में अपना समय दिया है: