| name | exploiting-active-directory-with-bloodhound |
| description | BloodHound is a graph-based Active Directory reconnaissance tool that uses graph theory to reveal hidden and unintended relationships within AD environments. Red teams use BloodHound to identify attac |
| domain | cybersecurity |
| subdomain | red-teaming |
| tags | ["red-team","adversary-simulation","mitre-attack","exploitation","post-exploitation","active-directory","bloodhound"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
| d3fend_techniques | ["Restore Access","Password Authentication","Biometric Authentication","Strong Password Policy","Restore User Account Access"] |
| nist_csf | ["ID.RA-01","GV.OV-02","DE.AE-07"] |
Exploiting Active Directory with BloodHound
Legal Notice: This skill is for authorized security testing and educational purposes only. Unauthorized use against systems you do not own or have written permission to test is illegal and may violate computer fraud laws.
Overview
BloodHound is a graph-based Active Directory reconnaissance tool that uses graph theory to reveal hidden and unintended relationships within AD environments. Red teams use BloodHound to identify attack paths from compromised accounts to high-value targets such as Domain Admins, identifying privilege escalation chains that would be nearly impossible to find manually. SharpHound is the official data collector that gathers AD objects, relationships, ACLs, sessions, and group memberships.
When to Use
- When performing authorized security testing that involves exploiting active directory with bloodhound
- When analyzing malware samples or attack artifacts in a controlled environment
- When conducting red team exercises or penetration testing engagements
- When building detection capabilities based on offensive technique understanding
Most Often Missed & How to Confirm
- Stale or missing session data. HasSession edges decay fast. Without
-c Session (ideally looped), the token-theft path that actually reaches DA never appears in the graph.
- Not marking owned principals. "Shortest Path from Owned Principals" returns nothing useful until compromised accounts are flagged Owned.
- Trusting the path without checking edge primitives. A
GenericAll/WriteDACL/AddKeyCredentialLink edge each needs a different exploit; the graph shows the relationship, not whether you can execute it right now.
- Ignoring cross-domain/trust edges by collecting only the current domain.
- Overlooking AddKeyCredentialLink / ReadGMSAPassword / ReadLAPSPassword edges that built-in queries don't surface — write custom Cypher.
- How to confirm a path is real: ingest succeeds (object counts increase) and a
shortestPath query from an Owned node to DOMAIN ADMINS@... returns a path. But a BloodHound edge is a hypothesis — confirm by executing the first hop (e.g. ForceChangePassword actually resets the target, or GenericAll lets you add yourself to the group). Don't conclude there's no route to DA until you've run looped Session collection and custom ACL/delegation/DCSync Cypher, not just the canned queries.