Pull to refresh

Пару слов о перехвате HTTP/HTTPS трафика iOS приложений

Reading time 3 min
Views 47K
В этой статье я расскажу о простом методе заработка в сети перехвата HTTP/HTTPS трафика iOS приложений, включая трафик приложений использующих certificate pinning (а это например Twitter, Facebook и куча других приложений). От прочих методов, где бедным людям рекомендуют в командной строке руками генерировать какие-то сертификаты и куда-то их запихивать, этот метод отличается (относительной) безгеморройностью, хотя кое-какие телодвижения сделать конечно прийдется.

Нам понадобится:

  • iOS 7.0-7.0.4 девайс c evasi0n jailbreak и установленным OpenSSH
  • PC с Windows 7 и установленной последней версией Fiddler2
  • iOS девайс и PC должны быть подключены к одной Wi-Fi сети

Возможно на других версиях iOS и/или Windows тоже будет работать, я не пробовал. В любом случае какая бы конфигурация ОС/железок у вас не была, все дальнейшие действия вы делаете на свой страх и риск! Автор не несет ответственность за возможный вред, бла-бла-бла... Ну стандартное предупреждение, вы поняли.

Инструкция по настройке Fiddler2 довольно простая: откройте “Tools” → “Fiddler Options” и настройте как на картинке:





Закройте настройки, затем щелкните мышкой на значке в правом верхнем углу главного окна Fiddler2 и запомните адрес вашего PC в Wi-Fi сети. Будет что-то типа такого:



Теперь инструкция по настройке iOS девайса. Она чуть сложнее, но тоже не rocket science. К тому же это нужно сделать всего один раз, а потом просто пользоваться:

  1. Через Cydia установите MobileSubstrate и PreferenceLoader, если еще не установлено (оба пакета есть в дефолтных репозиториях)
  2. С https://github.com/iSECPartners/ios-ssl-kill-switch/releases скачайте пакет com.isecpartners.nabla.sslkillswitch_v0.6-iOS_7.0.deb в какую-нибудь папку на вашем PC, а потом из это папки по ftps скопируйте пакет в корень вашего iOS устройства с помощью любого ftp-менеджера который это умеет (под Windows лично я предпочитаю WinSCP, но дело вкуса конечно)
  3. Залогиньтесь на ваше iOS устройство по SSH как root и выполните следующие команды:
    # dpkg -i /com.isecpartners.nabla.sslkillswitch_v0.6-iOS_7.0.deb
    # killall -HUP SpringBoard
    # rm /com.isecpartners.nabla.sslkillswitch_v0.6-iOS_7.0.deb
    
    В процессе на вашем девайсе перезагрузится SpringBoard («рабочий стол») — не пугайтесь, так и должно быть.
  4. На iOS устройстве, зайдите в “Settings” и найдите там раздел “SSL Kill Switch” (да, его там раньше не было, но если на предыдущем шаге все прошло успешно — он там появился) и включите настройку “Disable Certificate Validation”
  5. Перезагрузите свой iOS девайс (руками или скомандуйте reboot через SSH)
  6. Зайдите в настройки Wi-Fi сети, к которой подключен ваш iOS девайс, установите HTTP прокси в “Manual” и поставте
    • Server: IP адрес вашего PC (ага! вы его забыли!)
    • Port: 8888
    • Authentification: off

Теперь, если все прошло успешно, через Fiddler2 побежит HTTP/HTTPS трафик с вашего iOS девайса. Причем будет видно даже трафик тех приложений, которые используют certificate pinning: благодаря патчу com.isecpartners.nabla.sslkillswitch_v0.6-iOS_7.0.deb, который мы установили на наш iOS девайс, у 99% процентов iOS приложений проверка сертификата заканчивается успехом какой бы сертификат приложению не подсунули (в нашем случае Fiddler2 подсовывает приложению свой).

Вот и все. Никаких генераций сертификатов вручную, впихивания их в iOS (что, как правило, все равно не помогает против certificate pinning) и прочего геморроя. Правда есть одно «но»… если после ваших экспериментов вы оставите настройку “Disable Certificate Validation” включенной, приложения на вашем iOS девайсе могут стать уязвимы для MITM атак — ведь благодаря патчу они принимают любые сертификаты, помните? Поэтому если для своих экспериментов вы используете свой личный iPhone, выключайте “Disable Certificate Validation” выходя из дома после этих самых экспериментов.

Happy sniffing!
Tags:
Hubs:
+22
Comments 17
Comments Comments 17

Articles