Мобильный хакинг, 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
· 26.04
Пост-огонь!
ответить
коммент удалён