Another Android ssl certificate pinning bypass for various methods · GitHub

Another Android ssl certificate pinning bypass for various methods · GitHub Сертификаты

Another android ssl certificate pinning bypass for various methods

Ciao, posso chiederti di creare l’apk di TikTok senza SSL Pinning? Grazie mille


Hi, may I ask you to create TikTok apk without SSL Pinning? Thanks a lot

Digital certificate

A certificate is a file that encapsulates information about the server that owns the certificate. It’s similar to an identification card, such as a passport or a driver license. The structure of certificate uses X.509 standards. X.509 is defined by the International Telecommunication Unions’s standardisation sector. A Certificate Authority(CA) can issue a certificate or it can be self-signed

A Digital Certificates holds many informations –

Downloading the certificate :

Go to the web browser and open www.google.co.uk. When you will open this link you will see the lock icon in the top search bar. Just click on this, you will see one popup, click on show certificate. Drag and drop certificate in your desktop. Please chek below images for the same.

Now just change the name of certificate as per your choice. I have named it google.cer an example project(SSLPinning). Just put this in-app bundle.

How ssl works?

Про сертификаты:  Урология повышение квалификации и профессиональная переподготовка

Pining using certificate:

First of all we will download the certificate for www.google.co.uk.

Pinning the certificate

Now in ViewController just go and write the logic of calling API.

Ssl pinning in ios

There are many popular options to perform SSL pining in iOS. These are- URLSession, AlamoFire, AFNetworking, TrustKit. We can implement Certificate pinning as well as public-key pining using URLSession,AlamoFire, AFNetworking but if you are using TrustKit then you can only do public key pinning.

We will use URLSession for Pining in this tutorial. We will use google.co.uk as URL for pining in example project.

Why do you need ssl certificate pinning?

SSL pinning allows the application to only trust the valid or pre-defined certificate or Public Key. The application developer uses SSL pinning technique as an additional security layer for application traffic. As normally, the application trusts custom certificate and allows the application to intercept the traffic.

Restricting the set of trusted certificates through pinning prevents attackers from analyzing the functionality of the app and the way it communicates with the server.

Безопасность ios-приложений (часть 36) – обход certificate pinning при помощи ssl kill switch

Безопасность IOS-приложений (часть 36) – Обход certificate pinning при помощи SSL Kill Switch

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

Автор: Prateek Gianchandani

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

По умолчанию при инициации SSL-соединения клиент проверяет, что сертификат сервера:

  • имеет проверяемую цепочку сертификатов до достоверного (корневого) сертификата.
  • соответствует имени хоста.

Хотя, клиент не проверяет, является ли текущий сертификат именно тем, который использует сервер.

Про сертификаты:  Катание на танке в Москве и Московской области - подарочный сертификат Xpresent

Проверка на соответствие между сертификатами на устройстве и на удаленном сервере потенциально является брешью в системе безопасности. Все дело в том, что хранилище сертификатов на устройстве может быть легко скомпрометировано; пользователь может установить небезопасные сертификаты, тем самым ставя себя под угрозу стать жертвой атак типа «человек посередине» (maninthemiddleattacks). Технология certificate pinning позволяет решить эту проблему. Суть метода заключается в том, что сертификат, соответствующий тому, который использует сервер, жестко зашивается в мобильное приложение. Во время инициации SSL-соединения мобильное приложение игнорирует хранилище на устройстве и соединяется только с теми хостами, сертификат у которых соответствует сертификату, зашитому в приложении. Сия технология также помогает нам сделать хост достоверным при помощи самоподписанного сертификат и не устанавливать дополнительные сертификаты на устройстве.

Технология certificate pinning используется многими популярными приложениями: Twitter, Square и т. д. Вопрос заключается в том, как обойти проверку сертификата на стороне клиента? Важно отметить, что все проверки происходят на стороне клиента, и мы можем, используя различные фреймворки (Mobile Substrate и другие), патчить методы и обходить эти проверки.

На конференции Blackhat была представлена экспериментальная утилита SSL Kill Switch, которая позволяет обходить проверку сертификатов. С полной версией презентации можно ознакомиться здесь. Спустя некоторое время у автора получилось отследить трафик приложений, использующих технологию certificate pinning (например, Twitter), но возникли сложности с отслеживанием трафика у приложения App Store. Далее автор пришел к выводу, что для отслеживания трафика у приложения App Store, необходимо пропатчить более низкоуровневые методы и завершить некоторые процессы. На эту тему была написана довольно интересная статья, с которой я рекомендую вам ознакомиться. Кроме того, обратите внимание, что SSL Kill Switch будет способна отключить стандартную проверку SSL-сертификатов, и вам не нужно будет устанавливать корневой достоверный сертификат, что мы обычно делаем для анализа трафика через протоколы HTTP/HTTPS.

Про сертификаты:  Скачать сертификат на олифа «ОКСОЛЬ» марки ПВ | - Сертификаты соответствия

Чтобы проверить, что приложение Twitter использует технологию certificate pinning, установите эту программу и направьте весь трафик с устройства через Burp Proxy. Более подробно об инспектировании трафика через HTTP/HTTPS описано в 11-й статье этого цикла. Если вы поработаете с приложением Twitter, трафик не будет перехватываться Burpsuite.

Чтобы проанализировать трафик приложения Twitter, подключитесь к устройству через ssh и загрузите приложение iOS SSL Kill Switch. Кроме того, установите следующие приложения через Cydia:

  • dpkg
  • MobileSubstrate
  • PreferenceLoader

Устанавливаем deb-пакет при помощи команды dpkgi.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/102914_1531_iOSApplicat1.png

Рисунок 1: Установка приложения SSL Kill Switch

После установки сделайте респринг устройства при помощи команды killallHUPSpringBoard.

Далее зайдите в настройки SSL Kill Switch и включите опцию Disable certificate validation.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/102914_1531_iOSApplicat2.png

Рисунок 2: Отключение проверки сертификата

Теперь трафик приложения Twitter будет проходить через Burp Proxy.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/102914_1531_iOSApplicat3.png

Рисунок 3: Лог Burp Proxy

Чтобы проверить, что SSL Kill Switch инжектируется в приложение, зайдите в Xcode -> Devices (я использую Xcode 6), найдите ваше устройстве в меню слева и кликните на стрелку, указывающую вверх, в левом нижнем углу. По логам устройства вы увидите, что SSL Kill Switch инжектируется в приложение.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/102914_1531_iOSApplicat4.png

Рисунок 4: Полный лог устройства

Еще одна утилита со схожим функционалом – trustme. Рекомендую вам также ознакомиться с этим приложением. 

Реверс apk

Отреверсим приложение, чтобы понять, какие библиотеки используются внутри.

$ apktool d app-debug.apk

Сбор информации

Для начала попробуем запустить приложение. Видим на экране кнопку SEND и текстовое приглашение ее нажать. Нажимаем — надпись меняется сначала на «Wait…», а после отображается «Sorry, not today». Скорее всего, отправляется запрос, который не проходит проверку на стороне сервера. Давай посмотрим, что происходит внутри приложения.

Оцените статью
Мой сертификат
Добавить комментарий