
Совместное тестирование безопасности приложений между людьми и агентами через CLI и MCP
Инструменты тестирования безопасности приложений на базе MCP для вашего кодинг-агента.
Это не сканер, а совместная рабочая среда. Агенты плохо справляются с UI и stateful API — вы в этом сильны. Sectool позволяет исследовать приложение через его прокси, пока агент анализирует и модифицирует тот же аутентифицированный трафик, который генерируете вы.
Вы отвечаете за аутентификацию и взаимодействие с UI, агент запрашивает потоки, мутирует запросы, находит отражения (reflections), отслеживает out-of-band взаимодействия и пробует другие вариации. Объединение ваших возможностей упрощает рутинные задачи, снижает вероятность пропуска скрытых индикаторов и делает сложное тестирование более тщательным.
go install github.com/go-appsec/toolbox/sectool@latest
Нет Go? Скачайте бинарник для вашей платформы (Linux, macOS, Windows — amd64 и arm64) из последнего релиза.
sectool mcp
Это запустит MCP-сервер на порту 9119 со встроенным HTTP-прокси на порту 8080.
Укажите в настройках прокси браузера адрес 127.0.0.1:8080 (или порт, заданный через --proxy-port).
Для перехвата HTTPS установите сертификат CA из ~/.sectool/ca.pem (автоматически генерируется при первом запуске). Большинство браузеров принимают его через настройки сертификатов; на macOS его также можно добавить в системную связку ключей.
Используете Burp? Вместо этого следуйте инструкции по настройке прокси в Burp, а затем запустите sectool с флагом sectool mcp --burp.
Claude Code:
claude mcp add --transport http sectool http://127.0.0.1:9119/mcp
Codex (~/.codex/config.toml):
[mcp_servers.sectool]
url = "http://127.0.0.1:9119/mcp"
Работайте с агентом над составлением плана тестирования и выполняйте его совместно. Агент может запрашивать историю прокси, повторно отправлять изменённые запросы, обходить приложение для поиска конечных точек и проверять out-of-band взаимодействия, пока вы выполняете действия в браузере — например, аутентификацию, взаимодействие с UI и его проверку.
Встроенный (Native): Встроенный прокси с точным сохранением трафика (wire fidelity) и поддержкой HTTP/1.1, HTTP/2 и WebSocket. Спроектирован как полноценная замена Burp для MITM-тестирования. Один бинарник содержит MCP-сервер, прокси и CLI — полностью автономен и работает в headless-окружениях.
Burp (опционально): Если вы предпочитаете GUI для просмотра действий агента или у вас уже запущен Burp, установите MCP-расширение из BApp Store и убедитесь, что MCP-сервер работает на http://127.0.0.1:9876/.
| Опция | Описание |
|---|---|
| (по умолчанию) | Автоопределение: сначала пробует Burp MCP, затем переключается на встроенный прокси |
--proxy-port 8080 | Принудительно использует встроенный прокси на указанном порту |
--burp | Принудительно использует Burp MCP (завершится ошибкой, если недоступен) |
Sectool автоматически определяет подходящий рабочий процесс, когда агент вызывает инструмент workflow в начале сессии. Этот шаг можно пропустить и сэкономить токены, указав рабочий процесс заранее:
sectool mcp # По умолчанию: агент выбирает тип задачи через инструмент workflow
sectool mcp --workflow explore # Предустановленный режим исследования
sectool mcp --workflow test-report # Предустановленный режим валидации
sectool mcp --workflow none # Без инструкций рабочего процесса
sectool mcp --workflow multi # Несколько агентов используют один сервер
Инструкции рабочего процесса направляют агентов на совместное тестирование, а не на попытки сделать всё автономно или на пошаговое проведение вас через процесс без добавленной ценности. Если у вас есть идеи по улучшению совместной работы агентов, откройте issue.
Флаг --notes включает инструменты notes_save и notes_list для сохранения наблюдений, привязанных к потокам. По умолчанию отключено, чтобы минимизировать использование контекста в коротких сессиях. Включайте его, когда ожидаете множество находок или сжатие переписки (conversation compaction).
Сервер предоставляет две конечные точки:
/mcp — Streamable HTTP (рекомендуется)/sse — SSE (устаревший, для старых клиентов)CLI разделяет состояние с агентом и предоставляет удобный человеко-ориентированный интерфейс для просмотра, повторной отправки и написания скриптов. Все команды CLI соответствуют MCP-инструментам, поэтому агент работает с тем же состоянием.
# Просмотр того, что захватил прокси, пока вы работали в браузере
sectool proxy summary
sectool proxy list --host example.com
sectool proxy cookies --name session_id
# Обход приложения для обнаружения конечных точек и форм
sectool crawl create --url https://example.com
sectool crawl summary <session_id>
# Повторная отправка захваченного запроса с изменениями
sectool replay send --flow <flow_id> --add-header "X-Test: value"
# Настройка тестирования out-of-band взаимодействий и проверка колбэков
sectool oast create
sectool oast poll <oast_id>
sectool oast get <event_id>
# Сравнение двух потоков, обнаружение отражений, проверка JWT
sectool diff <flow_a> <flow_b> --scope response
sectool reflected <flow_id>
sectool jwt <token>
# Экспорт потока, редактирование офлайн и повторная отправка
sectool proxy export <flow_id>
# ... отредактируйте ./sectool-requests/<flow_id>/request.http ...
sectool replay send --bundle <flow_id>
Используйте sectool <command> --help для получения подробных опций.
Объедините sectool с sidenuclei — собственным сайдкаром, который запускает Nuclei против каждой конечной точки, к которой вы обращаетесь. Запустите sectool с флагом --notes, подключите sidenuclei к вашей сессии, и он просканирует каждую конечную точку, используя реальный захваченный запрос, — тесты выполнятся с вашими фактическими параметрами, куки и аутентифицированной сессией. Находки попадают как заметки finding, привязанные к потоку, который их вызвал, обеспечивая дополнительное покрытие, пока вы и ваш агент сосредоточены на ручном тестировании.
Помимо HTTP и WebSocket, sectool поддерживает кастомные и бинарные протоколы (как правило, запрос/ответ) через модель сайдкар-адаптеров. Напишите адаптер для подключения и взаимодействия, используя наш сайдкар API. Трафик сайдкара попадает в единую временную линию потоков, поэтому инструменты flow_get, diff_flow, replay_send и другие работают без изменений. Адаптеры можно писать на любом языке через API JSON-RPC 2.0 или на Go с помощью SDK-клиента, который обрабатывает регистрацию, кэширование правил и эмиссию потоков. SDK сайдкара и протокол документируют оба подхода.
| Режим | Описание |
|---|
| (по умолчанию) | Агент выбирает тип задачи, вызывая инструмент workflow, и получает инструкции по совместной работе |
explore | Эксплораторное тестирование безопасности; доступны все инструменты |
test-report | Проверка конкретного отчёта об уязвимости; инструменты обхода (crawl) исключены |
none | Нет инструкций рабочего процесса, все инструменты доступны сразу |
multi | Для случаев, когда несколько пользователей или агентов используют один сервер; скрывает функции, где один агент может запутать другого |