Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
masq — Разведка в реальном времени и аудит состояния защищённости инфраструктуры AI-агентов: сканирует конфигурации MCP, журналы сессий и API на предмет секретов, отравленных каталогов и утечек CoT. | Kitploit
Инструменты/GitLabGitLab/wattocyber/masq
РазведкаСтатический анализАнализ уязвимостейТестирование безопасности APIАудит конфигурацииОбнаружение СекретовБезопасность Цепочки ПоставокБезопасность ИИАнализ Журналов
GitLabwattocyber/masq

masq

Разведка в реальном времени и аудит состояния защищённости инфраструктуры AI-агентов: сканирует конфигурации MCP, журналы сессий и API на предмет секретов, отравленных каталогов и утечек CoT.

3 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
РепозиторийСайт

masq: сядьте в кресло агента

Маскарад эпохи Возрождения. Сядьте в кресло агента.

masq

Сядьте в кресло агента.

CLI, который говорит на MCP и OpenAI-совместимом языке так, как это делает модель, а затем формирует отчёт в стиле linpeas. Находки плюс рекомендации по исправлению. Никаких эксплойт-пейлоадов. Без расшифровки CoT.

ЧтоЖивая разведка инфраструктуры агентов: конфиги MCP, слушатели, журналы сессий, эхо зашифрованной цепочки рассуждений, API без аутентификации, отравление каталогов, деревья навыков.
Для когоОператоры Hermes, Grok, Claude, Cursor, VS Code, Codex и локальных стеков моделей, которым нужно видеть то же, что видит агент.
Чем не являетсяНе генератор джейлбрейков. Не декодер слабых моделей из arXiv:2608.09867. Не runtime-шлюз.
СтатусБета. Публичный контрольный рубеж — офлайн cargo test. Живой --lab — только для хостов, которыми вы владеете.
ЛицензияMIT

pipeline license rust

Почему это существует

Статические сканеры MCP (Invariant mcp-scan, mcp-security-scan) линтуют схемы и конфиги. Инструменты проверки здоровья пингуют initialize. Дыра — это кресло:

  1. Зашифрованные блобы рассуждений эхом возвращаются клиенту и сохраняются в журналах сессий. Они переносимы между сессиями, пользователями и более слабыми родственными моделями (arXiv:2608.09867). Сбор 315 тыс. публичных блобов позволил восстановить 182 учётных данных. masq обнаруживает такие блобы. Он их не декодирует.
  2. Значительная доля публичных MCP-серверов не имеет аутентификации. Если вы можете выполнить initialize, вы и есть агент.
  3. Локальные порты моделей (:11434, :8000) часто слушают на 0.0.0.0 без bearer-токена.

Колёса, на которых мы едем, а не переписываем: существующие детекторы каталогов + pin/check, netstat, ureq только GET, таксономия находок OWASP MCP Top 10. Мы не клонировали mcp-scan и mcp-security-scan.

Установка

root@kitploit:~
git clone https://gitlab.com/WattoCyber/masq.git
cd masq
cargo install --path .
# binary: masq
cargo test
# expect: exit 0

Мировой набор тестов (бинарник против фикстур, локальных моков, разведки этого хоста):

root@kitploit:~
python scripts/world_suite.py
# field = ~/.grok/sessions  lab = allowlisted hosts  bench = frozen-corpus wall
python scripts/world_suite.py --lanes all

Удалённая машина в стиле Kali, с рабочего стола:

root@kitploit:~
MASQ_REMOTE_HOST=user@host bash scripts/deploy_kali.sh
# on the box:
~/.local/bin/masq --plain
MASQ_LAB_HOSTS=... ~/.local/bin/masq --lab --plain

Счастливый путь

root@kitploit:~
masq                         # live stream + posture report (includes skills)
masq --lab                   # same, plus allowlisted homelab hosts
masq tui                     # boxed TUI, stays until Ctrl+C
masq --plain                 # report only, no live stream
masq --json                  # machine report
masq recon                   # same dump, recon only
masq sniff ~/.grok/sessions  # CoT / secrets in session logs
masq sniff --timeline PATH   # file-order blob/secret/reason lines (no decrypt)
masq api                     # GET /v1/models on local (and --lab) ports
masq sit --url http://127.0.0.1:4443/mcp
masq chameleon --url http://127.0.0.1:4443/mcp -o /tmp/chameleon
masq chameleon --url ws://127.0.0.1:9000/mcp -o /tmp/chameleon
masq chameleon --url unix:///tmp/mcp.sock -o /tmp/chameleon
masq chameleon --token-file ~/.secrets/mcp.txt --url http://127.0.0.1:9/mcp -o /tmp/chameleon
masq chameleon -- python -m their_mcp -o /tmp/chameleon
# then: npx -y @copilotkit/aimock --config /tmp/chameleon/aimock.json
masq discover                # find VS Code / Cursor / Claude / Grok / Hermes MCP configs
masq proxy --upstream http://127.0.0.1:4443/mcp --block
masq sast ./server           # local sinks (semgrep if present)
masq classify --url http://127.0.0.1:4443/mcp --lab
masq overnight --lab --hours 6
masq map --from reports/overnight-YYYYMMDD/latest.json

# catalog
masq fixtures/t3_line_jump.json
masq fixtures/clean_calculator.json --trusted
masq pin fixtures/clean_calculator.json -k calc
masq check fixtures/clean_calculator.json -k calc
masq detectors

Код возврата: 0 чисто · 2 находки ≥ --fail-on (по умолчанию high) · 1 ошибка.

TUI опционален (masq tui или --tui). По умолчанию в tty идёт живой поток в стиле linpeas, затем отчёт. Для cron используйте --plain / --no-color.

Команды

Псевдонимы: doctor / audit → scan. chameleon → mimic. posture → seat.

Модули и OWASP MCP Top 10

Транспорты и аутентификация

sit / chameleon говорят по:

  • Streamable HTTP (http://)
  • HTTP+SSE (событие GET endpoint, затем POST)
  • ws://
  • unix: и npipe:
  • stdio (--framing auto пробует NDJSON, затем Content-Length)

Аутентификация (никогда не попадает в отчёт):

  • --token-file PATH (первая строка становится Authorization: Bearer …)
  • --token-env VAR
  • --header "Name: value" (повторяемый)

wss:// из коробки нет. Через Stunnel к ws:// или используйте HTTP. HTTP не следует ни за одним редиректом.

Stdio-initialize не анонсирует sampling. Помечайте серверные sampling / elicitation. URL документации (model-catalog.json, /docs/) намеренно игнорируются.

Хосты, которые обнаруживает masq

Корни конфигов и навыков в $HOME / %USERPROFILE%:

VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Grok, Hermes, Codex, Continue, Gemini CLI, Amp, Kiro, OpenCode, Amazon Q, Antigravity, OpenClaw.

Плюс .mcp.json в текущем каталоге и MASQ_EXTRA_CONFIG (список путей ОС).

Лабораторный allowlist (--lab)

--lab — это allowlist, а не скан /24. Он настраивается оператором. Кроме loopback ничего не зашито в бинарник.

  • Переменная окружения MASQ_LAB_HOSTS: host:port или хосты, разделённые запятыми, пробелами или переводами строк.
  • Файл .masq/lab-hosts: по одному хосту на строку, комментарии #.

Пример:

root@kitploit:~
export MASQ_LAB_HOSTS="192.0.2.10,192.0.2.11"
masq --lab

MASQ_LAB_HOSTS читается для API-проб и сводки флота в TUI. MASQ_SIT_URLS (или --mcp-url) задаёт MCP-URL для sit с --lab.

sit --url вне loopback требует --lab и хост из allowlist. initialize без аутентификации на loopback — High. Вне машины — Critical.

Не направляйте proxy на хост, на котором вы бы не стали выполнять sit.

Жёсткие ограничения

Приоритет sniff: сначала chat_history.jsonl, затем Hermes request_dump_*, потом остальные jsonl. Обход завершается. Сохраняются не первые 300 результатов WalkDir. Чтобы копнуть глубже, укажите masq sniff <one-session-dir>.

Ночной прогон

root@kitploit:~
masq overnight --lab --hours 6 --interval-mins 20
# writes <cwd>/reports/overnight-YYYYMMDD/{latest.json,latest.md,latest.txt,delta.txt}

Не изменяет конфиги. Не вызывает tools/call на живом сервере. delta.txt содержит baseline / no_change / CHANGE, а также + severity title и - severity title.

classify --llm и надстройка триажа в TUI — единственные POST-запросы completions (Grok /v1/chat/completions, подтверждение оператора). Без ключа — только локальные рекомендации. Ключ берётся из XAI_API_KEY или ~/.secrets/xai.txt. Никогда не выводится.

Архитектура

root@kitploit:~
CLI (clap)  masq
  → seat | recon | sniff | api | sit | chameleon
  → discover | proxy | sast | classify | overnight | map
  → scan | multi | pin | check | detectors | tui
  → client (HTTP / SSE / ws / unix / npipe / stdio)
  → normalize (full-schema walk, caps)
  → detectors + sniff + recon + sit findings
  → report (text / JSON / Markdown) + optional TUI

Библиотечный крейт: masq (scan_from_tools_list, scan_stdio, run_seat, PostureReport).

Честные рамки

Не выгружайте содержимое ~/.secrets. Recon подсчитывает файлы. Путь + «loaded».

Офлайн-тесты

root@kitploit:~
cargo test
cargo clippy --all-targets -- -D warnings

Ожидаемый код возврата 0.

Фикстуры: T1 отравление описания, T3 line-jump, T6 имена параметров, T8 ANSI, T13 дублирующиеся имена, rugpull при пиннинге, multi-list, живой NDJSON-мок в tests/mock_mcp_server.py.

Секреты не попадают в git (reports/, data/, .env, *.key, secrets/, .masq/).

Лицензия

MIT. Авторские права 2026 SamsonCyber.

Скачать инструмент
КомандаЧто делает
seat (по умолчанию)Полная оценка состояния: recon + sniff + api + skills + опциональный sit.
reconКонфигурационные файлы, слушатели, теневые URL, sudo argv, npx/uvx без пиннинга.
sniffЖурналы сессий на предмет секретов, открытых рассуждений, эха зашифрованного CoT.
sniff --timelineСтроки T0001 в порядке файлов. Без расшифровки. Не более 200 событий на файл.
apiТолько GET /v1/models (и аналоги) на loopback; --lab добавляет хосты из allowlist.
sitГоворит на MCP: initialize, notifications/initialized, tools/list, prompts/list, resources/list. Никогда не инициирует tools/call.
chameleon / mimicОпросить живой или файловый каталог, записать catalog.json + aimock.json + calls.json. Примеры конвертов tools/call — только для aimock.
discoverВывести известные пути конфигов MCP агентов. Без запуска.
proxyПроксирует JSON-RPC агента. --block отклоняет параметры/результаты tools/call, похожие на секреты. По умолчанию слушает на 127.0.0.1:9877.
sastЛокальные источники (sinks) в исходниках. Использует semgrep, если установлен.
classifyЛокальная проверка IPI/отравления живого tools/list. --llm спрашивает Grok (ключ оператора).
overnightПовторяет seat, пока не истечёт --hours. Пишет отчёты. Не изменяет конфиги.
mapТекстовые запросы по путям атак над сохранённым JSON оценки. Без диаграмм.
scan / multiСтатический линт каталога (голые пути .json переписываются сюда).
pin / checkХранилище пиннинга по хешу содержимого (.masq/pins.json) для CI против rug-pull.
detectorsВывести набор правил каталога.
tuiОконный seat. Работает до Ctrl+C.
МодульПокрытие
reconMCP01 пути секретов, MCP04 npx/uvx без пиннинга, MCP07/09 слушатели и теневые URL, MCP05 sudo argv
catalogMCP03 отравление схемы / затенение / rugpull
skillsТе же детекторы каталога для SKILL.md (Hermes, Grok, Claude, Cursor, Codex, Gemini, Amp, Kiro, OpenCode, OpenClaw). Без облака Snyk.
sitMCP02 расширение полномочий, MCP03 живой tools/list, MCP07 initialize без аутентификации, анонс sampling/elicitation сервера, Streamable HTTP (2025-06-18), затем HTTP+SSE (2024-11-05), Origin DNS-rebinding
sniffMCP01 + MCP10 + эхо зашифрованного CoT по arXiv:2608.09867 (включая thinkingSignature)
apiMCP07 /v1/models без аутентификации, MCP09 связка в LAN
watchpin-diff по .masq/pins.json + навыкам. Включается в overnight. Не прокси.
fleetСводка по allowlist лаборатории в одной секции FLEET
mapТекстовые запросы по путям над отчётом о состоянии
ОграничениеЗначение
файл tools/list8 МиБ
файл sniff8 МиБ (при большем размере берётся выборка первых 2 МиБ)
файлов sniff / корень300 (самые свежие по mtime в пределах приоритета)
событий timeline / файл200, затем timeline truncated
строк T в timeline500 (inspect и collapse всё равно выполняются)
глубина обхода схемы64
инструментов на инвентаризацию5_000
HTTP-пробатолько GET, 2 с API / 5 с sit
рукопожатие sitтаймаут + kill
Этот инструментНе этот инструмент
Выступать в роли клиента агента (initialize + list)Инициировать tools/call против живого сервера
Обнаруживать эхо зашифрованного CoT в журналахРасшифровывать CoT или воспроизводить его в более слабой модели
GET /v1/modelsPOST completions (кроме опционального триажа в TUI / classify --llm)
Проверка rugpull по пин-хешу каталогаПодписанная PKI / корпоративное хранилище пинов
Проксировать tools/call агента в proxy --blockПолноценный DLP-шлюз времени выполнения / SaaS control plane
Локальный линт дерева навыковSnyk / облачный SCA
ПроверкаОжидание
masq fixtures/clean_calculator.json --trustedкод возврата 0
masq fixtures/t3_line_jump.jsonкод возврата 2
masq fixtures/t13_duplicate_names.jsonкод возврата 2 (затенение инструментов)
masq sniff --timeline fixtures/ (non-TTY / --json)T0001 только с этим флагом
masq chameleon fixtures/clean_calculator.json -o <tmpdir>catalog.json, aimock.json, calls.json
Живой masq --no-colorтокены скрыты (…, не полностью sk-)