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

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

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

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

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

Категории

Все категории
Loading categories
mallet — Mallet — это перехватывающий прокси для произвольных протоколов. | Kitploit
Инструменты/GitHubGitHub/sensepost/mallet
Веб-прокси и перехватСетевая безопасностьТестирование на ПроникновениеУтилиты и фреймворки
GitHubsensepost/mallet

mallet

Mallet — это перехватывающий прокси для произвольных протоколов.

Репозиторий
292422 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Mallet — фреймворк для создания прокси

Mallet — это инструмент для создания прокси для произвольных протоколов, по аналогии с привычными перехватывающими веб-прокси, но более общий.

Он построен на фреймворке Netty и во многом опирается на концепцию конвейеров Netty, что позволяет графически собирать графы обработчиков. (См. скриншоты ниже для примера.) В мире Netty экземпляры обработчиков обеспечивают разграничение фреймов (т.е. где начинается и заканчивается сообщение), декодирование и кодирование протоколов (преобразование потока байтов в Java-объекты и обратно, или преобразование потока байтов в другой поток байтов — подумайте о сжатии и распаковке), а также логику более высокого уровня (фактически выполнение действий с этими объектами).

Благодаря тщательному разделению Codecs и обработчиков, которые фактически манипулируют сообщениями, Mallet может использовать обширную библиотеку существующих Codecs и избежать повторной реализации многих протоколов. Последний элемент головоломки предоставляется обработчиком, который копирует сообщения, полученные на одном конвейере, в другой конвейер, проксируя эти сообщения к их конечному назначению.

Конечно, пока сообщения находятся внутри Mallet, их легко можно изменить, либо с помощью пользовательских обработчиков, написанных на Java или скриптовом языке, совместимом с JSR-223, либо вручную, используя один из предоставленных редакторов.

Вы можете получить представление о доступных кодексах, просмотрев исходный код Netty на GitHub в каталогах codec*. Или просто погуглив netty и интересующий вас протокол. Многие интересные реализации протоколов были разработаны за пределами основного проекта Netty, но должны хорошо работать с Mallet.

Кому может пригодиться Mallet?

Mallet предназначен для людей, работающих с сетевыми приложениями, не основанными на HTTP-коммуникациях. Примеры могут включать Интернет вещей, который может использовать MQTT, COAP и т.д., банкоматы и POS-терминалы, которые могут использовать ISO8583, или, честно говоря, любой другой протокол.

На самом деле Mallet может быть полезен даже для приложений на основе HTTP, которые используют дополнительные протоколы внутри HTTP. Например, Google Protobuf поверх WebSockets, которые плохо поддерживаются существующими HTTP-прокси, такими как Burp, Zap и т.д., или gRPC поверх HTTP2.

Mallet не обязательно предназначен только для проверок безопасности. Поскольку Mallet построен на основе фреймворка Netty, после того как ваш конвейер был прототипирован с помощью Mallet, вы можете перенести свой код в обычное приложение Netty с минимальными усилиями.

Скриншоты

Это пример простого SOCKS-прокси, который можно использовать как первый шаг при понимании сетевого трафика, который вы видите.

Mallet New Diagram

Как только вы получите представление о том, как на самом деле выглядит трафик, вы сможете начать добавлять соответствующие классы ChannelHandler вдоль конвейера.

Сборка Mallet

Mallet использует Maven, поэтому компиляция кода сводится к

root@kitploit:~
mvn package

Чтобы запустить:

root@kitploit:~
cd target/
java -jar mallet-1.0-SNAPSHOT-spring-boot.jar

В каталоге examples/ предоставлено несколько примеров графов. JSON-графы ожидают подключения JSON-клиента к Mallet на localhost:9998/tcp, при этом реальный сервер находится на localhost:9999/tcp. Только последний JSON-граф (json5.mxe) делает какие-либо предположения о структуре передаваемых JSON-сообщений, поэтому они должны быть применимы к любому приложению, которое отправляет JSON-сообщения.

Файл demo.mxe показывает сложный граф с двумя конвейерами: TCP и UDP. TCP-конвейер построен для поддержки HTTP и HTTPS на портах 80 и 443 соответственно, а также WebSockets, при этом ретранслируя любой другой трафик напрямую к месту назначения. UDP-конвейер построен для обработки DNS-запросов на localhost:1053/udp, замены запросов для google.com на запросы для www.sensepost.com и пересылки запросов на DNS-серверы Google.

Обратная связь и вклад

Приветствуются отзывы и вклад. Пожалуйста, создавайте issues, где это уместно, или свяжитесь с автором в Twitter @RoganDawes.

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