项目简介
BloodHound MCP (Model Context Protocol) 是 BloodHound 工具的创新扩展,旨在使大型语言模型 (LLM) 能够通过自然语言查询与 Active Directory (AD) 和 Azure Active Directory (AAD) 环境进行交互和分析。通过利用 LLM 的强大功能,BloodHound MCP 允许用户使用简单的对话命令对其 AD/AAD 环境执行复杂查询并检索见解。
主要功能点
- 自然语言查询: 使用对话式语言查询您的 AD/AAD 环境,无需手动编写 Cypher 查询。
- LLM 驱动的分析: 利用大型语言模型的功能来解释和执行查询。
- 无缝集成: 与存储在 Neo4j 中的现有 BloodHound 数据配合使用,为复杂分析提供用户友好的界面。
- 可定制: 轻松配置系统以适应您的特定环境和工具。
- 提供丰富的工具: 内置大量预定义的工具,用于执行各种 BloodHound 查询,涵盖域、用户、计算机、权限、会话、高价值目标、证书服务、Azure AD 等多个方面的数据分析。
- 支持自定义查询: 允许通过 'tool://run_query' 工具执行自定义 Cypher 查询,以应对更复杂或特定的分析需求。
安装步骤
由于 BloodHound MCP 是 BloodHound 工具的扩展,因此它可能需要与 BloodHound 和 Neo4j 数据库一起部署。具体的安装步骤可能需要参考 BloodHound 及其扩展的官方文档。通常,您需要:
- 安装 Neo4j 数据库: BloodHound MCP 依赖 Neo4j 存储和查询 AD/AAD 数据。确保您已安装并配置 Neo4j 数据库。
- 导入 BloodHound 数据: 使用 BloodHound 收集 AD/AAD 环境数据,并将其导入到 Neo4j 数据库中。
- 部署 BloodHound MCP 服务器: 将 'server.py' 文件部署到服务器环境中。可能需要安装必要的 Python 依赖,例如 'mcp' 和 'neo4j' Python 库。
- 配置环境变量: 根据您的 Neo4j 数据库配置,设置以下环境变量:
- 'BLOODHOUND_URI': Neo4j 数据库的 URI (例如 'bolt://localhost:7687')
- 'BLOODHOUND_USERNAME': Neo4j 用户名 (例如 'neo4j')
- 'BLOODHOUND_PASSWORD': Neo4j 密码 (例如 'bloodhound')
服务器配置
以下 JSON 配置信息可用于 MCP 客户端配置 BloodHound MCP 服务器。请根据您的实际部署环境调整 '<PATH_TO_THE_PROJECT>' 为 'server.py' 文件所在的实际路径。
{ "mcpServers": { "BloodHound": { "name": "BloodHound", // 服务器名称,客户端用于标识和引用 "isActive": true, // 是否激活此服务器配置 "command": "uv", // 启动服务器的命令,这里假设使用 uv 运行器 "args": [ // 命令参数列表 "run", // uv run 命令 "--with", // 附加依赖 "mcp[cli],neo4j", // 指定需要安装的依赖,包括 mcp 命令行工具和 neo4j 驱动 "mcp", // 运行 mcp 命令 "run", // mcp run 子命令,用于运行服务器 "<PATH_TO_THE_PROJECT>server.py" // 服务器 Python 脚本的路径,需要替换为实际路径 ], "env": { // 环境变量 "BLOODHOUND_URI": "bolt://localhost:7687", // Neo4j 数据库 URI "BLOODHOUND_USERNAME": "neo4j", // Neo4j 用户名 "BLOODHOUND_PASSWORD": "bloodhound" // Neo4j 密码 } } } }
注意:
- '<PATH_TO_THE_PROJECT>' 需要替换为 'server.py' 脚本在服务器上的实际文件路径。
- 'command' 和 'args' 中的命令和参数可能需要根据您的服务器环境和 Python 运行方式进行调整。例如,如果您直接使用 'python' 命令运行脚本,可以将 'command' 设置为 'python',并将 'args' 调整为 '["<PATH_TO_THE_PROJECT>server.py"]'。
- 确保 MCP 客户端能够通过配置的命令和参数成功启动 BloodHound MCP 服务器。
基本使用方法
- 启动 MCP 服务器: 根据上述服务器配置,使用 MCP 客户端启动 BloodHound MCP 服务器。服务器将监听在配置的端口 (默认为 3000) 或通过 stdio 进行通信。
- 与 LLM 客户端交互: 使用支持 MCP 协议的 LLM 客户端(例如实现了 MCP 客户端的应用程序或工具),连接到 BloodHound MCP 服务器。
- 自然语言查询: 通过 LLM 客户端,使用自然语言向 BloodHound MCP 服务器提出关于 AD/AAD 环境的查询。
- 利用预定义工具: LLM 客户端可以调用 BloodHound MCP 服务器提供的各种预定义工具 (例如 'tool://list_users', 'tool://find_privileged_users') 来执行特定的数据检索和分析任务。
- 自定义查询: 对于更复杂的需求,可以使用 'tool://run_query' 工具,结合 Cypher 查询语句,执行自定义的 Neo4j 数据库查询。
- 接收结果: 服务器会将查询结果以 JSON-RPC 响应的形式返回给 LLM 客户端,客户端可以解析并展示这些结果。
通过 BloodHound MCP 服务器,LLM 应用可以方便地访问和分析 BloodHound 收集的 AD/AAD 环境数据,从而实现基于自然语言的安全态势感知和渗透测试辅助功能。
信息
分类
AI与计算