Skip to main content
BloodHound collects the same kind of data AD Enumeration (Credentialed) does manually, users, groups, computers, sessions, ACLs, GPOs, trusts, and loads it into a graph database instead of a flat list. Every object becomes a node, every relationship (group membership, admin rights, session presence, a dangerous ACL) becomes very clear. The payoff: instead of manually chaining “this user is in that group, which has this privileges over this computer, where that other user has …” by hand, BloodHound’s graph queries compute the shortest actual attack path to Domain Admin for you. It’s a very powerful tool.

Collecting Data

Linux (bloodhound-python)

Windows (SharpHound)

NetExec

-c All / -CollectionMethod All pulls every collection method at once (sessions, ACLs, group membership, trusts, etc.), the most thorough option but also the noisiest.

Running BloodHound

Import the zip/JSON output from the collection step above through the GUI, then query the graph.

Querying with Cypher

BloodHound’s GUI covers the common pre-built queries (shortest path to Domain Admin, Kerberoastable users, etc.), but custom Cypher queries reach things the defaults don’t. Here you can find a huge list with Custom Queries for Bloodhound. Two examples:

Quick Reference Tools

AD Enumeration (Credentialed)

The manual equivalent of what BloodHound automates and graphs.

BloodHound Docs

Official getting-started documentation.

BloodHound Custom Queries

A ready-made library of custom Cypher queries for the GUI.

BloodHound Cypher Cheat Sheet

Reference for writing custom queries beyond the two examples above.