
Blackbox — инструмент для отключения проверки SSL-сертификатов — включая привязку сертификатов (certificate pinning) — в приложениях iOS и macOS.
Blackbox-инструмент для отключения проверки SSL/TLS-сертификатов — включая закрепление сертификатов — в приложениях iOS и macOS. Вторая итерация https://github.com/iSECPartners/ios-ssl-kill-switch .
После загрузки в приложение iOS или macOS SSL Kill Switch 2 пропатчит низкоуровневые функции, отвечающие за обработку SSL/TLS-соединений, чтобы переопределить и отключить системную проверку сертификатов по умолчанию, а также любую пользовательскую проверку сертификатов (например, закрепление сертификатов).
Он был успешно протестирован на различных приложениях, реализующих закрепление сертификатов, включая Apple App Store. Первая версия SSL Kill Switch была выпущена на Black Hat Vegas 2012.
Последняя известная поддерживаемая версия iOS — 14.2.
В iOS SSL Kill Switch 2 можно установить как твик Cydia Subtrate на взломанном устройстве.
Установка SSL Kill Switch 2 позволяет любому, кто находится в одной сети с устройством, легко выполнять атаки типа «человек посередине» на любое SSL- или HTTPS-соединение. Это означает, что тривиально получить доступ к электронной почте, сайтам, открытым в Safari, и любым другим данным, загружаемым любым приложением на устройстве.
Следующие зависимости должны быть установлены через Cydia:
Затем загрузите последний предварительно скомпилированный пакет, доступный на вкладке Release GitHub-страницы SSL Kill Switch 2. Скопируйте его на устройство, установите и выполните respring устройства:
dpkg -i <package>.deb
killall -HUP SpringBoard
В настройках устройства должно появиться новое меню, в котором можно включить расширение. Наконец, завершите и перезапустите приложение, которое хотите протестировать.
Позже твик можно удалить с помощью:
dpkg -r com.nablac0d3.SSLKillSwitch2
Многие спрашивали, как перехватывать трафик App Store с помощью SSL Kill Switch 2. Я записал некоторые инструкции здесь, но они уже устарели: http://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/
По умолчанию SSL Kill Switch нарушает работу приложения Charles Proxy iOS, и вы не сможете проксировать через него сетевой трафик. Чтобы исправить это, добавьте приложение Charles Proxy (com.xk72.Charles) в список исключённых Bundle ID в конфигурации SSL Kill Switch:

Для сборки требуется установленный набор Theos, доступный по адресу http://www.iphonedevwiki.net/index.php/Theos/Getting_Started .
Затем в корневой папке SSL Kill Switch 2 создайте символическую ссылку на вашу установку theos:
ln -s /<path_to_your_theos_folder> theos
Убедитесь, что dpkg установлен. Если у вас есть Homebrew, используйте:
brew install dpkg
Затем Debian-пакет SSL Kill Switch 2 можно собрать с помощью:
make package
SSL Kill Switch 2 может использоваться в приложениях macOS как динамическая библиотека, внедряемая в процессы.
В macOS библиотеку SSLKillSwitch необходимо вручную внедрить в процесс, в котором нужно отключить закрепление SSL-сертификатов. После внедрения она автоматически переопределит и отключит проверку SSL.
Существует несколько способов сделать это, в том числе:
Запустите процесс с помощью LLDB или в Xcode Debug->Attach to process, затем поставьте на паузу и загрузите SSLKillSwitch через dlopen():
(lldb) expr (void*)dlopen("/path/to/build/SSLKillSwitch.framework/Versions/A/SSLKillSwitch", 1)
Ожидаемый результат — ненулевой указатель:
(void *) $1 = 0x00007f92e74d10c0
Если вы получили нулевой указатель, возможно, потребуется включить подпись кода и собрать для профилирования, затем использовать бинарник из папки release; возможно, даже придётся скопировать бинарник в папку ресурсов приложения. В этом случае вы бы увидели в консоли сообщение о нарушении чтения песочницы. Чтобы протестировать новую версию бинарника, завершите приложение и загрузите его снова.
Использование DYLD_INSERT_LIBRARIES для внедрения SSLKillSwitch и запуска процесса.
TBD
Используйте проект Xcode для сборки SSL Kill Switch 2 для macOS. Скомпилированная библиотека затем будет доступна в Products/SSLKillSwitch.framework/Versions/A/SSLKillSwitch. Это бинарник, который нужно внедрить в процесс, в котором вы хотите отключить закрепление SSL-сертификатов.
MIT - См. ./LICENSE.
Alban Diquet - @nabla_c0d3