bloodhound-python
Collect Active Directory data for BloodHound analysis
TLDR
SYNOPSIS
bloodhound-python [options]
DESCRIPTION
bloodhound-python is a Python-based ingestor for BloodHound, an Active Directory security analysis tool. It collects information about AD objects (users, computers, groups) and their relationships, outputting JSON files for import into the BloodHound graph database.The tool uses graph theory to identify attack paths in Active Directory environments that would be difficult to detect manually, helping both attackers and defenders understand domain security.
PARAMETERS
-d, --domain domain
Target Active Directory domain-u, --username user
Username for authentication-p, --password pass
Password for authentication--hashes LMHASH:NTHASH
NTLM hashes for pass-the-hash authentication. The LM portion may be left blank--auth-method auto|ntlm|kerberos
Authentication method to use (default: auto)-aesKey hexkey
AES key for Kerberos authentication (128 or 256 bit)-no-pass
Do not prompt for a password (use with -k and a ccache, or -no-pass for null sessions)-ns, --nameserver ip
DNS server to query, usually a Domain Controller in the target domain-dc host
Override the Domain Controller hostname to query (default: detected via DNS)-gc host
Override the Global Catalog hostname to query-c, --collectionmethod method
Comma-separated collection methods: Default, Group, LocalAdmin, RDP, DCOM, PSRemote, Session, LoggedOn, Trusts, ACL, Container, ObjectProps, DCOnly, All-k, --kerberos
Use Kerberos authentication. Grabs credentials from the ccache file (KRB5CCNAME environment variable)--zip
Compress the JSON output into a single zip file-o, --outputdir dir
Output directory for JSON files-w workers
Number of computer enumeration workers (default: 10)--dns-tcp
Use TCP instead of UDP for DNS queries--use-ldaps
Use LDAP over TLS (port 636) for the connection-v
Enable verbose output
CAVEATS
Requires valid domain credentials. Some collection methods (like Session and LoggedOn) require local administrator rights on the target hosts. The bloodhound-python command (legacy ingestor) targets BloodHound 4.2 and 4.3, while the separate bloodhound-ce-python command produces output for BloodHound Community Edition. Do not mix legacy and CE collector output. Use responsibly and only on systems you are authorized to test.
HISTORY
BloodHound was created by @_wald0, @CptJesus, and @harmj0y at SpecterOps, released in 2016. The Python ingestor (bloodhound-python) was developed by Dirk-jan Mollema as a cross-platform alternative to the C# SharpHound collector.
SEE ALSO
ldapsearch(1), impacket(1), netexec(1), crackmapexec(1)
