
yakit v1.4.8-0821
Универсальная платформа для тестирования на проникновение с MITM-прокси, веб-фаззером, обработчиком обратных соединений и системой плагинов для автоматизированного тестирования безопасности и эксплуатации.
Yakit — Интерактивная платформа для тестирования безопасности приложений
Посмотреть технический документ • Официальная документация • Сообщить о проблеме • Перейти на сайт • Присоединиться к сообществу • Архитектура проекта
Введение в Yakit
Конвергенция безопасности — это реформа управления безопасностью и операционной деятельностью предприятия в новых условиях, а также первоочередная задача предприятия в текущей реальности.
На основе концепции конвергенции безопасности команда Yaklang.io разработала вертикальный язык в области безопасности — Yaklang. Для продуктов/инструментов, которые невозможно нативно интегрировать в платформу Yak, с помощью Yaklang можно переписать их «высококачественные замены». Для продуктов с полной экосистемой и высоким признанием Yaklang может напрямую компилировать и интегрировать их, внося необходимые изменения в исходный код для лучшей адаптации к языку Yaklang. Для специалистов по безопасности, которые не хотят писать код, Yakit предоставляет подходящий графический интерфейс для всех возможностей Yaklang. С выходом новых версий GUI будет становиться всё более зрелым.
Чтобы возможности безопасности самого Yaklang были ближе к реальному использованию, мы написали gRPC-сервер для Yak и построили на его основе клиент: Yakit.
Архитектура проекта
Ключевая технология: CDSL
CDSL (CyberSecurity Domain Specific Language) — это специализированный язык программирования для области кибербезопасности. Мы написали стековый виртуальный исполнитель, который поддерживает состояние выполнения этого тьюринг-полного языка. Мы стремимся объединить возможности безопасности и унифицировать базовую платформу с помощью подхода «CDSL».
Чтобы CDSL, разработанный для области безопасности, был максимально приближен к реальным сценариям использования, мы написали gRPC-сервер для Yaklang и построили на его основе клиент Yakit. По сути, через GUI Yakit управляются возможности движка. gRPC-сервер Yakit делает развертывание более удобным и быстрым, не зависит от платформы, допускает удаленное развертывание или локальный запуск на хосте.
- Полноценная замена BurpSuite для перехвата MITM;
- Уникальный в своем роде GUI для пассивного сканирования MITM;
- Встраивание скриптов Yaklang для динамической отладки трафика; выполнение кода в реальном времени;
- Первый в мире визуальный инструмент для фаззинга Web — Web Fuzzer;
- Магазин плагинов Yakit;
- Выполнение пользовательских скриптов или плагинов Yaklang на любом этапе пентеста; ... ...
Обзор возможностей безопасности:
Особые технологии
Интерактивный перехват MITM
При помощи консоли MITM можно на 100% заменить BurpSuite для выполнения всех операций (загрузка и установка сертификата, перехват запросов, ответов, редактирование перехваченных пакетов и т.д.). Предоставляется полный рабочий процесс: перехват => История => Repeater/Intruder. Перехватываются данные, в истории просматриваются исторические данные, выбираются пакеты для «анализа», отправляются в Web Fuzzer для повторения/внедрения. Помимо этих типичных сценариев, MITM предлагает более гибкие функции: пассивное сканирование через плагины, горячую загрузку, замену пакетов, маркировку и т.д.
Принцип модуля MITM Yakit: запускается HTTP-прокси, который автоматически перенаправляет трафик. Когда пользователь включает ручной перехват, автоматическое перенаправление прекращается, запрос блокируется и помещается в стек, где выполняется его обработка: распаковка Gzip, обработка chunk, декодирование и т.д., чтобы запрос стал читаемым для человека. Он отображается на интерфейсе пользователя, который может просматривать, изменять или повторять запрос. При повторе HTTP-пакет, сформированный пользователем, восстанавливается для обеспечения его корректности. Движок Yak реализовал HTTP-библиотеку вручную, поэтому пользователь может отправлять кастомные некорректные или ответные пакеты для эксплуатации уязвимостей в особых сценариях.
Интерактивное воспроизведение трафика и фаззинг веб-приложений
Модуль Web Fuzzer позволяет пользователю отправлять запросы в произвольном HTTP-формате. Для упрощения использования и интуитивности интерфейса бэкенд Yakit делает многое: автоматически исправляет и дополняет информацию, необходимую для передачи и анализа данных в исходном HTTP-сообщении (например, исправляет CRLF, дополняет Content-Type, передает через chunk, дополняет boundary, корректирует Content-Length и т.д.).
Технология Fuzztag
Модуль Web Fuzzer поддерживает использование тегов Fuzz, что естественно и полноценно объединяет такие функции, как Host-коллизия, Intruder, перебор директорий и т.д. Например, в сценарии перебора одного параметра (скажем, ID пользователя) можно использовать тег {{int(1-10)}} для автоматической генерации перебираемых ID. Для сценариев с несколькими параметрами используется декартово произведение в качестве параметров перебора. По сравнению с модулем Intruder BurpSuite, это избавляет от необходимости выбирать метод атаки, импортировать словари и т.п., значительно сокращая количество действий пользователя и соответствуя его привычкам. Разумеется, Web Fuzzer также поддерживает импорт внешних словарей, например: {{file(/tmp/username.txt)}}. Для более сложных сценариев с данными Web Fuzzer поддерживает вставку тегов горячей загрузки: например, чтобы перебрать номера удостоверений личности определенного региона, можно прямо в модуле Web Fuzzer вставить скрипт Yak для генерации данных. В то время как Intruder BurpSuite в таком сценарии потребовал бы написания кода для генерации словаря и его последующего импорта.
Дополнительную информацию о fuzztag можно найти в разделе: Fuzztag Быстрый обзор
Технология reverse-соединений и мультиплексирования протоколов
Многие сценарии эксплуатации уязвимостей требуют reverse-соединений по разным протоколам. Традиционные инструменты эксплуатации требуют запуска на публичном сервере отдельного порта для каждого сервиса (например, для эксплуатации LDAP-уязвимостей требуется запустить HTTP-сервис, LDAP-сервис, а затем отправить атакующий запрос). Традиционные сервисы требуют выделения уникального порта для каждого сервиса. Технология мультиплексирования портов Yaklang позволяет слушать один порт, распознавать протокол запроса и отвечать соответствующим образом. Преимущества мультиплексирования портов Yaklang, помимо экономии системных ресурсов и удобства ручного тестирования, заключаются в том, что за счет ручного распознавания заголовков различных протоколов и ручной реализации на основе стандартов можно гибко конструировать пакеты для любых протоколов. Например, можно создавать некорректные пакеты для эксплуатации уязвимостей, передавать данные через DNS, ICMP и т.п., использовать этот метод как механизм поддержания доступа через бэкдоры или обходить ограничения по отсутствию TCP-трафика при эксплуатации.
На основе технологии мультиплексирования портов Yakit реализовал модуль reverse-соединений, включающий Reverse Shell, эксплуатацию reverse-соединений и их обнаружение. Reverse Shell позволяет слушать указанный порт как приемник для обратной оболочки; после получения оболочки можно управлять удаленным сервером, как по SSH. В традиционных инструментах пентеста для reverse-соединений использовался nc для прослушивания порта, но добавление таких клавиш, как Backspace и стрелки, приводило к искажению символов, и использование оболочки сильно отличалось от нативного SSH. Reverse Shell от Yakit обеспечивает впечатления, аналогичные нативному SSH. Часть эксплуатации reverse-соединений позволяет слушать один порт, устанавливать полезные нагрузки для обратного соединения по разным протоколам; при получении запроса автоматически распознается протокол запроса и возвращается соответствующая полезная нагрузка для эксплуатации. Функция обнаружения reverse-соединений предоставляет детекцию TCP, DNSLog и ICMP reverse-соединений, что может использоваться для обнаружения выполнения команд.
Использование
-
Вы можете перейти на официальный сайт для загрузки и установки.
-
Вы можете ознакомиться с нашей официальной документацией для изучения и использования Yakit.
Дополнительные технические материалы:
Присоединиться к сообществу
Если у вас есть конструктивные предложения по нашему продукту или вы обнаружили ошибку, пожалуйста, создайте issue.
Также вы можете связаться с нами через официальный аккаунт WeChat или обратиться по вопросам коммерческого лицензирования и сотрудничества.
Чтобы присоединиться к чату или задать вопросы техническим специалистам, пожалуйста, свяжитесь и добавьте менеджера в WeChat:
Менеджер в WeChat:
QR-код официального аккаунта:
Статистика звезд с течением времени
Отказ от ответственности
-
Данный инструмент предназначен только для легитимных действий по обеспечению безопасности предприятия и личного обучения. Если вы хотите протестировать функциональность инструмента, пожалуйста, самостоятельно настройте тестовую среду.
-
При использовании данного инструмента для проверки вы должны убедиться, что ваши действия соответствуют местным законам и нормативным актам, а также получили достаточные разрешения. Не сканируйте неавторизованные цели.
-
Запрещено проводить обратный инжиниринг, декомпиляцию, попытки расшифровки исходного кода, внедрение бэкдоров и распространение вредоносного ПО в отношении данного программного обеспечения.
-
Если вам необходимо использовать Yakit в коммерческих целях, убедитесь, что вы получили официальное разрешение, в противном случае мы оставляем за собой право привлечь вас к ответственности.
Если вышеуказанные запрещенные действия будут обнаружены, мы оставляем за собой право привлечь вас к юридической ответственности.
Если вы совершаете какие-либо незаконные действия при использовании данного инструмента, вы несете все соответствующие последствия самостоятельно. Мы не берем на себя никакой юридической или иной ответственности.
Перед установкой и использованием данного инструмента внимательно прочитайте и полностью осознайте все условия.
Ограничения, исключения ответственности и другие условия, затрагивающие ваши важные права, могут быть выделены жирным шрифтом, подчеркиванием и т.п. для привлечения вашего внимания.
Если вы не полностью прочитали, не полностью поняли и не принимаете все условия данного соглашения, пожалуйста, не устанавливайте и не используйте данный инструмент. Ваше использование или любое другое явное или подразумеваемое выражение согласия с данным соглашением означает, что вы прочитали и согласны соблюдать его условия.
