一、MetasploitMCP 是什么
MetasploitMCP(GH05TCREW/MetasploitMCP)是 Kali Linux 2026.1 官方仓库新增的 8 个工具之一------一个面向 Metasploit Framework 的 MCP(Model Context Protocol)服务器。它由 Python 编写(约 103KB),通过标准化的 MCP 协议在大型语言模型(LLM)和 Metasploit 之间架设桥梁,让 AI 助手可以用自然语言直接操控 Metasploit 的渗透测试能力。
官方安装: sudo apt install metasploitmcp
**依赖:**python3、python3-fastapi、python3-fastmcp、python3-mcp、python3-pymetasploit3、python3-uvicorn
二、核心功能(12 个 MCP 工具)
| 类别 | 工具 | 说明 |
|---|---|---|
| 信息收集 | list_exploits | 搜索和列出可用 Metasploit 漏洞利用模块 |
| list_payloads | 按平台/架构过滤,搜索可用 payload 模块 | |
| 攻击执行 | run_exploit | 配置并对目标执行漏洞利用(可选先运行 check) |
| run_auxiliary_module | 运行任意辅助模块(自定义选项) | |
| run_post_module | 对已有 session 运行后渗透模块 | |
| Session 管理 | list_active_sessions | 显示当前所有 Metasploit session 详情 |
| send_session_command | 在活跃 shell 或 Meterpreter session 中执行命令 | |
| terminate_session | 强制终止一个 session | |
| 监听器管理 | list_listeners | 列出所有活跃 handler 和后台作业 |
| start_listener | 创建新的 multi/handler 监听器 |
三、AI 集成场景
MetasploitMCP 的核心价值在于将 Metasploit 的能力以 LLM 可调用工具的形式暴露出来,主要集成场景:
1. 自然语言驱动的渗透测试
用户只需说"帮我用 EternalBlue 漏洞攻击 192.168.1.100",AI 自动调用 list_exploits 搜索模块 → run_exploit 执行攻击 → list_active_sessions 确认 session 建立。
2. Claude Desktop / Claude Code 集成
通过 claude_desktop_config.json 配置 stdio 传输模式,Claude Desktop 可直接对话式操控 Metasploit,无需记忆 msfconsole 命令语法。
3. 多 AI 客户端 HTTP/SSE 模式
MCP 服务器以 HTTP/SSE 模式运行(默认端口 8085),可被任何兼容 MCP 协议的 AI 助手远程调用,适合团队共享使用。
4. 自动化渗透工作流
AI 可以根据目标环境自动选择合适的漏洞利用模块和载荷、执行后渗透操作,形成半自动化红队评估流程。
四、典型使用配置
步骤 1:启动 Metasploit RPC 服务
msfrpcd -P yourpassword -S -a 127.0.0.1 -p 55553
步骤 2:配置环境变量
export MSF_PASSWORD=yourpassword
export MSF_SERVER=127.0.0.1
export MSF_PORT=55553
export MSF_SSL=false
export PAYLOAD_SAVE_DIR=/path/to/save/payloads # 可选,自定义载荷保存路径
步骤 3:启动 MCP 服务器(两种传输模式)
STDIO 模式(Claude Desktop 等本地 AI 客户端):
python MetasploitMCP.py --transport stdio
HTTP/SSE 模式(远程 AI 客户端):
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
# 客户端连接端点:http://your-server-ip:8085/sse
Claude Desktop 配置示例
{
"mcpServers": {
"metasploit": {
"command": "uv",
"args": ["--directory", "/path/to/MetasploitMCP", "run", "MetasploitMCP.py", "--transport", "stdio"],
"env": { "MSF_PASSWORD": "yourpassword" }
}
}
}
五、与 msfconsole 的核心区别
| 维度 | msfconsole | MetasploitMCP |
|---|---|---|
| 交互方式 | 手动输入命令,交互式终端 | LLM 函数调用,自动化调用链 |
| 适用人群 | 熟练的渗透测试工程师 | 希望用自然语言操作或集成 AI 的场景 |
| 工作流编排 | 人工主导,每步手动执行 | AI 可自动编排完整渗透流程 |
| 远程控制 | 需要 RPC(msfrpcd)单独配置 | 内置 MCP 协议,原生支持 AI 客户端 |
| 会话保持 | 在 msfconsole 内管理 session | 通过 send_session_command 等工具管理 |
| 多客户端 | 单用户单会话 | 可同时服务于多个 AI 客户端(HTTP 模式) |
| 自然语言理解 | 无 | AI 层理解用户意图,自动选择模块/选项 |
**本质区别:**msfconsole 是面向人的交互式 CLI 工具;MetasploitMCP 是面向 AI Agent 的程序化接口。两者不是替代关系------MetasploitMCP 底层依然调用 msfrpcd(即 Metasploit RPC),是对现有能力而非功能本身的扩展。
六、应用案例
案例 1:AI 辅助漏洞验证
红队工程师想让 AI 自动验证内网中是否存在 MS17-010 漏洞:
- 用户:"帮我检查 192.168.1.0/24 网段哪些机器有 EternalBlue 漏洞"
- AI → list_exploits("ms17_010") → 确认模块路径 → 对每个目标调用 run_exploit(..., check=True) → 汇总结果
案例 2:自然语言后渗透
- 用户:"在 session 1 上帮我收集所有登录用户信息"
- AI → run_post_module("windows/gather/enum_logged_on_users", session_id=1)
案例 3:快速载荷生成
- 用户:"生成一个 Windows x64 Meterpreter 反向 TCP 载荷到 /tmp/payload.exe"
- AI → generate_payload("windows/x64/meterpreter/reverse_tcp", "exe", {"LHOST": "...", "LPORT": 4444})
⚠️ 安全声明:MetasploitMCP 本身在工具说明中明确标注------仅在拥有明确授权的测试环境中使用。所有漏洞利用和后渗透操作均需合法授权,未经授权的网络渗透属违法行为。