返回 MCP 目录
public公开dns本地运行

ez-xbow-platform-mcp

一个用于AI驱动渗透测试竞赛的MCP服务器,提供挑战管理、知识库、持久化Kali容器和尝试历史等功能,支持多种协议集成。

article

README

🚀 EZ XBow Challenge MCP

这是一个用于 AI 驱动的渗透测试竞赛的模型上下文协议 (MCP) 服务器。该工具提供了一套完整的 API 接口,能让大语言模型(LLM)自主参与 CTF 挑战。

💡 使用建议

建议将本工具与 kimi-cli-for-xbow 配合使用,或者将其集成到你自己的 Agent 工作流中。

✨ 主要特性

  • 挑战管理:可以列出 CTF 挑战,尝试解决这些挑战,并提交解决方案。
  • 知识库:内建了涵盖 9 种漏洞类别的 CTF 技术文档。
  • 持久化 Kali 容器:能在隔离环境中执行安全工具,如 nmap、sqlmap、gobuster 等。
  • 尝试历史:通过自动笔记管理,可跨会话跟踪和共享发现。
  • 多种协议:支持 stdio、SSE 和 HTTP/2 流模式。

🚀 快速开始

前提条件

  • Go 1.24.7 及以上版本。
  • 支持 buildx 的 Docker。

构建

go build -o xbow-mcp ./cmd/main.go

使用模拟平台运行(测试)

./mock-challenges 目录下,根据模板创建相应的赛题文件。

{
    "challenge_code": "XBEN-123-24",
    "difficulty": "easy",
    "points": 200,
    "target_info": {
        "ip": "192.168.5.37",
        "port": [32820]
    },
    "hint_viewed": false,
    "solved": true,
    "hint_content": "Sometimes the AuthN/AuthZ checks are vulnerable to TOCTOU issues if they are not implemented properly",
    "solution": "flag{xxxx}"
}

启动命令如下:

./xbow-mcp --mock  -listen 127.0.0.1:8080

使用真实平台运行

./xbow-mcp \
  -xbow-url https://your-xbow-platform.com \
  -xbow-token YOUR_AUTH_TOKEN \
  -mode streamable \
  -listen 127.0.0.1:8080

📚 详细文档

可用工具

| 属性 | 详情 | | ---- | ---- | | list_challenges | 获取当前阶段的挑战,包括难度和目标信息 | | do_challenge | 标记挑战为进行中,并增加尝试计数器 | | get_challenge_hint | 检索提示(会扣除分数) | | submit_answer | 提交 Flag 并接收评分结果 | | get_ctf_skill | 访问技术文档(xss、sql、ssti、ssrf、idor、xxe、lfi、codei、afr&pt) | | write_challenge_note | 保存发现和尝试记录,供将来参考 | | read_challenge_note | 查看历史笔记(每 9 次尝试后自动重置) | | kail_terminal | 在持久化 Kali 容器中执行命令 | | get_terminal_history | 通过 ID 检索命令执行结果 |

命令行选项

# 服务器模式
-mode, -m [stdio|sse|streamable]       MCP 服务器协议 (默认: streamable)
-listen, -l ADDR:PORT                  监听地址 (默认: 127.0.0.1:8080)

# 平台配置
-xbow-url, -u URL                      XBow API 基础 URL
-xbow-token, -t TOKEN                  认证 Token

# Docker 配置
-docker-container, -c NAME             容器名称 (默认: xbow-kail)
-docker-image, -i IMAGE:TAG            Docker 镜像 (默认: xbow-kail:latest)
-dockerfile-dir, -f PATH               Dockerfile 路径 (默认: ./Dockerfile)
-docker-exec-log-dir, -d DIR           执行日志目录 (默认: ./.kail-history)

# 模拟平台(本地测试)
--mock                                 启用模拟平台服务器
-mock-addr ADDR:PORT                   模拟服务器地址 (默认: 127.0.0.1:8000)
-mock-dir PATH                         模拟挑战目录 (默认: ./mock-challenges)

集成

MCP 客户端

将以下内容添加到您的 MCP 客户端配置中:

{
    "mcpServers": {
        "ezmcp": {
            "url": "http://127.0.0.1:8080/mcp"
        }
    }
}

本地存储

  • .challenge_history/{challenge_code}/:存储尝试元数据、笔记和历史记录。
  • .kail-history/:存储命令执行记录。

TODO

  • 自动编译并启动 XBOW 靶场并配置赛题信息。

📄 许可证

本项目采用开源许可,详情请参见 LICENSE 文件。

贡献

欢迎提出 Issue 和 Pull Request。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端