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

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

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

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

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

Категории

Все категории
Loading categories
mtproto-dissector — Плагин Wireshark для анализа протокола Telegram | Kitploit
Инструменты/GitHubGitHub/tomer8007/mtproto-dissector
Сниффинг и анализ пакетовИнструменты шифрования/дешифрованияОбратная инженерияФорензикаСетевая безопасность
GitHubtomer8007/mtproto-dissector

mtproto-dissector

Плагин Wireshark для анализа протокола Telegram

Репозиторий
405 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Диссектор протокола Telegram

Это диссектор для Wireshark, который помогает разобраться в трафике Telegram вокруг вас.

Он разбирает пакеты Telegram, которые видит, в соответствии с протоколом MTProto 2.0.

Возможности

  • Поддерживаемые транспортные протоколы: Abridged, Full, Intermediate, HTTP
  • Поддерживает деобфускацию
  • Поддерживает сборку TCP
  • Поддерживает расшифровку (при наличии ключа авторизации)
  • Разбирает RPC-нагрузки на языке TL

Ограничения

  • Поддерживает только MTProto 2.0 (то есть не для клиентов старше 2017 года)
  • Пока не поддерживает транспортные протоколы WebSocket/Padded intermediate/UDP
  • Язык TL разобран не на 100%, например, ассоциативные массивы не поддерживаются
  • Пока не умеет автоматически определять трафик MTProxy или трафик неофициальных серверов MTProto

Установка и использование

Чтобы установить этот диссектор:

  1. Установите привязки Lua для luagcrypt, необходимые для криптографических операций.
    • Можно скомпилировать с помощью luarocks (для версии Lua вашего Wireshark)
    • Пользователи Windows могут поискать предварительно скомпилированный luagcrypt.dll в этом обсуждении
    • Скопируйте соответствующий luagcrypt.dll/luagcrypt.so в каталог установки Wireshark, например C:\Program Files\Wireshark
  2. Клонируйте или скачайте этот репозиторий
  3. Скопируйте каталог mtproto в каталог плагинов Wireshark, например C:\Users\<имя_пользователя>\AppData\Roaming\Wireshark\plugins

После установки вы можете просто открыть Wireshark с некоторым трафиком Telegram.

ВАЖНО: Для работы деобфускации вся TCP-сессия должна быть известна с самого начала (согласно спецификациям MTProto), поэтому рекомендуется открывать приложение Telegram после начала записи пакетов.

Извлечение ключа авторизации

Чтобы расшифровать трафик, вам понадобится соответствующий ключ авторизации (auth_key).

Последние версии официальных клиентов Telegram используют Perfect Forward Secrecy для облачных чатов, вызывая auth.bindTempAuthKey при запуске и/или регулярно. Это означает, что основные сессии будут использовать временные ключи авторизации (устанавливаемые через DH), а не постоянные.

Для извлечения используемых ключей авторизации на лету предоставлены два сценария frida, которые подключаются к процессам Telegram. Чтобы их использовать, убедитесь, что у вас установлен Frida, и выполните:

  • hook_windows_auth_key.py для официального приложения Windows (с некоторыми изменениями, вероятно, будет работать и на Linux/Mac)
  • hook_android_auth_key.py для официального приложения Android

Ключи авторизации и их идентификаторы должны быть выведены сразу после выполнения какой-либо сетевой операции.

Когда у вас есть ключи авторизации, чтобы передать их диссектору, перейдите в Edit → Preferences → Protocols → MTProto и заполните поля ключей.

Вы также можете извлечь постоянный ключ авторизации из файла tgnet.dat (Android — см., например, здесь, здесь, здесь) или из файла key_datas (Desktop — смотрите здесь, здесь). Другие клиенты, вероятно, хранят auth_key иным способом.

Синхронизация уровня API

Иногда Telegram обновляет версию схемы API в своих клиентах (или, возможно, вы смотрите на трафик от старых клиентов). Когда это происходит, TL-схема этого инструмента может рассинхронизироваться с некоторыми RPC-вызовами, которые вы видите в пакетах, что приведёт к появлению сообщений Incomplete parsing в Wireshark. Вы можете узнать, какой уровень API использует ваше приложение, в его запросе invokeWithLayer.

Чтобы синхронизировать диссектор с правильной схемой API, вам нужно скачать TL-файл слоя из Telegram, преобразовать его в JSON (см. ниже) и сохранить в mtproto/schema/api_tl_schema_layer_X.json, где X — номер вашего слоя.

Вы можете получить обновлённую TL-схему API из api.tl десктопного приложения или поискать больше версий на сайте Telegram.

Чтобы преобразовать файл tl в JSON, выполните, например (убедитесь, что у вас установлен npm):

root@kitploit:~
C:\path\to\MTproto Dissector> 
npx @psqq/tl-to-json api_layer_218.tl mtproto/schema/api_tl_schema_layer_218.json default --indent 4

Затем скопируйте новый JSON-файл в mtproto/schema/ в каталоге плагинов Wireshark. Наконец, в Wireshark перейдите в Edit → Preferences → Protocols → MTPROTO и измените «API level» на уровень, соответствующий вашему трафику.

Скачать инструмент