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

  • Автор темы Автор темы Vlad
  • Дата начала Дата начала
bypass-ssl.png


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

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

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

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

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

Обход 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 года. Поэтому вам следует запланировать обновление приложения с обновленным сертификатом.

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

----------
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!