BloodHound MCP 服务器

BloodHound MCP 服务器是为 BloodHound 社区版提供的模型上下文协议服务器,用于 Active Directory 攻击路径映射和分析。

  • by schwarztim
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 schwarztim/sec-bloodhound-mcp

使用说明

血猎犬MCP服务器

一种模型上下文协议(MCP)服务器 血猎犬社区版 -用于Active Directory攻击路径映射和分析的行业标准工具。

概述

此MCP服务器使AI助手能够与BloodHound CE交互,提供对Active Directory侦察数据、攻击路径分析和安全态势评估功能的全面访问。

特性

域操作

  • 列出并检查Active Directory域
  • 查看域控制器和信任关系
  • 分析组策略对象(GPO)和组织单位(OU)

身份分析

  • 用户:列出用户、查看管理员权限、组成员资格和活动会话
  • 计算机:枚举计算机、管理员和会话
  • 群组:检查组成员资格和管理权限

攻击路径分析

  • 查找任意两个节点之间的最短攻击路径
  • 对图形数据库执行自定义Cypher查询
  • 列出并分析预先计算的攻击路径
  • 启动攻击路径分析作业

高值目标检测

  • Kerberoastable用户:查找具有易受脱机密码破解攻击的SPN的用户
  • AS-REP可烘焙用户:识别禁用Kerberos预身份验证的用户
  • 不受约束的代表团:查找可以模拟任何用户的计算机
  • DCSync权限:查找能够转储域凭据的主体

数据质量

  • 收集统计数据和数据质量指标
  • API版本信息

安装

# Clone the repository
git clone https://github.com/schwarztim/sec-bloodhound-mcp.git
cd sec-bloodhound-mcp

# Install dependencies
npm install

# Build the project
npm run build

配置

环境变量

变量 描述 默认值
BLOODHOUND_URL BloodHound CE API网址 http://localhost:8080
BLOODHOUND_TOKEN_ID API令牌ID(必需) -
BLOODHOUND_TOKEN_KEY API令牌密钥(必需) -

创建API令牌

  1. 登录您的BloodHound CE实例
  2. 导航到 设置 > API令牌
  3. 创建新令牌并记下令牌ID和令牌密钥
  4. 在启动MCP服务器之前设置环境变量

Claude桌面配置

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "bloodhound": {
      "command": "node",
      "args": ["/path/to/sec-bloodhound-mcp/dist/index.js"],
      "env": {
        "BLOODHOUND_URL": "http://localhost:8080",
        "BLOODHOUND_TOKEN_ID": "your-token-id",
        "BLOODHOUND_TOKEN_KEY": "your-token-key"
      }
    }
  }
}

可用工具

域操作

工具 说明
bloodhound_domains 列出所有可用的AD域
bloodhound_domain_info 获取详细的域信息
bloodhound_domain_controllers 列出域控制器
bloodhound_trusts 建立信任关系
bloodhound_gpos 列出组策略对象
bloodhound_ous 列出组织单位

用户操作

工具 说明
bloodhound_users 列出域用户(分页)
bloodhound_user_info 获取用户详细信息
bloodhound_user_admin_rights 用户拥有管理员权限的系统
bloodhound_user_memberships 用户的组成员资格
bloodhound_user_sessions 用户的活动会话

计算机操作

工具 说明
bloodhound_computers 列出域计算机(分页)
bloodhound_computer_info 获取计算机详细信息
bloodhound_computer_admins 计算机管理员
bloodhound_computer_sessions 计算机上的活动会话

集团运营

工具 说明
bloodhound_groups 列出域组(分页)
bloodhound_group_info 获取组详细信息
bloodhound_group_members 集团成员
bloodhound_group_admin_rights 组持有的管理员权限

搜索和图表

工具 说明
bloodhound_search 按名称/ID搜索对象
bloodhound_path 寻找最短攻击路径
bloodhound_cypher 执行自定义Cypher查询

攻击路径

工具 说明
bloodhound_attack_paths 列出攻击路径类型
bloodhound_domain_attack_paths 特定域攻击路径
bloodhound_findings 攻击路径发现
bloodhound_analyze 开始分析作业
bloodhound_dcsyncers 具有DCSync权限的负责人

漏洞检测

工具 说明
bloodhound_kerberoastable 查找Kerberoastable用户
bloodhound_asreproastable 查找AS-REP Roastable用户
bloodhound_unconstrained_delegation 查找不受约束的委派

系统

工具 说明
bloodhound_data_quality 收藏质量统计
bloodhound_version API版本信息

示例用法

查找域管理员的攻击路径

Use bloodhound_path with:
- start_node: "JSMITH@CONTOSO.LOCAL"
- end_node: "DOMAIN ADMINS@CONTOSO.LOCAL"

查找所有Kerberoastable用户

Use bloodhound_kerberoastable with:
- domain_id: "S-1-5-21-..."

自定义密码查询

Use bloodhound_cypher with:
- query: "MATCH (u:User)-[r:MemberOf*1..]->(g:Group) WHERE g.name = 'DOMAIN ADMINS@CONTOSO.LOCAL' RETURN u.name"

认证

此MCP服务器实现了BloodHound CE的HMAC-SHA256签名请求身份验证:

  1. 操作键: HMAC(tokenKey, method + uri) -防止方法/URI修改
  2. 日期密钥: HMAC(operationKey, datetime) -防止重放攻击
  3. 签名: HMAC(dateKey, body) -防止有效载荷篡改

所有请求均包括 Authorization, RequestDate,以及 Signature 标题。

安全考虑

  • API令牌应被视为机密 -永远不要将它们提交给版本控制
  • 使用环境变量 用于凭证管理
  • 网络安全 -血猎犬通常在内部网络上运行;确保适当的访问控制
  • 审核日志记录 -BloodHound记录所有API访问;监控未经授权的使用

需求

  • Node.js 18+
  • 血猎犬社区版5.x+
  • 具有适当权限的有效API令牌

许可证

MIT许可证-请参阅 许可证 了解详情。

贡献

欢迎投稿!请打开问题或提交拉取请求。

相关项目

免责声明

此工具仅用于授权的安全测试和研究。在进行安全评估之前,始终获得适当的授权。作者不对误用此软件负责。