
Новый мост между Burp Suite и Frida!
Brida — это расширение Burp Suite, которое, работая как мост между Burp Suite и Frida, позволяет использовать собственные методы приложений и манипулировать ими, одновременно вмешиваясь в трафик, которым обмениваются приложения и их серверные службы/серверы. Brida поддерживает все платформы, поддерживаемые Frida (Windows, macOS, Linux, iOS, Android и QNX).
Эта идея возникла из потребности, появившейся во время анализа некоторых мобильных приложений, использующих сильное симметричное шифрование со случайными ключами: без знания правильного секрета данные было невозможно модифицировать ни через Burp, ни с помощью пользовательского плагина. В более общем смысле логика приложений может основываться на криптографических токенах, использовать сложные алгоритмы типа «запрос-ответ» и так далее. Как можно подменять сообщения? Чаще всего единственный жизнеспособный подход — декомпилировать/дизассемблировать приложение, определить интересующие нас функции или методы И заново их реализовать. Этот подход, очевидно, требует много времени и не всегда действительно реализуем: например, генерация токенов и/или процедуры шифрования могут основываться на криптографическом материале, жёстко привязанном к устройству (состоянию) или хранящемся в защищённых областях и, следовательно, недоступном напрямую... Вот тут и пригодится Brida: вместо того чтобы пытаться извлечь ключи/сертификаты и переписывать интересующие нас процедуры, почему бы не позволить приложению сделать за нас всю «грязную» работу?
Краткий ответ — всем!
Развёрнутый ответ: Brida — это набор инструментов, некоторые из которых созданы для ускорения повседневных мобильных тестов и помощи новым пользователям Frida, в то время как другие направлены на решение очень сложных ситуаций, где Brida может действительно изменить ситуацию.
Инструменты, которые могут быть полезны для обработки и ускорения повседневных мобильных тестов, включают следующие:
Однако идея, которая привела к созданию Brida, заключалась в том, чтобы помочь пентестерам/реверсерам/хакерам анализировать веб-сервисы целевых мобильных приложений, где используются сложные механизмы защиты для обеспечения конфиденциальности и целостности HTTP-запросов и ответов. Шифрование, обфускация, процедуры подписи, выполняемые над запросами и ответами, могут сделать работу тестировщиков очень трудной и трудоёмкой, поскольку обычно необходимо реверснуть механизмы безопасности и реализовать плагин для Burp Suite или внешний инструмент, который сначала расшифровывает/деобфусцирует HTTP-сообщения, а затем, при необходимости, шифрует/обфусцирует/подписывает отредактированные сообщения. То же самое относится и к некоторым не связанным с безопасностью сценариям, например, когда для форматирования тела HTTP-запросов/ответов используется собственный бинарный протокол из соображений интероперабельности или производительности.
Brida старается максимально ускорить эти процедуры, ограничивая усилия по реверс-инжинирингу и полностью устраняя (в большинстве ситуаций) усилия по разработке, предлагая движок, который позволяет графически создавать пользовательские плагины, проверяющие и редактирующие HTTP-запросы и ответы с использованием тех же мобильных функций, которые использует само мобильное приложение, благодаря Frida. Взяв в качестве примера мобильное приложение, которое шифрует/расшифровывает все запросы и ответы с помощью собственного/неизвестного алгоритма шифрования, Brida позволяет графически создать простой пользовательский плагин, который расшифровывает зашифрованные HTTP-сообщения, используя непосредственно тот мобильный код, который применяется в мобильном приложении для этой задачи. Другой пример — пользовательский плагин, который прозрачно обновляет подписи подписанных HTTP-запросов при их отправке на сервер, используя ту же мобильную функциональность, что и само приложение.
Более подробно, Brida позволяет графически создавать плагины, которые:
И если движка пользовательских плагинов Brida недостаточно для наших сверхсложных ситуаций, можно также написать внешние расширения Burp Suite на Python/Java, которые поручают Brida выполнение функций целевого мобильного приложения над данными расширения. Инструмент Brida "Generate Stubs" генерирует код на Java или Python, который можно вставить во внешние расширения Python или Java для использования моста Brida.
Frida 17 привносит существенные обновления в сам инструмент и его JavaScript API. Потребовался серьёзный рефакторинг JS кода, который нарушил совместимость с предыдущими версиями frida. Следовательно, последние версии Brida требуют версии frida не ниже 17. Если вам нужно использовать более старую версию Frida, вы можете загрузить версию 0.6pre из релизов GitHub.
Требования:
pip install frida frida-tools pyro4)Установка из GitHub:
Установка из Burp Suite BApp Store: