Гостевая статья Обход и отключение SSL на Android для выполнения атаки

  • Автор темы Автор темы Vlad
  • Дата начала Дата начала

Vlad

Green Team
28.01.2019
92
27
bypass-ssl.png


Пиннинг сертификатов - это дополнительный уровень безопасности для обеспечения защиты. Он гарантирует, что только сертифицированные центры сертификации (Certificate Authorities, CA) могут подписывать сертификаты для вашего домена, а не любой центр сертификации в магазине вашего браузера.

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

Анализ исходного кода для SSL-пининга
При поиске таких строк, как «checkClientTrusted» или «checkServerTrusted», будет показан фрагмент кода с пиннингом.

Если код не запутан, то мы модифицируем код, чтобы избавиться от пиннинга, перекомпилируем и подпишем его с помощью APKTOOL.

Также, вы можете выполнить статический анализ с помощью фреймворка безопасности, такого как MOBSF, если вы найдете «Файлы сертификатов / ключей, запрограммированные внутри приложения» или «Обнаружено закодированное хранилище ключей», то он имеет SSL pinning.

Обход SSL-пининга
Чтобы отключить, нужно декомпилировать файл приложения и найти метод, связанный с контролем пиннинга и удалить проверку.
Конечная цель заключается в том, чтобы клиент принял ваш SSL-сертификат как действительный.

В нашем сценарии мы используем приложение Android, если у вас есть рутированное устройство, то вы можете использовать Xposed Framework модули, доступные для отключения SSL Pinning. Это очень простой и понятный метод.

Но лучший способ - это провести ручную проверку, разобрав apk, где в небольшом исходном коде выполняется проверка пиннинга сертификата.
Код:
$ apktool -d test.apk
Поиск в небольшом коде по ключевым словам, таких как "X509TrustManager", "cert", "pinning", чтобы найти, где логин для подключения сертификата - это ключевые слова, такие как "X509TrustManager", "cert", "pinning", и т.д., чтобы найти, где выполняется подключение сертификата.

После того, как вы закончили модификацию кода, необходимо скомпилировать и повторно оформить приложение с сертификатом разработчика. Здесь сертификат с кодовой подписью обеспечивает целостность и гарантирует, что приложение не будет подделывать.
Код:
$ apktool b test / -o example.modified.apk

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

Обход сертификата pinning любым из этих способов позволяет эффективно вести человека в средней атаке на приложения, защищенные с помощью HTTPS и SSL, имея возможность перехватывать сеансы и даже видеть имена пользователей и пароли в обычном тексте в таком инструменте, как burp suite или fiddler.

Обход SSL
Срок действия сертификата имеет тенденцию к истечению, так как согласно CAB форуму, CA сертификаты не будут выдаваться с максимальным сроком 3 года. Поэтому вам следует запланировать обновление приложения с обновленным сертификатом.

Мы должны реализовать методы обфуска́ции, чтобы избежать декомпиля́ции нашего исходного кода. Вы можете отправить приложение для пентестинга компаний для анализа исходного кода.

----------
ИСТОЧНИК
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab