Yakit — швейцарский нож для пентеста, который пытается подвинуть Burp Suite
Представьте, что вы проводите аудит безопасности веб-приложения. У вас открыт Burp Suite для перехвата трафика, в соседней вкладке терминала запущен какой-нибудь сложный скрипт на Python для специфического фаззинга, а где-то еще висит nc в ожидании обратного шелла. Переключаться между этим зоопарком инструментов неудобно, данные приходится копировать вручную, а автоматизация требует написания громоздких плагинов.
Китайские разработчики из Yaklang решили, что пора собрать всё это в одном месте. Так появился Yakit — графическая оболочка над их собственным языком программирования Yaklang, заточенным исключительно под задачи ИБ.
Что это вообще такое
Если коротко, Yakit — это интерактивная платформа для тестирования безопасности (IAST). В основе лежит движок на языке Yaklang, который авторы называют CDSL (CyberSecurity Domain Specific Language). Идея в том, чтобы дать безопаснику инструмент, где можно и трафик перехватить, и тут же «на коленке» написать скрипт для его модификации, не выходя из интерфейса.
Проект построен по клиент-серверной архитектуре через gRPC. Это значит, что тяжелый движок можно запустить на удаленном сервере в облаке, а управлять им через локальный GUI. Удобно, когда нужно просканировать что-то из другой сети или не хочется нагружать свой ноутбук.
Чем он интересен на практике
Самое очевидное сравнение — это Burp Suite. Yakit умеет всё то же самое: перехват (MITM), история запросов, Repeater, Intruder. Но есть несколько фишек, которые заставляют присмотреться к нему повнимательнее.
Умный фаззинг с Fuzztag
В Burp Intruder настройка перебора параметров часто превращается в рутину с выбором типов пейлоадов и загрузкой словарей. В Yakit внедрили систему тегов. Прямо в теле HTTP-запроса можно написать что-то вроде {{int(1-100)}} или {{file(/path/to/dict.txt)}}.
Если нужно что-то совсем специфическое, например, генерировать валидные номера карт или хеши в реальном времени, можно вставить тег с куском кода на Yaklang. Это избавляет от необходимости готовить огромные текстовые файлы со словарями заранее.
Магия с портами и протоколами
Одна из самых крутых штук в движке — умение мультиплексировать протоколы на одном порту. В обычном пентесте для эксплуатации условной Log4j вам нужно поднять HTTP-сервер и LDAP-сервер на разных портах. Yakit позволяет слушать один порт, определять тип входящего протокола по заголовкам и отвечать соответствующим образом.
Это экономит ресурсы и помогает обходить ограничения фаерволов, когда наружу открыт только один порт.
Честный Reverse Shell
Все, кто ловил обратный шелл через netcat, знают эту боль: нельзя нажать стрелочку «вверх», чтобы посмотреть историю команд, нельзя нормально использовать автодополнение через Tab, а случайное нажатие Ctrl+C убивает всю сессию.
В Yakit встроен модуль Reverse Shell, который эмулирует поведение полноценного SSH-терминала. Вы получаете интерактивную среду с поддержкой всех привычных клавиш и стабильным соединением.
Архитектура и технологии
Проект написан на TypeScript (фронтенд) и Go (бэкенд/движок). Использование Go оправдано: сетевые инструменты на нем писать одно удовольствие, а производительность при сканировании получается достойной.
Схема работы выглядит так:
- Yaklang Engine: ядро, которое умеет работать с сокетами, парсить протоколы и исполнять скрипты.
- gRPC Server: прослойка, которая позволяет управлять ядром удаленно.
- Yakit GUI: симпатичный интерфейс, где собраны все инструменты.
Стоит ли переходить на него
Сказать, что Yakit завтра убьет Burp Suite, было бы преувеличением. У Burp огромная база плагинов и годы полировки. Однако у Yakit есть свои козыри:
- Он бесплатный (хотя есть и коммерческая версия с доп. фишками).
- Он гораздо гибче в плане написания быстрых скриптов для манипуляции трафиком.
- Встроенный магазин плагинов растет, и там уже много готовых модулей для поиска популярных уязвимостей.
Из минусов — документация местами грешит иероглифами, а порог вхождения чуть выше из-за необходимости понимать основы Yaklang, если вы хотите использовать платформу на 100%.
С чего начать
Если вам надоело жонглировать десятком разных утилит, попробуйте Yakit в деле. Проще всего скачать готовый бинарник с GitHub или зайти на официальный сайт. Для начала хватит и обычного MITM-прокси, чтобы почувствовать разницу в подходе к фаззингу.
Проект активно живет, коммиты прилетают почти каждый день. Для тех, кто занимается Bug Bounty или профессиональным пентестом, это отличная возможность добавить в свой арсенал что-то более современное и автоматизируемое, чем классические инструменты десятилетней давности.
