Мобильный хакинг, SSL pinning (финальная 3 часть)

Это заключительный пост по теме мобильного хакинга.

Ранее я уже рассказывал, как получить root-права на AVD (Android Virtual Device), ➥ https://setka.ru/posts/019da636-008e-7a21-9a13-211b9a8f1b99 а затем как перенести пользовательский сертификат в системное хранилище. ➥ https://setka.ru/posts/019da984-0639-7582-8cba-bec5e6cd9f1f

Теперь же раскрываем тему SSL pinning и того, как в целом устроен его обход.

К сожалению, “Сетка” не пропускает материалы с прямым описанием взлома чего-либо, а обход SSL pinning уже является обходом защитного механизма приложения. Поэтому в этом посте я ограничусь базовой теорией и полезными материалами для коллег, которые работают в рамках закона и просто хотят лучше понять, как это устроено)

━━━━━━━━━━ Вводная часть ━━━━━━━━━━

SSL pinning (закрепление сертификата) - это механизм защиты, при котором клиент, чаще всего мобильное приложение, доверяет не всей системной цепочке сертификатов, а только конкретному сертификату, публичному ключу или заранее заданному набору доверенных значений.

Именно поэтому обычного проксирования через Burp Suite часто уже недостаточно: даже если сертификат Burp установлен в системе, приложение всё равно может отказаться доверять соединению.

SSL pinning имеет несколько вариантов обхода, но на практике одним из самых популярных инструментов для анализа и модификации поведения приложения является Frida.

━━━━━━━━━━ Frida ━━━━━━━━━━

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

• Проще говоря, Frida позволяет работать с приложением на runtime • без пересборки APK • без наличия исходного кода • и без изменения самого бинаря на диске

Согласно официальной документации, Frida даёт доступ к памяти процесса, хукам функций и вызовам нативных API.

Важно понимать и другой момент: • Frida не расшифровывает TLS “снаружи” • не взламывает сертификаты • и не ломает криптографию как таковую

Она меняет саму логику приложения в момент выполнения. То есть вмешательство происходит в тот момент, когда приложение само принимает решение, доверять сертификату или нет.

Также важно понимать, что Frida сама по себе не содержит какой-то “волшебной кнопки” для bypass SSL pinning.

Поэтому на практике обычно бывает 2 сценария: • либо используются готовые community-скрипты • либо пишутся и дорабатываются свои скрипты под конкретное приложение

━━━━━━━━━━ Полезные ссылки по Frida ━━━━━━━━━━

Изучить, что такое Frida

Frida Documentation: Home - базовое объяснение того, что такое Frida, как она внедряет JavaScript в процесс и позволяет управлять поведением приложения на runtime. • https://frida.re/docs/javascript-api/

OWASP MASTG: Frida - хороший security-oriented обзор. Помогает понять, как Frida работает концептуально, какие есть варианты внедрения и почему это один из ключевых инструментов в mobile reverse engineering и dynamic analysis. • https://mas.owasp.org/MASTG/tools/generic/MASTG-TOOL-0031/

Как работать с Frida

Installation - официальный раздел по установке CLI-инструментов Frida. • https://frida.re/docs/installation

JavaScript API - один из самых важных разделов. Здесь находится то, что используется на практике: \Java.perform, \Java.use, \Interceptor.attach, работа с \Memory, API и другими механизмами. • https://frida.re/docs/javascript-api/

Где тренироваться на практике

OWASP MAS Crackmes (UnCrackable Apps) - одна из лучших тренировочных площадок для практики с Frida в mobile security. Это специальные crackme-приложения, которые используются в том числе в рамках OWASP MASTG. • https://mas.owasp.org/crackmes/

#AppSec #Pentest #bugbounty #mobilesecurity #root #sslpinning #Frida #burpsuite

Мобильный хакинг, SSL pinning (финальная 3 часть) | Сетка — социальная сеть от hh.ru