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

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

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

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

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

Категории

Все категории
Loading categories
MCPTrace — Плагин Volatility 3, который извлекает кандидатов на сообщения MCP/JSON-RPC из дампов памяти Windows и Linux, сохраняя необработанные байты, адреса и SHA-256 для проверки. | Kitploit
Инструменты/GitHubGitHub/kowntaewook/mcptrace
Криминалистика памятиФорензикаСбор информацииАнализ вредоносных программЦифровая криминалистикаРеагирование на ИнцидентыБезопасность ИИАнализ Журналов
GitHubkowntaewook/mcptrace

MCPTrace

Плагин Volatility 3, который извлекает кандидатов на сообщения MCP/JSON-RPC из дампов памяти Windows и Linux, сохраняя необработанные байты, адреса и SHA-256 для проверки.

Репозиторий
7558 дней назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

MCPTrace

MCPTrace — это плагин Volatility 3 для извлечения кандидатов сообщений MCP/JSON-RPC из дампов памяти Windows и Linux. Он исследует память процессов на предмет запросов, ответов, уведомлений, имён инструментов и аргументов вызовов, а затем записывает восстановленное содержимое вместе с его расположением в памяти.

Проект сосредоточен на доказательствах, которые аналитик может проверить и верифицировать. Каждый артефакт сохраняет исходные байты, идентификатор процесса, виртуальный адрес, кодировку, длину и хеш SHA-256. Результаты можно экспортировать в формате JSONL для дальнейшего анализа или сравнения с другими журналами. MCPTrace работает с полученным образом памяти и не требует LLM или внешнего AI API.

Возможности

  • Извлечение артефактов JSON-RPC в кодировках UTF-8 и UTF-16LE из читаемой памяти процессов.
  • Идентификация методов, связанных с MCP, и форм ответов, включая имена и аргументы tools/call.
  • Сохранение исходных байтов и адресов для последующей верификации по образу.
  • Предложение связей запрос/ответ с использованием одного и того же PID и типизированного ID запроса.
  • Применение необязательных, определяемых аналитиком правил к аргументам инструментов, например проверок путей или URL.
  • Экспорт артефактов и сводок по процессам, включая нечитаемые байты, ошибки и ограничения поиска.

Текущие цели анализа — Windows x64 и Linux x86-64. Название плагина относится к операционной системе в образе памяти, независимо от ОС, используемой для запуска Volatility.

Как это работает

MCPTrace использует перечисление процессов и трансляцию адресов Volatility. В Windows он обходит Virtual Address Descriptors (VAD) процессов; в Linux — Virtual Memory Areas (VMA). Эти отображения определяют, какие диапазоны адресов процессов исследуются. Оба адаптера используют общий код вырезания сообщений, корреляции, политик и экспорта.

В пределах читаемых диапазонов сканер ищет литеральные маркеры версии JSON-RPC и находит вокруг них кандидаты в объекты JSON. Он обрабатывает вложенные объекты, экранированные символы, фигурные скобки внутри строк и сообщения, охватывающие смежные блоки чтения. JSON с дублирующимися ключами или неподдерживаемыми идентификаторами отклоняется, а не молча переинтерпретируется. Релевантность MCP определяется по известным именам методов, формам ответов и связанным ID запросов; это не полная валидация схемы MCP.

Отсутствующая память остаётся отсутствующей. Читатель не заполняет пробелы нулями и не объединяет байты из разных VAD/VMA. С --include-partial неразобранные фрагменты могут быть показаны отдельно, без изобретения отсутствующих ID или аргументов. Большие немаппированные диапазоны можно пропускать с использованием информации таблиц страниц, а нечитаемые диапазоны адресов остаются видимыми в статистике сканирования.

Корреляция намеренно консервативна. Числовой ID, такой как 1, отличается от строкового ID "1", и сообщения в разных процессах не связываются автоматически. Несколько различных представлений, связанных с одним ID, помечаются как неоднозначные. Кандидатные связи сами по себе не восстанавливают сессию, направление сообщений или временную шкалу выполнения.

Установка

Требуется Python 3.10+. Установка включает закреплённую зависимость фреймворка, volatility3==2.28.2. Держите каталог plugins/ репозитория доступным: Python-пакет устанавливается через pip, а -p plugins загружает адаптеры Volatility.

git clone https://github.com/Kowntaewook/MCPTrace.git
cd MCPTrace
python -m venv .venv

Активируйте окружение для вашей оболочки:

  • Windows PowerShell: .\.venv\Scripts\Activate.ps1
  • Оболочка Linux/macOS: source .venv/bin/activate

Затем установите MCPTrace:

python -m pip install .

Использование

Запускайте следующие примеры из корня репозитория с активированным виртуальным окружением. Замените пути к образам и PID на ваши доказательства и целевые процессы. Клиенты и серверы MCP могут работать в отдельных процессах, поэтому при необходимости проверяйте оба.

Windows

Убедитесь, что Volatility может интерпретировать образ и перечислять его процессы, прежде чем запускать MCPTrace. Подготовка символов Windows может потребовать доступа к сети.

vol -f windows.raw windows.info.Info
vol -f windows.raw windows.pslist.PsList
mkdir output-windows
vol -p plugins -f windows.raw -o output-windows windows.mcptrace.MCPTrace --pid 4242 5252 --dump

Linux

Поместите символы ISF, соответствующие точной сборке ядра дампа, в symbols/linux/. Если linux.pslist.PsList не может разрешить требования к ядру или слою, устраните настройку образа/символов, прежде чем интерпретировать вывод MCPTrace.

vol -s symbols -f linux.lime linux.pslist.PsList
mkdir output-linux
vol -p plugins -s symbols -f linux.lime -o output-linux linux.mcptrace.MCPTrace --pid 4242 --dump
  • Опустите --pid, чтобы просканировать все процессы, или передайте несколько PID: --pid 4242 5252.
  • --dump экспортирует JSONL-файлы по каждому процессу в каталог, указанный в -o.
  • Используйте vol -p plugins windows.mcptrace.MCPTrace -h (или эквивалент для Linux), чтобы увидеть все параметры.

Для JSON-представления полной таблицы результатов поместите глобальный параметр -r json перед именем плагина. Это отдельно от экспорта JSONL по каждому процессу, создаваемого с помощью --dump.

vol -p plugins -f windows.raw -r json windows.mcptrace.MCPTrace --pid 4242 > findings.json

Общие параметры

ПараметрНазначение
--pid 4242 5252Выбрать идентификаторы процессов; если не указано, проверяются все процессы, перечисленные адаптером.
--dumpЭкспортировать отображаемые артефакты и сводки сканирования в формате JSONL в глобальный каталог -o.
--include-partialВключить необработанные, неразобранные фрагменты без восстановления отсутствующих полей.
--include-rpcТакже отображать общие кандидаты JSON-RPC без подтверждённой связи с MCP.
--policy PATHПрименить локальные правила к аргументам инструментов; см. примеры для Windows и Linux.
--suspicious-onlyПоказывать совпадения с политикой и сводки; требует непустой политики.
--max-records NОграничить число записей-кандидатов на процесс перед фильтрацией; по умолчанию: 10000.
--max-object-bytes NОграничить размер одного полного объекта JSON; по умолчанию: 65536 байт.
--max-bytes NОграничить число байт диапазона адресов, проверяемых на процесс; 0 означает отсутствие ограничения.

Результаты проверки политики описывают совпадения с правилами, заданными аналитиком. Совпадение не означает вредоносную активность. Перед применением к другому случаю проверьте примеры путей, хостов и имён инструментов.

Чтение вывода

Файл, например mcptrace.pid-4242.jsonl, содержит запись метаданных, записи артефактов и итоговую сводку сканирования. Метаданные определяют процесс, целевую ОС и адресное пространство. Записи артефактов сохраняют как разобранное сообщение, так и точные восстановленные байты.

ПоляЗначение
pid, virtual_address, region_startПроцесс и местоположение доказательства. Адреса — это виртуальные адреса процесса, а не смещения в файле образа.
message, method, tool, request_idСодержимое разобранного сообщения и выбранные поля, если доступны.
raw_base64, byte_length, raw_sha256Исходные байты, их длина и SHA-256 для проверки.
state, encodingЯвляется ли запись полной или фрагментом, и как закодированы её байты.
relation, candidate_virtual_addressesМестоположения кандидатов-аналогов и является ли связь неоднозначной.
findingsРезультаты необязательных проверок политики аргументов.
Скачать инструмент