使用说明

项目简介

BloodHound MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,它将 BloodHound 这款强大的 Active Directory 安全分析工具与 MCP 协议结合,使得用户可以通过自然语言查询 BloodHound 数据库,进行深入的安全态势分析。该项目旨在为安全专业人员提供更便捷、高效的 Active Directory 安全评估手段,并可通过 LLM 客户端以自然语言交互方式调用 BloodHound 的分析能力。

主要功能点

  • 自然语言查询接口: 允许用户使用自然语言向 BloodHound 数据库提出安全分析问题。
  • 全面的安全分析工具: 内置超过 75 个基于 BloodHound Cypher 查询的专业工具,涵盖域结构映射、权限提升路径、Kerberos 安全问题、证书服务漏洞、AD 健康状况评估、NTLM 中继攻击向量、委派滥用等多个安全分析类别。
  • 集成 BloodHound 和 Neo4j: 利用 BloodHound 存储的 Active Directory 关系数据,通过 Neo4j 数据库执行查询和分析。
  • MCP 服务器: 作为一个 MCP 服务器实现,可以与兼容 MCP 协议的 LLM 客户端进行交互,提供结构化的安全上下文信息和分析能力。

安装步骤

  1. 克隆仓库

    git clone https://github.com/MorDavid/BloodHound-MCP-AI.git
    cd BloodHound-MCP-AI
  2. 安装依赖

    pip install -r requirements.txt
  3. 配置环境变量 创建 '.env' 文件,或直接设置系统环境变量,配置 Neo4j 数据库连接信息:

    BLOODHOUND_URI=bolt://localhost:7687  # Neo4j URI,默认为 bolt://localhost:7687
    BLOODHOUND_USERNAME=neo4j           # Neo4j 用户名,默认为 neo4j
    BLOODHOUND_PASSWORD=bloodhoundcommunityedition # Neo4j 密码,默认为 bloodhoundcommunityedition

    注意: 请确保 Neo4j 数据库已启动,并且 BloodHound 数据已加载到数据库中。

服务器配置

为了让 MCP 客户端能够连接到 BloodHound MCP Server,需要在客户端的 MCP 服务器配置中添加以下信息。以下为 JSON 格式的配置示例,请根据实际情况进行调整。

{
  "serverName": "BloodHound-MCP",  // 自定义服务器名称,用于在客户端中标识
  "command": "python",             // 启动服务器的命令,这里使用 python 解释器
  "args": [                        // 启动命令的参数
    "<Your_Path>/BloodHound-MCP.py" // BloodHound-MCP.py 脚本的绝对或相对路径,请替换为实际路径
  ],
  "env": {                         // 环境变量配置(可选,如果已设置系统环境变量则无需在此配置)
    "BLOODHOUND_URI": "bolt://localhost:7687",       // Neo4j URI,与 .env 文件或系统环境变量保持一致
    "BLOODHOUND_USERNAME": "neo4j",                // Neo4j 用户名,与 .env 文件或系统环境变量保持一致
    "BLOODHOUND_PASSWORD": "bloodhoundcommunityedition" // Neo4j 密码,与 .env 文件或系统环境变量保持一致
  }
}

注意:

  • '<Your_Path>' 需要替换为 'BloodHound-MCP.py' 脚本所在的实际文件路径。
  • 如果已经在系统环境变量或 '.env' 文件中配置了 'BLOODHOUND_URI', 'BLOODHOUND_USERNAME', 'BLOODHOUND_PASSWORD',则 'env' 部分可以省略。
  • 'serverName' 可以自定义,用于在 MCP 客户端中引用该服务器配置。

基本使用方法

  1. 启动 MCP 服务器: 在 'BloodHound-MCP-AI' 仓库目录下,运行以下命令启动服务器:

    python BloodHound-MCP.py

    服务器默认使用 'stdio' 传输协议,启动后会监听标准输入输出。

  2. 配置 MCP 客户端: 在兼容 MCP 协议的 LLM 客户端中,配置上一步生成的服务器配置信息,确保客户端能够连接到 BloodHound MCP Server。

  3. 通过客户端发送自然语言查询: 使用 LLM 客户端,向 BloodHound MCP Server 发送自然语言的安全分析问题。例如:

    • "Show me all paths from kerberoastable users to Domain Admins" (显示从可 Kerberoast 用户到域管理员的所有路径)
    • "Find computers where Domain Users have local admin rights" (查找域用户拥有本地管理员权限的计算机)
    • "Identify Domain Controllers vulnerable to NTLM relay attacks" (识别易受 NTLM 中继攻击的域控制器)

    服务器会将自然语言查询转换为相应的 BloodHound Cypher 查询,并在 Neo4j 数据库中执行,最后将结果返回给客户端。

注意: 请确保 BloodHound 数据已正确采集并加载到 Neo4j 数据库中,并且 Neo4j 数据库服务正在运行。

信息

分类

AI与计算