血猎犬MCP服务器
一种模型上下文协议(MCP)服务器 血猎犬社区版 -用于Active Directory攻击路径映射和分析的行业标准工具。
概述
此MCP服务器使AI助手能够与BloodHound CE交互,提供对Active Directory侦察数据、攻击路径分析和安全态势评估功能的全面访问。
特性
域操作
- 列出并检查Active Directory域
- 查看域控制器和信任关系
- 分析组策略对象(GPO)和组织单位(OU)
身份分析
- 用户:列出用户、查看管理员权限、组成员资格和活动会话
- 计算机:枚举计算机、管理员和会话
- 群组:检查组成员资格和管理权限
攻击路径分析
- 查找任意两个节点之间的最短攻击路径
- 对图形数据库执行自定义Cypher查询
- 列出并分析预先计算的攻击路径
- 启动攻击路径分析作业
高值目标检测
- Kerberoastable用户:查找具有易受脱机密码破解攻击的SPN的用户
- AS-REP可烘焙用户:识别禁用Kerberos预身份验证的用户
- 不受约束的代表团:查找可以模拟任何用户的计算机
- DCSync权限:查找能够转储域凭据的主体
数据质量
安装
# 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令牌
- 登录您的BloodHound CE实例
- 导航到 设置 > API令牌
- 创建新令牌并记下令牌ID和令牌密钥
- 在启动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签名请求身份验证:
- 操作键:
HMAC(tokenKey, method + uri) -防止方法/URI修改 - 日期密钥:
HMAC(operationKey, datetime) -防止重放攻击 - 签名:
HMAC(dateKey, body) -防止有效载荷篡改
所有请求均包括 Authorization, RequestDate,以及 Signature 标题。
安全考虑
- API令牌应被视为机密 -永远不要将它们提交给版本控制
- 使用环境变量 用于凭证管理
- 网络安全 -血猎犬通常在内部网络上运行;确保适当的访问控制
- 审核日志记录 -BloodHound记录所有API访问;监控未经授权的使用
需求
- Node.js 18+
- 血猎犬社区版5.x+
- 具有适当权限的有效API令牌
许可证
MIT许可证-请参阅 许可证 了解详情。
贡献
欢迎投稿!请打开问题或提交拉取请求。
相关项目
免责声明
此工具仅用于授权的安全测试和研究。在进行安全评估之前,始终获得适当的授权。作者不对误用此软件负责。