bloodhound
Python based ingestor for BloodHound
What it is and what it does
BloodHound.py is a command-line tool that connects to an Active Directory domain using supplied credentials and systematically queries LDAP and domain computers to map users, groups, computers, trusts, sessions, and local admin relationships. It exports this graph data in a format that BloodHound (versions 4.2 and 4.3) can ingest and visualize, helping security teams identify attack paths and privilege escalation routes in their AD infrastructure.
The tool supports multiple collection methods—Group, LocalAdmin, RDP, DCOM, Container, PSRemote, DCOnly, Session, Acl, Trusts, LoggedOn, ObjectProps, and Experimental—which can be combined or run individually to focus enumeration on specific aspects of the domain. It is built on impacket and relies on dnspython, ldap3, pyasn1, and pycryptodome for network communication and cryptographic operations. The aging maintenance status reflects a mature, stable tool rather than active feature development.
Use it for:
- Red team or penetration tester mapping an AD domain to identify privilege escalation paths and lateral movement opportunities.
- Blue team security analyst enumerating domain trust relationships and local admin group memberships to audit access control.
- Security researcher collecting AD structure and ACL data for threat modeling and attack surface analysis.
- Incident responder investigating compromised domain accounts by mapping session data and group memberships.
- Compliance auditor documenting domain user and group relationships for access control review.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
BloodHound.py is a Python ingestor that enumerates Active Directory domain structure, relationships, and security configurations and exports them for analysis in BloodHound (versions 4.2 and 4.3).
Yes, if you are conducting authorized Active Directory security testing or analysis and need to ingest domain data into BloodHound 4.2 or 4.3. The tool is stable, has no known vulnerabilities, and low install friction. Verify that your target BloodHound version matches (4.2/4.3 for this branch, or switch to bloodhound-ce for Community Edition) and that you have valid credentials and network access to the domain.
Install
bloodhound on PyPI
pip
pip install bloodhounduv
uv add bloodhoundpoetry
poetry add bloodhoundInstalling bloodhound
Before you install
Low friction installation as a pure-Python wheel with five runtime dependencies. Maintenance status is aging—last release was 294 days ago—but the repository remains active and unarchived with 2430 stars.
License in practice
MIT license permits commercial and private use, modification, and distribution with minimal restrictions; suitable for security testing in environments where you control the terms.
Quickstart
pip install bloodhound
bloodhound-python -u username -d domain.com -gc gc.domain.com -c Default
Requires valid Active Directory credentials (username/password, NT hash, AES keys, or Kerberos TGT) and network access to domain controllers and member hosts.
Verify before relying
- Whether GPO local groups collection limitation affects your target domain's security posture analysis.
- Compatibility with BloodHound Community Edition (CE) vs. legacy versions and which branch/package to install.
- Actual monthly download volume and adoption rate in security teams.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — dnspython, impacket, ldap3, pyasn1, pycryptodome |
| Maintenance | aging — 294 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 101,193/month — #12,956 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: bloodhound-1.9.0-py3-none-any.whl
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
ldapdomaindumpCollects and exports Active Directory…
permissive · top 15,000 on PyPI
django-auth-ldapProvides a Django authentication backend that…
permissive · top 15,000 on PyPI
bbotBBOT is a multipurpose reconnaissance and…
agpl · top 15,000 on PyPI
tldsProvides a set of valid top-level domains…
permissive · top 15,000 on PyPI
dissect.hypervisorParses hypervisor disk, backup, and…
agpl · top 15,000 on PyPI
impacketImpacket provides low-level Python classes for…
permissive · top 15,000 on PyPI
pyIsEmailValidates email addresses against RFC standards…
permissive · top 15,000 on PyPI
dsinternalsInteract with Windows Active Directory by…
permissive · top 15,000 on PyPI
PyFunceble-devPyFunceble checks whether domains, IPs, and…
permissive · top 15,000 on PyPI
allianceauth-securegroupsA Django plugin for Alliance Auth that…
permissive · top 15,000 on PyPI