返回市场
追踪犬_mcp

追踪犬_mcp

作者:mwnickerson46 星标更新:2025-09-08

项目介绍

BloodHound 模型上下文协议服务器

许可证:GPL v3

这是一个模型上下文协议(MCP)服务器,它使大型语言模型能够通过Claude Desktop与BloodHound社区版的数据进行交互。此工具允许安全专业人员使用自然语言查询和分析Active Directory攻击路径。

架构

此MCP服务器提供了一个全面的接口来访问BloodHound社区版的REST API,而不仅仅是Cypher查询的包装器。实现包括:

API覆盖

  • 完整的REST API集成:利用BloodHound CE的所有REST API端点(如/api/v2/domains/api/v2/users/api/v2/groups等)
  • 结构化数据访问:利用专门设计的API端点用于用户、计算机、组、OU和GPO
  • 高级功能:包括ADCS分析、图搜索、最短路径算法和边缘组成分析
  • 认证:实现BloodHound基于签名的认证系统

为什么不只是Cypher查询?

虽然Cypher查询非常强大,但这个MCP超越了简单的查询执行:

  • 结构化的API响应:返回正确格式化的、分页的数据,带有计数和元数据
  • 内置关系:利用BloodHound预先计算的关系映射
  • 错误处理:适当的HTTP状态码处理和有意义的错误消息
  • 性能:利用BloodHound优化的端点而不是原始图遍历
  • 完整性:通过专用端点访问管理权限、会话、组成员关系和其他复杂关系

MCP优势

作为正确的模型上下文协议实现:

  • 工具可发现性:LLM自动发现可用的分析能力
  • 类型安全性:强类型的参数和响应
  • 上下文帮助:为LLM内置文档和示例
  • 资源访问:提供Cypher查询示例和模式作为MCP资源

演示

观看演示视频

功能

核心能力

  • 域分析:查询域信息、用户、组、计算机和组织结构
  • 用户情报:分析用户权限、组成员关系、会话和管理权限
  • 组分析:检查组成员关系、控制器和特权关系
  • 计算机评估:调查计算机权限、会话和管理访问
  • 组织单位:探索OU结构和包含的对象
  • 组策略对象:分析GPO分配和控制器
  • 证书服务:调查ADCS基础设施和证书模板
  • 自定义Cypher查询:执行复杂的Neo4j查询以进行复杂分析
  • 图搜索:查找安全主体之间的最短路径

高级功能

  • 使用自然语言查询BloodHound数据
  • 攻击路径可视化和分析
  • 特权提升识别
  • 跨域关系分析
  • Kerberoasting目标识别
  • 管理关系映射

先决条件

  • Python 3.11+
  • uv(Python包管理器)
  • Claude Desktop
  • BloodHound社区版实例(可通过网络访问)
  • BloodHound数据已加载(来自SharpHound、BloodHound.py等)
  • BloodHound API凭证(Token ID和Token Key)

安装

  1. 克隆仓库

    git clone <repository-url>
    cd bloodhound-mcp
    
  2. 安装依赖项

    uv sync
    
  3. 配置环境变量

    在项目根目录创建一个.env文件:

    BLOODHOUND_DOMAIN=your-bloodhound-instance.domain.com
    BLOODHOUND_TOKEN_ID=your-token-id
    BLOODHOUND_TOKEN_KEY=_your-token-key
    

配置

Claude Desktop设置

  1. 打开Claude Desktop并导航到设置开发者工具
  2. 将以下配置添加到您的claude_desktop_config.json中:
{
  "mcpServers": {
    "bloodhound_mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/bloodhound-mcp",
        "run",
        "main.py"
      ]
    }
  }
}
  1. /path/to/your/bloodhound-mcp替换为您实际的安装路径
  2. 重启Claude Desktop

BloodHound API令牌设置

  1. 登录到您的BloodHound CE实例
  2. 导航到管理API令牌
  3. 创建一个新的具有适当权限的令牌
  4. 记下Token ID和Token Key以供您的.env文件使用

使用

开始使用

  1. 在Claude Desktop中开始新的对话
  2. 查找锤子图标(🔨),表示MCP工具可用
  3. 从询问您的域开始:
BloodHound中有哪些可用的域?

示例查询

域侦察:

显示DOMAIN.LOCAL域中的所有用户
该域中的计算机有哪些?
找到所有域管理员

用户分析:

john.doe@domain.local拥有哪些管理权限?
显示该用户的全部会话
该用户是哪些组的成员?

特权提升:

找到所有可以Kerberoasting的用户
显示具有DCSync权限的用户
我可以从这个用户RDP到哪些计算机?

高级分析:

运行Cypher查询以找到通往域管理员的所有路径
显示用户A到用户B的最短路径
找到所有设置了SPN的用户

安全注意事项

数据敏感性警告

此工具通过Claude Desktop处理BloodHound数据,这意味着Active Directory信息会被传输到Anthropic的服务器上。不要使用此工具处理生产或敏感的BloodHound数据。

推荐用例

  • 培训环境(GOAD、DetectionLab等)
  • 演示用途
  • 学习和研究
  • 非生产域分析

最佳实践

  • 使用隔离的实验室环境
  • 分析前对数据进行清理
  • 考虑在敏感环境中使用本地LLM替代方案
  • 定期轮换BloodHound API访问令牌

测试

运行测试套件以验证功能:

# 基本功能测试
uv run pytest tests/test_basics.py -v

# HTTP请求测试
uv run pytest tests/test_bloodhound_http.py -v

# MCP工具测试
uv run pytest tests/test_mcp_tools.py -v

# 集成测试(需要运行BloodHound实例)
BLOODHOUND_INTEGRATION_TESTS=1 uv run pytest tests/test_integration.py -v

贡献

欢迎贡献!此项目旨在学习和实验MCP和BloodHound API。

开发设置

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 为新功能添加测试
  5. 运行测试套件
  6. 提交拉取请求

发展路线图

  • 增强攻击路径分析
  • Azure Active Directory支持
  • 高级图可视化
  • 资产管理集成
  • 本地LLM兼容性
  • 额外的ADCS攻击场景

许可证

此项目根据GNU通用公共许可证v3.0许可 - 详情见LICENSE文件。

致谢

  • Orange Cyberdefense 因为GOAD(用于测试)
  • SpecterOps 因为BloodHound社区版
  • @jlowin 因为FastMCP
  • @xpn 因为Mythic MCP项目带来的MCP灵感