
أداة إدخال قائمة على Python لـ BloodHound
كنت بحاجة إلى BloodHound مع دعم Kerberos ووجدت هذا تعليق. اتضح أن هناك فرعًا يدعم مصادقة Kerberos طوال الوقت! أخذت على عاتقي دمج هذا الفرع في master للحصول على تصديرات BloodHound 4.2+ الرائعة. كل الفضل يعود للأشخاص الذين كتبوا الكود فعليًا :)
كما ذكر السيد Dirkjan بنفسه، هذا "يحتاج إلى مزيد من العمل والاختبار". قد لا يعمل في جميع الحالات، لذا يرجى الإبلاغ عن أي مشاكل تصادفها وسنحاول إصلاحها. ربما يومًا ما يمكننا تقديم هذا كـ 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، يمكنك محاولة توجيه DNS إلى نفسك -ns 127.0.0.1 أثناء تشغيل dnschef:
python3 dnschef.py --fakeip <dc ip> --fakedomains <domain> -q
BloodHound.py هو أداة ingestor مبنية على Python لـ BloodHound، ومبنية على Impacket.
هذا الإصدار من BloodHound.py متوافق فقط مع BloodHound 4.2 أو أحدث. بالنسبة للنطاق 3.x، استخدم الإصدار 1.1.1 عبر pypi. اعتبارًا من الإصدار 1.3، يدعم BloodHound.py Python 3 فقط، ولم يعد Python 2 يُختبر وقد ينكسر في المستقبل.
يمتلك BloodHound.py حاليًا القيود التالية:
يمكنك تثبيت الأداة عبر pip باستخدام pip install bloodhound، أو عن طريق استنساخ هذا المستودع وتشغيل python setup.py install، أو باستخدام pip install ..
يتطلب عمل BloodHound.py توفر impacket وldap3 وdnspython.
سيضيف التثبيت أداة سطر أوامر bloodhound-python إلى PATH الخاص بك.
لاستخدام الأداة، ستحتاج على الأقل إلى بيانات اعتماد للمجال الذي تسجّل الدخول إليه.
ستحتاج إلى تحديد الخيار -u مع اسم مستخدم لهذا المجال (أو username@domain لمستخدم في مجال موثوق). إذا كان إعداد DNS لديك صحيحًا وكان مجال AD في قائمة بحث DNS الخاصة بك، فسيكتشف BloodHound.py المجال تلقائيًا. إذا لم يكن كذلك، فسيتعين عليك تحديده يدويًا باستخدام الخيار -d.
بشكل افتراضي، سيستعلم BloodHound.py من LDAP وأجهزة الكمبيوتر الفردية في المجال لتعداد المستخدمين وأجهزة الكمبيوتر والمجموعات والثقات والجلسات ومسؤولي الأجهزة المحليين.
إذا كنت تريد تقييد الجمع، فحدد معامل --collectionmethod، الذي يدعم الخيارات التالية (على غرار SharpHound):
يجب فصل طرق الجمع المتعددة بفاصلة، على سبيل المثال: -c Group,LocalAdmin
يمكنك تجاوز بعض خيارات الاكتشاف التلقائي، مثل اسم مضيف وحدة تحكم المجال الأساسية إذا كنت تريد استخدام وحدة تحكم مجال مختلفة مع -dc، أو تحديد الفهرس العام الخاص بك مع -gc.
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python داخل الحاوية، وسيتم تخزين جميع البيانات في المسار الذي تبدأ منه الحاوية.