Мобильные приложения активно обмениваются данными с серверами в интернете. Обычно этот трафик зашифрован. Однако с помощью специальных инструментов, таких как Burp Suite и Frida, можно перехватывать и анализировать сетевые запросы мобильных приложений. Мы уже рассказывали про внедрение кода в чужое приложение с помощью Frida. Сегодня покажу, как, используя Burp и Frida, перехватить трафик Android-приложений.
Еще по теме: Взлом приложений iOS используя Frida
Как перехватить трафик приложения Android
Burp Suite — это популярный инструмент для тестирования безопасности веб-приложений. Он позволяет работать как прокси-сервер и перехватывать трафик между приложением и сервером. Для Android необходимо настроить Burp в качестве прокси.
Frida — инструмент для инжектирования кода в работающие приложения. С помощью Frida можно внедрить скрипты в приложение на Android и перехватывать вызовы сетевых API, изменять параметры запросов и многое другое.
Возможности совместного использования Burp и Frida:
- Перехват и анализ HTTPS трафика приложений.
- Обход проверки сертификата на устройстве.
- Измнение запросов на лету.
- Проверка на наличие уязвимостей типа SQLi, XSS, RCE и других.
- Анализ API приложения.
В качестве испытуемого я буду использовать Paytm — индийское приложение для оплаты и предоставления финансовых услуг. Сервис был основана в 2010 году Виджаем Шекхаром Шармой, а ее штаб-квартира находится в Ноиде, Индия.
Далее попробуем перехватить сетевой трафик Paytm и получить доступ к HTTPS-запросам. Для тех, кто у нас впервые, напоминаю, что мы уже рассказывали о перехвате и расшифровке HTTPS.
Установка инструментов для перехвата трафика приложений
Мы будем использовать следующие инструменты для перехвата трафика Android-приложений:
- Burp Suite
- Эмулятор Android Memu
- Frida Server
Сначала скачайте эмулятор MEmu и Burp Community Edition, затем скачайте сервер Frida, вам также потребуется frida-tools и некоторые дополнительные пакеты, установленные на ПК:
1 2 3 |
python -m pip install Frida python -m pip install objection python -m pip install frida-tools |
Перехват трафика Android-приложений используя Burp и Frida
После установки, давайте настроим прокси-сервер Burp в эмуляторе (см. также Перенаправление трафика Burp Suite через SOCKS-прокси).
Откройте командную строку и выполните команду
1 |
ipconfig |
Скопируйте IPv4-адрес и откройте настройки WiFi в эмуляторе.
Установите порт 8080. Теперь запустите Burp Suite, откройте настройки прокси и выберите тот же IPv4 и порт.
Сохраните настройки нажав OK. Теперь необходимо загрузить сертификат Burp CA в эмулятор и установить его на Android-устройство.
Откройте Google Chrome в эмуляторе и введите:
1 |
http://burp |
Кликните на сертификате CA и скачайте его.
Теперь перейдите в каталог /Downloads и измените расширение с der на cer,
Перейдите в Settings (Настройки) и найдите пункт Install Certificates — Wi-Fi Preferences (Установить сертификаты — Настройки Wi-Fi), кликните по нему и установите файл сертификата, чтобы браузер не отображал ошибку HTTPS.
Теперь давайте настроим сервер Frida в эмуляторе.
Поместите сервер Frida в каталог /data/local/tmp
1 |
adb push SERVER_FILE /data/local/tmp |
Разместите сертификат центра сертификации:
1 |
adb push CERTIFICATE_FILE /data/local/tmp/cert-der.crt |
Нам также нужен скрипт SSL Bypass, который необходим для обхода SSL Pinning от Paytm (см. Пример обхода SSL Pinning с использованием Frida). Скачайте файл .js с Frida CodeShare.
Теперь запустите сервер Frida:
1 2 3 |
adb shell root cd /data/local/tmp/ ./frida-server-16.1.3-android-x86_64 |
После запуска запустите Interceptor в Burp Suite.
Запустите сервер в одном окне терминала, а в другом выполните команду для получения списка всех пакетов и приложений, установленных на эмуляторе Android:
1 |
frida-ps -Uai |
Скопируйте имя пакета и выполните команду для вызова приложения Paytm и обхода SSL Pinning:
1 |
frida -U -f net.one97.paytm -l frida-multiple-unpinning.js --pause |
После запуска приложения введите %resume. Теперь вы сможете перехватить сетевой трафик в Burp Suite.
Почему именно Memu, а не другие эмуляторы? Потому что приложение Paytm проверяет архитектуру x64 Arm, я также пробовал Nox, где приложение падало, но Memu может запускать приложения x64 Arm.
Заключение
Используя Burp и Frida, можно значительно расширить возможности анализа мобильных приложений. Эти инструменты дополняют друг друга и позволяют получить доступ к скрытому функционалу приложений.
ПОЛЕЗНЫЕ ССЫЛКИ: