Добрый день, меня зовут Дегтярёв Константин, я senior security engineer в Huawei RRI. В этой статье я хотел бы поделиться методами встраивания в трафик мобильных приложений Android.
Во время оценки безопасности мобильных приложений довольно часто возникает необходимость выполнения перехвата веб-запросов. Большинство современных мобильных приложений используют такие компоненты как WebView (webkit), HttpURLConnection, OkHttp, Cronet и другие для связи с бэкенд-сервером.
Например, WebView полезен, когда вам нужен расширенный контроль над пользовательским интерфейсом и расширенные параметры настройки, которые позволят вам встраивать веб-страницы в специально разработанную среду для вашего приложения. Эти компоненты используют протоколы HTTP или HTTPS. Если с HTTP все понятно, HTTPS шифруется, поэтому для расшифровки HTTPS-трафика необходима MITM-атака. Для успеха MITM-атаки приложение должно доверять сертификату прокси-сервера MITM. Если сравнивать с аудитом безопасности веб-сайтов, где сертификат MITM прокси-сервера установлен в веб-браузер и все работает гладко, то с мобильным приложением ситуация может быть совершенно иной, потому что большинство современных мобильных приложений не доверяют сертификатам пользователей и даже сертификатам системного уровня Android или IOS.
VPN + PROXY на Android
Установка стенда
Существует два основных подхода при аудите или разработке мобильных приложений. Первый, использовать реальное устройство, второй, использовать эмулятор. В этом случае будет использоваться Android эмулятор от Android Studio.
1) Установите Android Studio. Дистрибутив можно загрузить с официального сайта здесь.
2) В Android Studio создайте пустой проект.
3) Нажмите Сервис → Диспетчер устройств и создайте новое виртуальное устройство Android.
Предлагается следующая конфигурация. Phone → Pixel 3a → Release name — Q, API level 29, x86 ABI. Важное примечание. Эта конфигурация поставляется с Play Store, это означает, что виртуальное устройство Android не будет иметь прав root по умолчанию, но это дает преимущество полноценной версии Android с Play Store. В качестве альтернативы можно выбрать модель устройства, такую как Pixel 3a XL, он не будет поставляться с Play Store, но будет иметь root доступ изначально.
5) Запустите созданное виртуальное устройство Android.
В этот момент AVD (Android virtual device) готово и тестируемое приложение может быть установлено. Существует два основных метода перехвата HTTPS-трафика приложения:
- Установить пользовательский CA сертификат (MITM-сервера) на AVD. Если исследуемое приложение доверяет пользовательским сертификатам или сертификатам системного уровня, это сработает.
- Пропатчить запущенное приложение прямо в памяти – выполнить SSL Unpinning.
Опыт показывает, что переупаковка исследуемого приложения, с изменением определений доверенности сертификатов приложения и установкой корневого сертификата сервера MITM (метод 1) не гарантирует успешного перехвата трафика MITM сервером. С другой стороны, SSL Unpinning (метод 2) показал свою высокую надежность и эффективность.
Вдруг твой смартфон уязвим? Посмотри это видео, чтобы узнать правду
Далее в разделах 6-9 будет описано, как реализовать модификацию определений доверенности сертификатов приложения и как произвести установку корневого сертификата сервера MITM (метод 1).
SSL Unpinning (метод 2) описан в разделе 11 ниже.
6) Перепаковка Android APK.
6.2 В этом примере будет использовано почтовое клиентское приложение Mail.ru (Mail.ru — крупнейший российский почтовый провайдер). Андроид приложение, APK файл, можно скачать с apkmirror.com.
Запустите APK Easy Tool, выберите APK файл приложения ru.mail.mailapp.apk и нажмите кнопку Декомпилировать (Decomple).
6.3 Откройте папку с декомпилированным APK, внутри нее перейдите в папки «res» → «xml».
6.4 Внутри папки xml отредактируйте или создайте файл network_security_config.xml
Определите конфигурацию сетевой безопасности в файле AndroidManifest.xml в базовой папке декомпилированного приложения. В теге добавьте атрибут android:networkSecurityConfig, указывающий на новый XML-файл:
Файл AndroidManifest.xml
6.5 В APK Easy Tool нажмите кнопку Компилировать (Compile), чтобы восстановить и подписать исправленное приложение и создать новый файл ru.mail.mailapp.apk APK.
7) Откройте в верхнем меню Вид → Окна Инструментов→ Проводник файлов устройства (View → Tool Windows → Device File Explorer). Выберите подходящую папку на виртуальном устройстве, такую как Downloads, и загрузите в нее перепаеованный APK файл ru.mail.mailapp.apk.
8) На виртуальном Android-устройстве откройте проводник файлов, найдите загруженный файл APK ru.mail.mailapp.apk и нажмите на него, чтобы установить приложение. Также подтвердите установку из ненадежного источника.
Обратите внимание, что для перехвата запросов должна использоваться специально переупакованная версия пакета.
Далее, пользовательский клоневой сертификат CA с прокси-сервера MITM должен быть установлен на AVD.
9) Установите сертификат пользователя на устройство Android, чтобы иметь возможность просматривать и перехватывать HTTP/HTTPS трафик исследуемого приложения.
9.1 Экспорт сертификата RootCA из перехватывающего прокси-приложения, например Burp.
9.2 Переименуйте файл сертификата в cacert.crt
9.3 Загрузите сертификат в SDCARD эмулированного устройства.
9.4 В эмулированном устройстве перейдите к: Настройки → Безопасность Шифрование и учетные данные → Установка с SD-карты (Settings → Security → Encryption # Запуск сервера Frida на устройстве AVD
11.2 Установите Frida на свой компьютер
Установите инструменты интерфейса командной строки Frida на свой компьютер. Требуется установить Python.
Pip install frida-tools
Проверьте установку, запустив frida-ps -U.
11.3 Отключение SSL Pinning с помощью Frida
Получить имя пакета нужного приложения. В этом случае имя пакета — ru.mail.mailapp
Запустите необходимое приложение, в данном случае Mail.RU – Email APP.
frida —no-break -U -l./frida-script.js -f ru.mail.mailapp
Это перезапустит приложение на вашем AVD и напечатает ряд библиотек, где была предпринята попытка выполнить SSL Unpinning, с символом [+] для библиотек, которые были успешно исправлены (пропатчены), и [ ] для библиотек, которые не были (как правило, потому что приложение не использует эти библиотеки).
При последующем вызове пропатченных методов вы также увидите сообщение —> Bypassing [pinning method], чтобы узнать, какие API использует это приложение.
12) Запуск почтового клиентского приложения mail.ru и вход в учетную запись пользователя.
13) Убедитесь, что перехватывающий прокси (в данном случае Burp) получает HTTP/HTTPS трафик из исследуемого приложения.
Еще один пример из ZAP proxy.
На этом этапе HTTPS-трафик приложения может быть перехвачен и изменён.
ProxyHandler мод APK
ProxyHandler мод является модифицированной версией ProxyHandler разработано Google Inc. Вы можете скачать последнюю версию мода или оригинальную версию ProxyHandler 8.1.0 с HappyMod. HappyMod это лучший загрузчик модов для 100% рабочих модов. Нажмите здесь, чтобы узнать как использовать HappyMod для загрузки и установки всех типов файлов:xapk, bapk, apks.
Имя приложения | ProxyHandler мод APK |
Обновление включено | 1970-01-01 |
разработчик | Google Inc |
Скачать в Google Play | ProxyHandler |
Скачать оригинальный apk | ProxyHandler (0.01 MB) |
Другие приложения от этого разработчика |
Google Play Store мод APK |
Ссылки для скачивания: |
ProxyHandler мод APK
Используйте приложение HappyMod для более быстрой загрузки!
* Все apks мода загружены пользователями. Если есть какие-либо нарушения, пожалуйста, отправьте Связаться с нами удалить.
Источник: www.happymodapk.ru