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
Trigger phrases:
"exploiting active directory with bloodhound"
"BloodHound is a graph-based Active Directory reconnaissance tool that uses graph"
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
Prerequisites
- Familiarity with red teaming concepts and tools
- Access to a test or lab environment for safe execution
- Python 3.8+ with required dependencies installed
- Appropriate authorization for any testing activities
Objectives
- Collect Active Directory relationship data using SharpHound or BloodHound.py
- Visualize attack paths from compromised accounts to Domain Admin
- Identify misconfigured ACLs, group memberships, and delegation settings
- Discover shortest attack paths to high-value targets
- Map Kerberos delegation configurations for abuse
- Document all identified privilege escalation chains
MITRE ATT&CK Mapping
- T1087.002 - Account Discovery: Domain Account
- T1069.002 - Permission Groups Discovery: Domain Groups
- T1482 - Domain Trust Discovery
- T1615 - Group Policy Discovery
- T1018 - Remote System Discovery
- T1033 - System Owner/User Discovery
- T1016 - System Network Configuration Discovery
Workflow
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Scope and authorize — confirm written authorization and define target boundaries
- Reconnaissance — enumerate targets, services, and potential attack surfaces
- Exploitation — attempt exploitation of identified vulnerabilities within scope
- Post-exploitation — document access level, lateral movement, and data exposure
- Report and remediate — compile findings with reproduction steps and fix recommendations
Phase 1: Data Collection with SharpHound
- Transfer SharpHound collector to compromised host
- Execute collection with appropriate method (All, DCOnly, Session, LoggedOn)
- Collect from all reachable domains if multi-domain environment
- Exfiltrate ZIP data files to analysis workstation
- Import data into BloodHound CE or Legacy
Phase 2: Attack Path Analysis
- Mark owned principals (compromised accounts)
- Query shortest path to Domain Admins
- Identify Kerberoastable accounts with admin privileges
- Find AS-REP Roastable accounts
- Analyze ACL-based attack paths (GenericAll, GenericWrite, WriteDACL, ForceChangePassword)
- Review GPO abuse opportunities
Phase 3: Exploitation Planning
- Prioritize attack paths by complexity and stealth
- Identify required tools for each step in the chain
- Plan OPSEC considerations for each technique
- Execute identified attack chain
- Document evidence at each step
When NOT to Use
- You don't have explicit authorization to exploit
- Task is about detecting exploits, not performing them (use detecting-* skills)
- You need to analyze exploit artifacts (use analyzing-* skills)
- Task is about building exploit tools (use building-* skills)
- Target is production without authorization
- Task requires responsible disclosure (follow disclosure process)
Red Flags
- Performing actions without explicit written authorization from the asset owner
- Testing against production systems without a defined scope and rules of engagement
- Exceeding the authorized scope of the engagement
- Leaving persistent access mechanisms without explicit approval
- Causing denial-of-service on production systems during testing
Verification
- All steps executed successfully against a test environment before production use
- Output documented with screenshots or logs demonstrating expected behavior
- All exploited vulnerabilities documented with reproduction steps
- Scope boundaries confirmed — only authorized targets were tested
- Remediation recommendations included for every finding
Tools and Resources
| Tool |
Purpose |
Platform |
| BloodHound CE |
Graph visualization and analysis |
Web-based |
| SharpHound |
AD data collection (.NET) |
Windows |
| BloodHound.py |
AD data collection (Python) |
Linux/Windows |
| Cypher queries |
Custom graph queries |
Neo4j/BloodHound |
| PlumHound |
Automated BloodHound reporting |
Python |
| Max (BloodHound) |
BloodHound automation |
Python |
Key BloodHound Queries
| Query |
Purpose |
| Shortest Path to Domain Admins |
Find fastest route to DA |
| Find Kerberoastable Users with Path to DA |
SPN accounts leading to DA |
| Find AS-REP Roastable Users |
Accounts without pre-auth |
| Shortest Path from Owned Principals |
Paths from compromised accounts |
| Find Computers with Unsupported OS |
Legacy systems for exploitation |
| Find Users with DCSync Rights |
Accounts that can replicate AD |
| Find GPOs that Modify Local Group Membership |
GPO-based privilege escalation |
Validation Criteria
Process
- Analyze the task requirements
- Apply domain expertise
- Verify output quality
Anti-Rationalization Table
| Rationalization |
Reality |
| "We are too small to be targeted" |
Automated attacks target everyone. Size does not matter. |
| "Security slows us down" |
A breach slows you down 100x more. Build security in from the start. |
| "We will fix it after launch" |
Vulnerabilities in production are exploited within hours. Fix before deploy. |
1---2name: exploiting-active-directory-with-bloodhound3description: Use when 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. Use when working with exploiting active directory with bloodhound.4license: Apache-2.05---67# Exploiting Active Directory with BloodHound8910> **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.1112## Overview1314BloodHound 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.151617## When to Use18**Trigger phrases:**19- "exploiting active directory with bloodhound"20- "BloodHound is a graph-based Active Directory reconnaissance tool that uses graph"212223- When performing authorized security testing that involves exploiting active directory with bloodhound24- When analyzing malware samples or attack artifacts in a controlled environment25- When conducting red team exercises or penetration testing engagements26- When building detection capabilities based on offensive technique understanding2728## Prerequisites2930- Familiarity with red teaming concepts and tools31- Access to a test or lab environment for safe execution32- Python 3.8+ with required dependencies installed33- Appropriate authorization for any testing activities3435## Objectives3637- Collect Active Directory relationship data using SharpHound or BloodHound.py38- Visualize attack paths from compromised accounts to Domain Admin39- Identify misconfigured ACLs, group memberships, and delegation settings40- Discover shortest attack paths to high-value targets41- Map Kerberos delegation configurations for abuse42- Document all identified privilege escalation chains4344## MITRE ATT&CK Mapping4546- **T1087.002** - Account Discovery: Domain Account47- **T1069.002** - Permission Groups Discovery: Domain Groups48- **T1482** - Domain Trust Discovery49- **T1615** - Group Policy Discovery50- **T1018** - Remote System Discovery51- **T1033** - System Owner/User Discovery52- **T1016** - System Network Configuration Discovery5354## Workflow5556```python57# Example: IOC detection58import re5960IOC_PATTERNS = {61 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",62 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",63 "hash_md5": r"\b[a-f0-9]{32}\b",64 "hash_sha256": r"\b[a-f0-9]{64}\b",65}6667def extract_iocs(text: str) -> dict:68 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}69```70711. **Scope and authorize** — confirm written authorization and define target boundaries722. **Reconnaissance** — enumerate targets, services, and potential attack surfaces733. **Exploitation** — attempt exploitation of identified vulnerabilities within scope744. **Post-exploitation** — document access level, lateral movement, and data exposure755. **Report and remediate** — compile findings with reproduction steps and fix recommendations76### Phase 1: Data Collection with SharpHound771. Transfer SharpHound collector to compromised host782. Execute collection with appropriate method (All, DCOnly, Session, LoggedOn)793. Collect from all reachable domains if multi-domain environment804. Exfiltrate ZIP data files to analysis workstation815. Import data into BloodHound CE or Legacy8283### Phase 2: Attack Path Analysis841. Mark owned principals (compromised accounts)852. Query shortest path to Domain Admins863. Identify Kerberoastable accounts with admin privileges874. Find AS-REP Roastable accounts885. Analyze ACL-based attack paths (GenericAll, GenericWrite, WriteDACL, ForceChangePassword)896. Review GPO abuse opportunities9091### Phase 3: Exploitation Planning921. Prioritize attack paths by complexity and stealth932. Identify required tools for each step in the chain943. Plan OPSEC considerations for each technique954. Execute identified attack chain965. Document evidence at each step9798## When NOT to Use99100- You don't have explicit authorization to exploit101- Task is about detecting exploits, not performing them (use detecting-* skills)102- You need to analyze exploit artifacts (use analyzing-* skills)103- Task is about building exploit tools (use building-* skills)104- Target is production without authorization105- Task requires responsible disclosure (follow disclosure process)106107108## Red Flags109110- Performing actions without explicit written authorization from the asset owner111- Testing against production systems without a defined scope and rules of engagement112- Exceeding the authorized scope of the engagement113- Leaving persistent access mechanisms without explicit approval114- Causing denial-of-service on production systems during testing115116## Verification117118- All steps executed successfully against a test environment before production use119- Output documented with screenshots or logs demonstrating expected behavior120- All exploited vulnerabilities documented with reproduction steps121- Scope boundaries confirmed — only authorized targets were tested122- Remediation recommendations included for every finding123124## Tools and Resources125126| Tool | Purpose | Platform |127|------|---------|----------|128| BloodHound CE | Graph visualization and analysis | Web-based |129| SharpHound | AD data collection (.NET) | Windows |130| BloodHound.py | AD data collection (Python) | Linux/Windows |131| Cypher queries | Custom graph queries | Neo4j/BloodHound |132| PlumHound | Automated BloodHound reporting | Python |133| Max (BloodHound) | BloodHound automation | Python |134135## Key BloodHound Queries136137| Query | Purpose |138|-------|---------|139| Shortest Path to Domain Admins | Find fastest route to DA |140| Find Kerberoastable Users with Path to DA | SPN accounts leading to DA |141| Find AS-REP Roastable Users | Accounts without pre-auth |142| Shortest Path from Owned Principals | Paths from compromised accounts |143| Find Computers with Unsupported OS | Legacy systems for exploitation |144| Find Users with DCSync Rights | Accounts that can replicate AD |145| Find GPOs that Modify Local Group Membership | GPO-based privilege escalation |146147## Validation Criteria148149- [ ] SharpHound data collected from all domains150- [ ] Attack paths identified from owned accounts to DA151- [ ] ACL-based attack paths documented152- [ ] Kerberoastable and AS-REP roastable accounts identified153- [ ] Exploitation plan created with prioritized paths154- [ ] Evidence screenshots captured for report155156## Process1571581. Analyze the task requirements1592. Apply domain expertise1603. Verify output quality161162## Anti-Rationalization Table163164| Rationalization | Reality |165|---|---|166| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |167| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |168| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |