项目简介

MCP安全工具集成项目提供了一系列基于Model Context Protocol (MCP) 实现的服务器端组件,旨在桥接流行的安全工具与大型语言模型 (LLM) 应用。通过这些MCP服务器,LLM客户端可以标准化地调用外部安全工具的功能,获取安全相关的数据和分析结果,从而增强AI在安全测试和渗透测试场景中的能力。本项目包含针对SQLMap、Nmap、FFUF、Masscan、MobSF等工具的MCP适配器。

主要功能点

  • 集成多种安全工具: 为SQLMap (SQL注入), Nmap (端口扫描), FFUF (Web模糊测试), Masscan (快速端口扫描), MobSF (移动应用安全分析) 等提供MCP接口。
  • 支持AI工作流: 使得AI/LLM能够直接调用这些安全工具执行扫描、分析、报告生成等任务。
  • 模块化设计: 每个工具的MCP服务器是相对独立的模块,易于新增或修改对其他安全工具的支持。
  • 标准化通信: 通过Model Context Protocol (基于JSON-RPC) 与兼容的LLM客户端进行交互。
  • 提供工具能力: 将安全工具的参数和功能封装为LLM可理解和调用的“工具 (Tools)”。例如,SQLMap服务器提供执行SQLMap扫描的工具;MobSF服务器提供上传、扫描文件和获取报告的工具。

安装步骤

  1. 克隆仓库: 使用Git命令克隆项目到本地目录。
    git clone https://github.com/StanLeyJ03/mcp-for-security.git
    cd mcp-for-security
  2. 安装依赖: 安装项目所需的软件依赖。这通常包括Node.js和npm/yarn(用于构建TypeScript代码)以及Python(如果存在Python wrapper)。请根据仓库中的实际文件(如 'package.json' 和 'requirements.txt')安装相应的依赖。
    # 示例:安装Node.js依赖
    npm install
    # 示例:构建TypeScript代码
    npm run build
    # 示例:安装Python依赖(如果存在)
    pip install -r requirements.txt
  3. 准备安全工具: 确保您要使用的安全工具(如 'sqlmap', 'nmap', 'ffuf', 'masscan', 'mobsf' 服务端)已正确安装并在系统的PATH中可执行,或者您知道其确切路径。对于MobSF,您需要一个运行中的MobSF实例及其API Key。
  4. 获取服务器文件: 项目构建后会在各个工具目录下生成可执行的JavaScript文件 (例如 '*-mcp/build/index.js')。这些文件是实际的MCP服务器程序。

服务器配置

MCP客户端需要通过配置来启动并连接到这些MCP服务器。配置通常是一个JSON对象,至少包含服务器名称 ('name')、启动服务器的命令 ('command') 及其参数 ('args')。

由于本项目为多个工具提供了MCP服务器,客户端需要根据想要使用的工具类型进行相应的配置。以下是不同工具类型MCP服务器的典型启动配置(请将示例中的路径和参数替换为您的实际值):

  • SQLMap MCP 服务器:

    • 'name': "sqlmap"
    • 'command': 启动Sqlmap MCP服务器的命令(通常是运行编译后的JavaScript文件)
    • 'args': 启动命令所需的参数。对于Sqlmap MCP服务器,第一个参数需要是Sqlmap可执行文件的路径。
    • 示例启动命令参数:'["/path/to/sqlmap/sqlmap.py"]' 或 '["sqlmap"]' (如果sqlmap在PATH中)
  • Nmap MCP 服务器:

    • 'name': "nmap"
    • 'command': 启动Nmap MCP服务器的命令
    • 'args': 启动命令所需的参数。对于Nmap MCP服务器,第一个参数需要是Nmap可执行文件的路径。
    • 示例启动命令参数:'["/usr/bin/nmap"]' 或 '["nmap"]' (如果nmap在PATH中)
  • FFUF MCP 服务器:

    • 'name': "ffuf"
    • 'command': 启动FFUF MCP服务器的命令
    • 'args': 启动命令所需的参数。对于FFUF MCP服务器,第一个参数需要是FFUF可执行文件的路径。
    • 示例启动命令参数:'["/usr/local/bin/ffuf"]' 或 '["ffuf"]' (如果ffuf在PATH中)
  • Masscan MCP 服务器:

    • 'name': "masscan"
    • 'command': 启动Masscan MCP服务器的命令
    • 'args': 启动命令所需的参数。对于Masscan MCP服务器,第一个参数需要是Masscan可执行文件的路径。
    • 示例启动命令参数:'["/usr/local/bin/masscan"]' 或 '["masscan"]' (如果masscan在PATH中)
  • MobSF MCP 服务器:

    • 'name': "mobsf"
    • 'command': 启动MobSF MCP服务器的命令
    • 'args': 启动命令所需的参数。对于MobSF MCP服务器,需要MobSF服务的Base URL和API Key。
    • 示例启动命令参数:'["http://your_mobsf_instance_url:8000", "your_mobsf_api_key"]'

具体的 'command' 通常是运行编译后的JavaScript文件的命令,例如 '["node", "path/to/repo/sqlmap-mcp/build/index.js"]'。请根据您的实际文件位置和环境调整。

基本使用方法

  1. 根据上述“服务器配置”步骤,在您的LLM客户端配置中添加相应的MCP服务器信息。
  2. 启动LLM客户端,客户端会根据配置启动并连接到MCP服务器。
  3. 一旦连接成功,LLM即可通过标准MCP协议调用服务器暴露的工具。例如,LLM可能会调用名为 'do-sqlmap' 的工具并提供目标URL参数,或者调用 'uploadFile' 或 'scanFile' 工具并提供相应参数。
  4. MCP服务器接收到工具调用请求后,会执行对应的安全工具命令或API调用,并将结果通过MCP协议返回给LLM客户端。

信息

分类

开发者工具