Guide Uses BloodHound MCP and Claude to Map Active Directory Attack Paths

Summary
A hands-on guide connects BloodHound Community Edition to Claude Desktop through MCP to analyze an authorized Active Directory lab, identify risky privilege paths and misconfigurations, and prioritize remediation.
Key points
- The walkthrough connects BloodHound Community Edition to Claude Desktop with the bloodhound_mcp server and collects directory data from an authorized IGNITE.LOCAL lab.
- The graph analysis identifies lab-specific high-risk permissions, including SHIVAM’s DCSync rights and AARU’s GenericAll control over Domain Admins.
- Other mapped paths include Shadow Credentials, GPO and AdminSDHolder abuse, LAPS password access, and constrained or unconstrained delegation risks.
- The guide uses natural-language prompts to enumerate accounts and objects, find attack paths, and prioritize findings by severity.
- Recommended remediation includes removing unauthorized ACLs, restricting Tier Zero access, tightening delegation, protecting LAPS access, and monitoring sensitive attribute changes.
Article Details
- Topic
- Using BloodHound MCP with Claude Desktop to analyze Active Directory attack paths and prioritize remediation in an authorized IGNITE.LOCAL lab.
MITRE ATT&CK
T1003.003 · NTDSThe article describes using backup privileges to copy NTDS.dit from the Domain Controller and dump domain hashes.T1003.006 · DCSyncThe article describes using SHIVAM's GetChanges and GetChangesAll rights to perform DCSync and retrieve domain password hashes.T1098.007 · Additional Local or Domain GroupsThe article describes using GenericAll or AddSelf permissions to add an account to privileged domain groups.T1484.001 · Group Policy ModificationThe lab findings describe abusing write permissions on a domain-linked GPO to modify policy and execute code on affected systems.T1550.002 · Pass the HashThe described Shadow Credentials chain includes reusing a recovered NT hash for Pass-the-Hash authentication.T1558.003 · KerberoastingThe lab analysis identifies Kerberoastable accounts and describes requesting service tickets for offline password cracking.T1558.004 · AS-REP RoastingThe lab analysis identifies an account without Kerberos pre-authentication and describes requesting its AS-REP hash for offline cracking.
Products
BloodHound Community EditionThis guide shows how to connect BloodHound Community Edition to Claude Desktop through MCP to turn natural-language prompts into Active Directory graph analysis for the IGNITE.LOCAL lab.Claude DesktopThis guide shows how to connect BloodHound Community Edition to Claude Desktop through MCP to turn natural-language prompts into Active Directory graph analysis for the IGNITE.LOCAL lab.Microsoft Active DirectoryThis guide shows how to connect BloodHound Community Edition to Claude Desktop through MCP to turn natural-language prompts into Active Directory graph analysis for the IGNITE.LOCAL lab.Neo4jBloodHound stores Active Directory relationships and attack paths as a Neo4j graph, normally explored through its interface or hand-written Cypher.
Tools
bloodhound_mcpCommunity Edition graph to Claude Desktop through the Model Context Protocol (MCP): install the bloodhound_mcp server, generate a BloodHound API token, and collect IGNITE.LOCAL with bloodhound-python.BloodHound-PythonThe lab uses IGNITE.LOCAL with BloodHound-python to collect and ingest directory data.Evil-WinRMThe remote session uses Evil-WinRM against the Domain Controller with RAM’s credentials:getTgtpkinit.pyto the target’s msDS-KeyCredentialLink with pywhisker or Whisker, authenticate via PKINIT with gettgtpkinit.py, extract the NT hash with UnPAC-the-Hash, and reuse it for Pass-the-Hash or DCSync.hashcatKali Linux — attacker node running bloodhound_mcp, bloodhound-python, Claude Desktop, and follow-up tooling such as Impacket and hashcat.ImpacketKali Linux — attacker node running bloodhound_mcp, bloodhound-python, Claude Desktop, and follow-up tooling such as Impacket and hashcat.pywhiskerdetails the chain as SITA: write a rogue key credential to the target’s msDS-KeyCredentialLink with pywhisker or Whisker, authenticate via PKINIT with gettgtpkinit.py, extract the NT hash with UnPAC-the-Hash, andUnPAC-the-Hashwith pywhisker or Whisker, authenticate via PKINIT with gettgtpkinit.py, extract the NT hash with UnPAC-the-Hash, and reuse it for Pass-the-Hash or DCSync.Whiskerthe chain as SITA: write a rogue key credential to the target’s msDS-KeyCredentialLink with pywhisker or Whisker, authenticate via PKINIT with gettgtpkinit.py, extract the NT hash with UnPAC-the-Hash, and reuse it for
