![]() |
Привет всем, в этой статье, я объясню как обойти SSL pinning для андроид приложений используя Frida framework. Я попытаюсь объяснить все в деталях,четко и понятно.
В этой статье будет рассмотрено: 1. Введение в Frida и SSL pinning 2. Требования 3. Настройка и установка 4. Установка Frida Server 5. Установка BurpSuite 6. Пушинг CA сертификата прокси 7. Инжект скрипта для обхода SSL pinning 8. Все вещи в двух словах 9. Устранение неисправностей 1. Введение в Frida и SSL pinning Frida framework это конечная для обхода SSL pinning Согласно фриде веб сайт Цитата:
Давайте рассмотрим, что мы хотим безопасно обмениваться некоторыми данными между нашим устройством и сервером. Сделает ли шифрование транспортного уровня ssl передачу данных безопасной и надежной? Ну, тут есть подвох. Перед передачей данных клиент проверяет наличие SSL-сертификата сервера, соответствует ли он запрошенному имени хоста и доверенной корневой сертификации. https://forum.antichat.xyz/attachmen...39c900d432.png То, что он не гарантирует, что предоставленный сертификат является настоящим сертификатом, предоставленным сервером для запрошенного имени хоста. Таким образом, использование доверенных, хранимых сертификатов устройства не сделает передачу данных “безопасной”. Цитата:
Frida - это фреймворк, который вводит скрипты в приложения для управления логикой приложения во время выполнения, что является более динамичным подходом для пентестинга мобильных приложений. 2. Требования Давайте соберемся и выполним все требования, прежде чем выполнять наш волшебный трюк. Эта настройка занимает некоторое время в первый раз, так как список требований довольно длинный. Как только мы закончим со всеми настройками, со следующего раза это будет проще простого. Если вы застряли на любом шаге, в конце статьи есть раздел "Устранение неполадок". Рекомендуется сохранять все загруженные материалы в одной папке. I. Устройство с рут правами/эмулятор: Нам понадобится устройство с рутом или эмулятор, поскольку нам нужно заинжектить скрипт в корневой каталог устройства. Я использую genymotion для этого. Genymotion прост в настройке и использовании, скачать можете ниже. Genymotion Desktop download - Genymotion Android Emulator Download Genymotion Desktop for PC & Mac M. Available for Windows 10/11, macOS and Linux (Ubuntu, Debian, Fedora). www.genymotion.com Как только мы закончим установку genymotion, нам нужно установить устройство android. Android 7 + подойдет. Я буду использовать устройство "Google pixel XL" со следующей конфигурацией. https://forum.antichat.xyz/attachmen...dc37622ed7.png II. Установка пакета Python frida: Установить Python для windows отсюда Python Releases for Windows The official home of the Python Programming Language www.python.org Нам нужно установить некоторое пакеты python для frida server. Для этого введите следующие команды в терминал: Код: Код:
python -m pip install FridaСкачать platform-tools для windows можно здесь https://dl.google.com/android/repository/platform-tools-latest-windows.zip https://forum.antichat.xyz/attachmen...4b7d91fad3.png IV. Скачать скрипт инжекта: Нам нужно скачать скрипт инжекта ниже, который мы будем пушить в устройство для инъекции в целевое приложение. Frida CodeShare codeshare.frida.re Или вы можете сохранить этот код как fridascript.js в этой же папке c adb Код: Код:
/*I. Подключение девайса к adb: Нам нужно подключить наше устройство к adb для запуска команд на устройстве. Но сначала перейдите в Настройки >> Параметры разработчика и включите режим отладки в устройстве, чтобы adb мог взаимодействовать с устройством. Перейдите в папку, в которой были извлечены platform tools, и выполните следующую команду для подключения устройства к adb Код: Код:
//adb connect https://forum.antichat.xyz/attachmen...0518d358ed.png Чтобы проверить подключено ли устройство к adb: Код: Код:
adb devicesII. Скачать frida server Нам нужно скачать пакет Frida server для нашего устройства android в соответствии с архитектурой нашего устройства. Releases · frida/frida Clone this repo to build Frida. Contribute to frida/frida development by creating an account on GitHub. github.com Чтобы узнать архитектуру устройства, выполните следующую команду. Код: Код:
adb shell getprop ro.product.cpu.abiУстановите приложение,где вы хотите обойти SSL pinning. Откройте приложение и держите его запущенным в фоновом режиме. 4. Установка Frida Server Нам нужно запустить Frida server на устройство перед инъекцией нашего скрипта. Выполните следующие действия: I. Пуш frida-server в девайс: Теперь нам нужно вставить наш файл frida-server в устройство. Код: Код:
//adb push Код: Код:
adb shell chmod 777 /data/local/tmp/frida-serverСледуйте этому потрясающему гайду по установке прокси в burp на андроид Configuring an Android device to work with Burp Suite - PortSwigger You can configure an Android device to proxy HTTP traffic through Burp Suite. This enables you to test Android apps just like ordinary websites. The process ... support.portswigger.net 6. Пушинг CA сертефиката прокси Чтобы иметь возможность перехватывать трафик, frida должна иметь доступ к CA сертификату нашего Burpsuite. Мы будем пушить тот же сертификат, загруженный в шаге 5. Вставьте сертификат в устройство в том же месте,где и frida-server, назовите его cert-der.crt (поскольку это имя и путь уже упоминались в fridascript.js, чтобы избежать каких-либо проблем) Код: Код:
// adb push /data/local/tmp/cert-der.crtТеперь пришло время для настоящей магии. мы будем инжектить 'fridascript.js' в целевое приложение. I. Вставьте fridascript.js в девайс: Скопируйте fridascript.js в папку adb и выполните следующую команду, чтобы вставить fridascript.js в устройство. Код: Код:
//adb push /data/local/tmpКод: Код:
adb shell /data/local/tmp/frida-server &III. Просмотр всех запущенных процессов на девайсе: Теперь нам нужно узнать идентификатор нашего целевого приложения. Мы перечислим все запущенные службы на устройствах, включая наш процесс. Откройте новый терминал и введите следующую команду. Код: Код:
frida-ps -Uhttps://forum.antichat.xyz/attachmen...d9ac347dcf.png V. Внедрите fridascript.js в ваше приложение: Наконец, мы внедрим fridascript.js в приложение с помощью следующей команды: Код: Код:
//frida -U -f -l --no-pausVI. Обошли!! Как только все пойдет гладко, весь трафик целевого приложения будет перехвачен в BurpSuite. Нам нужно поддерживать сервер frida, пока мы перехватываем трафик в BurpSuite. https://forum.antichat.xyz/attachmen...dc66c7d207.png 8. Все вещи в двух словах 1. Скачайте и установите девайс на genymotion 2. Установите frida и objection tools Код: Код:
pip install Frida4. Скачайте frida injection script 5. Подключите устройство к adb Код: Код:
//adb connectКод: Код:
adb shell getprop ro.product.cpu.abi8. Установите целевое приложение на ваш девайс. 9. Вставьте frida-server в ваш девайс: Код: Код:
//adb pushКод: Код:
adb shell chmod 777 /data/local/tmp/frida-server12. Вставьте прокси CA Certificate Код: Код:
// adb push /data/local/tmp/cert-der.crtКод: Код:
//adb push /data/local/tmpКод: Код:
adb shell /data/local/tmp/frida-server &Код: Код:
frida-ps -U17. Внедрите fridascript.js в целевое приложение Код: Код:
//frida -U -f -l --no-paus9. Устранение неисправностей 1. ADB Deamon failed to connect Если вы получаете ошибку, как это: Код: Код:
adb devicesii. Нажмите на path и удалите запись C:/Android или путь, по которому adb инструменты указаны iii. Скопируйте все platform tools в genymotion>>tools folder iv. Создайте новый путь в переменных средах и добавьте путь genymotion>>tools folder. 2. frida/ pip is not recognized as an internal or external command i. Откройте окружающие среды System properties>>Advanced>>Environment Variables ii. Создайте новый путь в переменных средах и добавьте путь Python>>script folder 3. Arm translation error while installing application into device. i. Скачайте arm translation файл отсюда https://androidfilehost.com/?fid=23252070760974384 ii. Перетащите файл в эмулятор или флешните этот файл через рекавери если у вас физический девайс. iii. Перезапустите устройство 4. Failed to spawn: the ‘argv’ option is not supported when spawning Android apps Проверьте путь вашего fridascript.js на компе. Путь может быть неправильным. Вам нужно дать абсолютный путь к fridascript.js. Абсолютный путь? 5. frida server запустился но запущенные пакеты не отображаются Выключите/включите wi-fi на устройстве. Источник: Hail Frida!! The Universal SSL pinning bypass for Android applications |
Кто сможет снять ssl pinning у apk twitter root или без root разницы нет
|
Вот более прогрессивная версия скрипта, ни разу еще не подвела. Вот инструкция к нему, в принципе то же самое, но как то более компактно и наглядно.
|
Давно знаю об этом, есть еще куча фишек с этой машиной))) есть ли люди более менее знающие как делать более сложные вещи в этом frameworke
|
Крайне не понятно расписано, что куда и как.
|
С инстаграм работает ?
|
Цитата:
____ / _ | Frida 12.11.14 - A world-class dynamic instrumentation toolkit [SM-G965N::com.android.browser]-> TypeError: cannot write property 'implementation' of undefined at [anon] (duk_hobject_props.c:3398) at [anon] (frida-universal.js:18) at frida/node_modules/frida-java/lib/vm.js:39 at v (frida/node_modules/frida-java/index.js:338) at frida/node_modules/frida-java/index.js:321 at input:1 |
Цитата:
|
Цитата:
|
Цитата:
|
| Время: 03:24 |