
BloodHound API के लिए एक इंटरैक्टिव कमांड-लाइन शेल।
BloodHound के लिए एक इंटरैक्टिव कमांड-लाइन शेल। वेब UI खोले बिना, टर्मिनल से ही Active Directory ऑब्जेक्ट्स को खोजें, कमजोरियों की तलाश करें और अटैक पाथ खोजें।
Python 3.11+ और एक BloodHound CE v9 सर्वर आवश्यक है (v9.7.1 पर परीक्षण किया गया)।
pipx install bhshell # अनुशंसित
# या
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 | Kerberoastable / AS-REP roastable, delegation, पासवर्ड आयु, Tier Zero और owned फ़्लैग, साथ ही ग्रुप नेस्टिंग, इनबाउंड/आउटबाउंड ACL नियंत्रण, सेशन और लोकल एडमिन अधिकार |
search | प्रॉपर्टी फ़िल्टर से मेल खाने वाले ऑब्जेक्ट्स (search -t user hasspn enabled), तारीखों, आयु (90d) और वाइल्डकार्ड के साथ |
path | किसी लक्ष्य या Tier Zero तक के सबसे छोटे पाथ, सभी owned ऑब्जेक्ट्स से, या --via चरणों के माध्यम से; हॉप चेन, टर्मिनल ग्राफ़, या रिपोर्ट के लिए SVG/PNG के रूप में प्रिंट होते हैं |
hunt | गंभीरता के अनुसार डोमेन-व्यापी जाँचें: DCSync, Tier Zero का नियंत्रण, AD CS (ESC*), Kerberoasting, विशेषाधिकार प्राप्त सेशन, LAPS/gMSA रीडर, एट्रिब्यूट में पासवर्ड, टेकओवर प्रिमिटिव (Shadow Credentials, RBCD), GPO नियंत्रण, NTLM relay, trusts, संभावित honeytokens...; hunt --owned इन्हें उन्हीं तक सीमित करता है जो आपके owned ऑब्जेक्ट्स कर सकते हैं |
cypher, query | रॉ Cypher, और सहेजे गए क्वेरीज़ की लाइब्रेरी: बंडल किए गए, आपके स्वयं के .cyp फ़ाइलें (~/.bhshell/queries/ या config query_dirs से सेट कोई भी फ़ोल्डर) और सर्वर पर सहेजे गए क्वेरीज़ |
owned, hvt | owned और Tier Zero ऑब्जेक्ट्स को मार्क या अनमार्क करें |
domains, trusts | प्रति-डोमेन गणना, और SID फ़िल्टरिंग स्थिति के साथ trust मैप |
अपनी खुद की क्वेरी जोड़ने के लिए, इसे ~/.bhshell/queries/ में .cyp फ़ाइल के रूप में सहेजें और नाम से चलाएँ:
$ 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
फ़ॉर्मेट के लिए और क्वेरीज़ को अन्य फ़ोल्डरों में रखने के लिए (एक टीम रिपॉज़िटरी, प्रति एंगेजमेंट एक फ़ोल्डर) Query library देखें।
अधिकांश कमांड --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
टेस्ट responses के साथ BloodHound API को मॉक करते हैं, इसलिए किसी BloodHound सर्वर की आवश्यकता नहीं है।
MIT लाइसेंस के अंतर्गत वितरित। विवरण के लिए LICENSE देखें।
BloodHound, SpecterOps का ट्रेडमार्क है। bhshell एक स्वतंत्र प्रोजेक्ट है और SpecterOps से संबद्ध या उसके द्वारा समर्थित नहीं है।