BloodHound.py
Python-based ingestor for BloodHound using Impacket for Active Directory enumeration. Collects domain data like groups, sessions, trusts, and ACLs for BloodHound analysis.
Description
BloodHound.py is a Python 3 ingestor for BloodHound, leveraging Impacket to gather Active Directory intelligence from target domains. It supports collection of various data types including groups, local admins, sessions, trusts, and more, enabling visualization of AD attack paths in BloodHound.
Use cases include red team assessments and penetration testing of Windows environments, where understanding privilege relationships, session data, and object properties is critical. It serves as a lightweight alternative to SharpHound with Python compatibility on Kali Linux.
Limitations include incomplete support for some BloodHound features like GPO local groups and differences in session resolution compared to SharpHound. Kerberos authentication is partially implemented but usable from the updatedkerberos branch.
How It Works
Uses Impacket for SMB, LDAP, and Kerberos/NTLM authentication to query domain controllers, global catalogs, and DNS. Collects AD objects via LDAP queries for groups, sessions, trusts, ACLs; resolves sessions through RPC/DCOM/RDP; supports multiple collection methods with worker pooling. Defaults to Kerberos auth with NTLM fallback, using provided credentials, hashes, or tickets.
Installation
sudo apt install bloodhound.pyFlags
Examples
bloodhound-python -hbloodhound-python -u username -p password -d domain.com -c Defaultbloodhound-python -u username[@domain] -p password -c Allbloodhound-python -k -c Group,Sessionbloodhound-python --hashes lmhash:nthash -d domain.com -c Trusts,ACLbloodhound-python -u user -p pass -dc dc01.domain.com -ns 10.0.0.10bloodhound-python -u user -p pass -c DCOnly --dns-tcp