项目简介

这是一个基于 Model Context Protocol (MCP) 构建的服务器端应用,旨在将各种常用的渗透测试和安全扫描工具集成到支持 MCP 协议的大型语言模型 (LLM) 客户端中。通过这个服务器,LLM 客户端可以轻松调用这些工具执行任务,获取结构化的安全信息。

主要功能点

  • 全面的渗透测试工具集: 集成了目录扫描、漏洞扫描(如 XSS, SQL 注入, SSRF)、API 测试、网络侦察等多种安全工具。
  • 自动化流程: 能够执行复杂的扫描任务,并收集结果。
  • 报告生成: 支持生成安全扫描报告。
  • LLM 客户端集成: 特别为如 Claude Desktop 等支持 MCP 的客户端设计,提供易于交互的界面。

安装步骤

本项目推荐使用 Docker 进行部署,以简化环境依赖问题。

  1. 安装依赖:

    • 确保您的系统已安装 Docker 和 Docker Compose。
    • 对于本地安装(不推荐),需要 Python 3.10+ 和 'uv' 包管理器,并手动安装所需的系统级渗透测试工具(如 nmap, whatweb, dirsearch, sqlmap, nuclei, ffuf, subfinder, amass 等)。
  2. 克隆仓库并进入目录:

    git clone https://github.com/ch1nhpd/Pentest-Tools-MCP-Server.git
    cd Pentest-Tools-MCP-Server
  3. 创建必要目录:

    mkdir -p reports templates wordlists
  4. 配置(可选):

    • 根据需要编辑 'config.json' 文件调整工具路径或wordlist。
    • 将自定义 wordlist 放入 'wordlists/custom/' 目录。
  5. Docker 部署(推荐):

    • 在仓库根目录下运行构建和启动命令:
      docker-compose up -d --build
    • 等待容器启动完成。您可以使用 'docker-compose ps' 检查容器状态,或使用 'docker-compose logs -f' 查看日志。

服务器配置(MCP 客户端)

本 MCP 服务器通过标准输入/输出 (stdio) 协议与客户端通信。要将其连接到如 Claude Desktop 等 MCP 客户端,您需要修改客户端的配置文件(通常是 'claude_desktop_config.json' 或类似文件)。

在客户端配置文件中找到或创建 'mcpServers' 部分,并添加一个新的服务器条目。例如,为该服务器指定一个名称(如 'pentest-tools'),然后配置启动它的命令、参数和工作目录。

配置的关键参数说明:

  • 'command': 指定启动 MCP 服务器进程的命令。对于 Docker 方式,这个命令通常是 'docker-compose'。
  • 'args': 一个字符串数组,包含传递给 'command' 命令的参数。对于 Docker 方式,这会包含运行容器、执行 Python 脚本的指令,例如 '["run", "--rm", "pentest-tools", "python3", "pentest-tools-mcp-server.py"]'。
  • 'cwd': 指定执行 'command' 命令时的工作目录。这必须是包含 'docker-compose.yml' 文件和 'pentest-tools-mcp-server.py' 文件的绝对路径。在 Windows 上使用双反斜杠 '\',在 Linux/macOS 上使用正斜杠 '/'。

添加配置后,保存客户端配置文件并重新启动 MCP 客户端。客户端会自动检测并连接到配置的 MCP 服务器。

基本使用方法

连接成功后,您可以在 MCP 客户端中通过特定的命令或自然语言与服务器交互,调用渗透测试工具。

例如,在 Claude Desktop 中,可以使用以下斜杠命令:

  • 执行侦察任务: '/recon example.com'
  • 执行目录扫描: '/scan example.com --type directory'
  • 执行漏洞扫描(完整/XSS/SQLi/SSRF): '/scan example.com --type full' '/scan example.com --type xss' '/scan example.com --type sqli' '/scan example.com --type ssrf'
  • 执行 API 测试: '/scan api.example.com --type api'

您也可以尝试使用自然语言描述任务,LLM 客户端会尝试将其转换为对 MCP 服务器工具的调用。

信息

分类

开发者工具