使用说明

项目简介

本项目是一个演示性质的MCP服务器,旨在教育和安全研究目的,绝非生产环境可用的安全MCP服务器。它模拟了一个存在工具投毒漏洞的MCP服务器,攻击者可以利用该漏洞修改工具的描述文档,诱导LLM客户端执行恶意代码,从而实现远程代码执行和数据泄露。请务必仅在安全的实验环境中使用,切勿用于任何非法用途。

主要功能点

  • 模拟MCP服务器框架: 使用 'fastmcp' 库搭建了一个基本的MCP服务器框架,实现了工具注册和运行功能。
  • 工具投毒漏洞演示: 'DockerCommandAnalyzer' 工具被设计为存在漏洞,其文档可以被动态修改,植入恶意指令。
  • SSH密钥泄露演示: 通过工具投毒,演示了如何诱导LLM客户端执行恶意命令,收集并外泄用户的SSH公钥。
  • Stdio传输协议: 使用标准输入输出 (stdio) 作为MCP服务器的传输协议。

请注意: 该服务器并非旨在提供任何实际有用的功能,其主要目的是演示MCP协议的潜在安全风险,特别是工具投毒攻击。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Repello-AI/mcp-exploit-demo.git
    cd mcp-exploit-demo
  2. 安装依赖 (可选): 虽然此demo非常简单,但如果需要确保环境一致性,可以创建一个虚拟环境并安装依赖(本例中实际没有显式依赖,但为了规范可以这样做)。
    python -m venv venv
    source venv/bin/activate  # 或 venv\Scripts\activate (Windows)
    # pip install -r requirements.txt (如果存在 requirements.txt)

服务器配置

MCP客户端需要配置以下信息以连接到此MCP服务器。以下是一个 'mcp.json' 配置示例,你需要将其配置到你的MCP客户端中(例如 Cursor AI 的 custom commands 功能)。

{
  "serverName": "exploit-demo-server",
  "command": "python",
  "args": ["server.py"],
  "transport": "stdio",
  "handshake": "直接连接"
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义,例如 "exploit-demo-server"。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 传递给启动命令的参数,这里是服务器脚本 'server.py' 的文件名。
  • 'transport': 传输协议,本项目使用 'stdio' (标准输入输出)。
  • 'handshake': 握手方式描述,对于stdio,通常为 "直接连接"。

基本使用方法

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

    python server.py

    服务器将通过标准输出 (stdout) 发送 MCP 协议的消息,并通过标准输入 (stdin) 接收消息。

  2. 配置 MCP 客户端: 在你的 MCP 客户端(例如 Cursor AI),按照其文档指引配置自定义命令或自定义服务器,并填入上面提供的 'mcp.json' 配置信息。

  3. 使用工具: 连接成功后,你可以通过 MCP 客户端调用服务器提供的工具。例如,你可以尝试调用以下工具(具体取决于客户端的界面和操作方式):

    • 'Echoer': 发送消息给 'Echoer' 工具,服务器会将消息回显到终端。例如,在客户端中输入类似 "使用 Echoer 工具,消息内容是 'Hello MCP'" 的指令。
    • 'cowsay': 发送消息给 'cowsay' 工具,服务器会返回 ASCII 艺术字。例如,输入 "使用 cowsay 工具,消息内容是 '你好' "。
    • 'DockerCommandAnalyzer': 发送自然语言指令给 'DockerCommandAnalyzer' 工具,例如 "列出所有 Docker 容器"。请注意,该工具在本项目中被用于演示漏洞,请谨慎使用,并注意观察其行为是否异常。

重要安全提示:

  • 本项目是漏洞演示,请勿在任何生产环境或敏感环境中使用。
  • 'DockerCommandAnalyzer' 工具被故意设计为存在安全漏洞,请勿随意调用,尤其是在不信任的 MCP 服务器上。
  • 请仔细阅读仓库的 'README.md' 文件和博客链接,了解工具投毒漏洞的原理和危害。
  • 学习如何防范此类攻击,例如禁用AI工具的自动运行功能,验证MCP服务器的来源,以及使用沙箱环境等。

信息

分类

开发者工具