bloodhound
Thebloodhound command collects Active Directory data in BloodHound-compatible format. It integrates with both BloodHound Community Edition (CE) and BloodHound Legacy, producing the JSON files that BloodHound uses to build its attack path graph.
Usage
Subcommands
bloodhound collect
Collect BloodHound data from Active Directory.
Flags
| Flag | Short | Description |
|---|---|---|
--legacy | — | Use BloodHound Legacy format (instead of CE) |
--collection-method | -c | Comma-separated collection methods (see below) |
--workers | -w | Worker thread count (default: 10) |
--exclude-dcs | — | Skip domain controllers in computer enumeration |
--disable-pooling | — | Disable connection pooling |
--disable-autogc | — | Disable automatic Global Catalog server selection |
--computerfile | — | File containing computer names for targeted collection |
--cachefile | — | BloodHound cache file to load |
--output-dir | -o | Output directory (default: current directory) |
--output-file | — | Single output file (for simple text output only) |
--fileprefix | — | Prefix for output file names |
--zip | — | Zip all output files into a single archive |
--dns-timeout | — | DNS resolution timeout in seconds (default: 3) |
--dns-tcp | — | Use TCP instead of UDP for DNS queries |
Collection Methods
The--collection-method / -c flag controls what data is collected. Multiple methods can be specified as a comma-separated list.
| Method | Description |
|---|---|
default | Group membership, local admins, sessions, trusts, ACLs |
all | All methods (equivalent to running everything) |
group | Group membership |
localadmin | Local administrator group membership |
session | Active user sessions |
trusts | Domain trust relationships |
acl | Object ACLs (DACL entries) |
objectprops | Object properties (full attribute collection) |
dconly | Domain controller-only data (no computer enumeration) |
container | Container and OU relationships |
loggedon | Currently logged-on users (requires admin on target) |
experimental | Experimental methods |
dcom | DCOM-based access checks |
rdp | RDP access checks |
psremote | PowerShell remoting access checks |
Examples
BloodHound CE vs Legacy
| Feature | BloodHound CE (default) | BloodHound Legacy |
|---|---|---|
| Format | JSON with _ prefix files | JSON with older schema |
| Compatibility | BloodHound CE / BHCE | BloodHound 4.x |
| Flag | (default) | --legacy |
--legacy if you are using BloodHound 4.x or older. Use the default (no flag) for BloodHound Community Edition.
Output Files
BloodHound collection produces several JSON files in the output directory:| File | Contents |
|---|---|
*_computers.json | Computer accounts and properties |
*_users.json | User accounts and properties |
*_groups.json | Groups and membership |
*_domains.json | Domain objects and trusts |
*_gpos.json | Group Policy Objects |
*_containers.json | OUs and container objects |
*_ous.json | Organizational Units |
--zip is specified, all files are combined into a single .zip archive ready for direct import into BloodHound.
Authentication
bloodhound collect uses the same authentication flags as all other R4t commands. The collector requires:
- Read access to AD via LDAP (for user/group/object data)
- Read access to SYSVOL (for GPO data)
- SMB access to target computers (for session/local admin enumeration — optional)
Common Workflows
Quick Initial Collection
Targeted Collection (Specific Computers)
Importing Results
After collection, import the output into BloodHound:- Start BloodHound CE / BHCE
- Navigate to Upload Data
- Select the
.zipfile or individual JSON files - Click Upload and wait for processing
- Run queries like “Shortest Path to Domain Admin”

