Способы обхода SSL Pinning Android-приложения

Безопасность SSL

SSL Pinning это механизм, который защищает приложения от атак MiTM (человек по середине). Это достигается путем «прикрепления» сертификата к приложению, которое затем проверяет, соответствует ли сертификат сервера сохраненному сертификату. Если они не совпадают, приложение отклонит соединение. Далее мы рассмотрим способы обхода SSL Pinning Android.

Еще по теме:Перехват трафика Android-приложения (Burp и Frida)

Проверка на наличие SSL Pinning в приложении Android

SSL Pinning не позволяет перехватить HTTPS-трафик целевого Android-приложения.

Для проверки настройте прокси-сервер и запустите приложение, затем выполните несколько действий между целевым приложением и сервером.

Теперь откройте лог Burp Suite. Если Pinning реализован, то вы увидите ошибку сертификата:

Проверка на наличие SSL Pinning в приложении Android

Способы обхода SSL Pinning Android

Обход SSL Pinning в Android — это процесс обхода механизма защиты, который предназначен для обеспечения безопасности HTTPS-соединений в приложениях. Это может потребоваться для тестирования безопасности приложений или анализа трафика.

Вот несколько рабочих способов обхода SSL Pinning в приложениях Android.

Помните, что обход SSL Pinning должен использоваться исключительно в законных целях, таких как тестирование безопасности и анализ уязвимостей.

Обход SSL pinning используя модуль Magisk

Если устройство рутировано, тогда можно заюзать модуль Move Certificate из приложения Magisk.

Обход SSL pinning используя модуль Magisk

Этот модуль перемещает доверенные сертификаты пользователя в системное хранилище, заставляя систему (root) доверять сертификату, который установил пользователь (сертификат Burp CA):

Обход SSL pinning с помощью Objection

Запустите сервер Frida на Android-устройстве (см. Установка Frida Server на Android).

Прикрепите целевое приложение к Objection с помощью команды (см. Взлом приложений с помощью Objection):

Затем выполните команду:

Обход SSL pinning Objection

Чтобы обойти SSL pinning, скрипт найдет классы SSL pinning и подключит их.

Обход SSL pinning с помощью Frida

Запустите сервер Frida на Android-устройстве (см. Установка Frida Server на Android).

Запустите приведенный ниже скрипт обхода:

Обход SSL pinning Frida

Подробнее в статье «Как обойти SSL Pinning используя Frida».

Обход SSL pinning используя Xposed Framework

Если на устройстве установлен фреймворк Xposed, то для обхода SSL pinning можно воспользоваться следующими модулями SSLUnpinning_Xposed и TrustMeAlready.

  • SSLUnpinning_Xposed — модуль Android Xposed для обхода проверки SSL-сертификата (Certificate Pinning)
  • TrustMeAlready — отключение проверки SSL на Android.

Обход SSL pinning Frida

Подробнее в статье «Использование Xposed для обхода SSL Pinning на Android».

Обход SSL pinning используя apk-mitm

apk-mitm — это инструмент для автоматической подготовки APK-файлов Android к анализу и тестированию HTTPS-трафика. Этот инструмент модифицирует APK-файлы, чтобы перехватывать и анализировать зашифрованный трафик между Android-приложением и сервером, необходимым для его работы.

Установите apk-mitm с помощью npm:

Запустите приложение:

Обход SSL pinning используя apk-mitm

Apk-mitm выполнил свою работу. Теперь можете установить модифицированный APK и перехватить трафик приложения.

Обход SSL pinning модификацией файла network_security_config.xml

Файл network_security_config.xml — это конфигурационный файл, который используется в Android-приложениях для определения настроек безопасности сети. Этот файл позволяет разработчикам устанавливать правила и ограничения для сетевых соединений, включая соединения через HTTPS.

Файл обычно размещается в директории ресурсов приложения /res/xml/. Разработчики могут создавать и настраивать этот файл в соответствии с требованиями безопасности своего приложения. Это важный инструмент для обеспечения безопасности сетевых соединений в Android-приложениях и защиты от различных угроз, таких как атаки MITM.

Эта техника актуально для Android 7.0 и выше.

Декомпилируйте приложение с помощью apktool или любого другого декомпилятора.

Найдите файл network_security_config.xml в каталоге /res/xml.

Файл будет выглядеть следующим образом:

Обход SSL pinning модификация network_security_config.xml

Удалите эту секцию и добавьте следующую:

Обход SSL pinning модификация network_security_config.xml

Сохраните файл и перепакуйте приложение с помощью apktool и uber-apk-signer (подпишите модифицированный APK).

Установите модифицированный APK для перехвата трафика.

Перехват приложений на базе Flutter

Приложения, работающие на базе Flutter, в основном не имеют прокси, поэтому обычный метод перехвата не будет работать с такими приложениями.

Для перехвата трафика необходимо использовать Reflutter — фреймворк, который позволяет проводить реверс-инжиниринг приложений Flutter, используя исправленную версию библиотеки Flutter, которая уже скомпилирована и готова к перепаковке приложений.

Установите reflutter с помощью pip.

Выполните следующую команду:

Перехват приложений Flutter

Подпишите приложение с помощью uber-apk-signer и установите его:

Перехват приложений Flutter

Теперь в прокси Burp запустите прослушивание порта 8083, а также включите опцию Support Invisible Proxying:

Перехват приложений используя reFlutter

Перехватываем запрос и наслаждаемся.

Перехват с помощью приложения Hosts Go

Иногда приложение использует только HTTP, но перехватить его не удается. Приложения с таким поведением называются Proxy Unaware. Такие приложения направляют трафик напрямую в Интернет, не взаимодействуя с системными настройками Proxy.

Скачайте и установите приложение Hosts Go.

Перехват приложений Hosts Go

Добавьте IP-адрес системы и урл домена приложения (который можно определить, запустив Wireshark).

Перехват Android приложений Hosts Go

После добавления данных включите Hosts change switch и нажмите кнопку START.

Перехват Android приложений Hosts Go

Настройте параметры прокси-сервера Burp Suite и обработки запросов.

SSL pinning bypass

Вот и все. Теперь HTTP-трафик приложения будет перехвачен в Burp Suite.

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер: компьютерный ниндзя и мастер цифровых тайн.

Добавить комментарий