
एक Python-आधारित इंजेस्टर BloodHound के लिए
मुझे Kerberos सपोर्ट के साथ bloodhound की ज़रूरत थी और मुझे यह comment मिला। पता चला कि Kerberos प्रमाणीकरण का सपोर्ट करने वाली एक branch पहले से मौजूद थी! मैंने इस branch को master में मर्ज करने की स्वतंत्रता ली ताकि वे शानदार BloodHound 4.2+ exports मिल सकें। सारा श्रेय उन लोगों को जाता है जिन्होंने वास्तव में code लिखा था:)
जैसा कि श्री Dirkjan ने स्वयं कहा है, इसे "और अधिक काम और परीक्षण की आवश्यकता है"। यह सभी मामलों में काम नहीं कर सकता है, इसलिए कृपया आपके सामने आने वाली किसी भी समस्या की रिपोर्ट करें और हम उन्हें ठीक करने का प्रयास कर सकते हैं। शायद एक दिन हम इसे मुख्य repo में PR के रूप में प्रस्तुत कर सकें।
$ python3 /opt/BloodHound.py/bloodhound.py -u redacted -k -d absolute.htb -dc dc.absolute.htb -ns 10.129.202.227 --dns-tcp --zip -no-pass -c All
INFO: Found AD domain: absolute.htb
INFO: Using TGT from cache
INFO: Found TGT with correct principal in ccache file.
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 18 users
INFO: Found 55 groups
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: dc.absolute.htb
INFO: Ignoring host dc.absolute.htb since its reported name does not match
INFO: Done in 00M 02S
INFO: Compressing output into 20220926135518_bloodhound.zip
यदि आपको DNS त्रुटियाँ मिलती हैं तो आप dnschef चलाते समय DNS को अपनी ओर इंगित करने का प्रयास कर सकते हैं -ns 127.0.0.1:
python3 dnschef.py --fakeip <dc ip> --fakedomains <domain> -q
BloodHound.py BloodHound के लिए Python आधारित ingestor है, जो Impacket पर आधारित है।
BloodHound.py का यह संस्करण केवल BloodHound 4.2 या नए के साथ संगत है। 3.x श्रेणी के लिए, pypi के माध्यम से संस्करण 1.1.1 का उपयोग करें। संस्करण 1.3 के अनुसार, BloodHound.py केवल Python 3 का समर्थन करता है, Python 2 का अब परीक्षण नहीं किया जाता है और भविष्य में यह काम नहीं कर सकता है।
BloodHound.py में वर्तमान में निम्नलिखित सीमाएँ हैं:
आप ingestor को pip के माध्यम से pip install bloodhound से स्थापित कर सकते हैं, या इस repository को क्लोन करके python setup.py install चलाकर, या pip install . के साथ स्थापित कर सकते हैं।
BloodHound.py को कार्य करने के लिए impacket, ldap3 और dnspython की आवश्यकता होती है।
स्थापना आपके PATH में एक कमांड लाइन टूल bloodhound-python जोड़ देगी।
ingestor का उपयोग करने के लिए, आपको कम से कम उस domain के credentials की आवश्यकता होगी जिसमें आप लॉग इन कर रहे हैं।
आपको -u विकल्प के साथ इस domain का उपयोगकर्ता नाम (या किसी विश्वसनीय domain में उपयोगकर्ता के लिए username@domain) निर्दिष्ट करना होगा। यदि आपका DNS सही ढंग से सेट है और AD domain आपकी DNS खोज सूची में है, तो BloodHound.py आपके लिए स्वचालित रूप से domain का पता लगा लेगा। यदि नहीं, तो आपको इसे -d विकल्प के साथ मैन्युअल रूप से निर्दिष्ट करना होगा।
डिफ़ॉल्ट रूप से BloodHound.py उपयोगकर्ताओं, कंप्यूटरों, समूहों, trusts, सत्रों और स्थानीय व्यवस्थापकों की गणना करने के लिए LDAP और domain के अलग-अलग कंप्यूटरों से query करेगा।
यदि आप collection को प्रतिबंधित करना चाहते हैं, तो --collectionmethod पैरामीटर निर्दिष्ट करें, जो निम्नलिखित विकल्पों का समर्थन करता है (SharpHound के समान):
एकाधिक collectionmethod को अल्पविराम द्वारा अलग किया जाना चाहिए, उदाहरण के लिए: -c Group,LocalAdmin
आप कुछ स्वचालित पहचान विकल्पों को ओवरराइड कर सकते हैं, जैसे कि प्राथमिक Domain Controller का hostname यदि आप -dc के साथ एक अलग Domain Controller उपयोग करना चाहते हैं, या -gc के साथ अपना स्वयं का Global Catalog निर्दिष्ट करें।
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python चला सकते हैं, सभी डेटा उस पथ में संग्रहीत किया जाएगा जहाँ से आप कंटेनर प्रारंभ करते हैं।