В процессе анализа устройств под управлением iOS иногда возникает необходимость удалить код блокировки экрана, который может помешать установке джейлбрейка. Удаление кода блокировки — процедура простая и отработанная, но на некоторых устройствах сбросить код блокировки не удаётся, даже если вы точно знаете актуальный пароль. В таких случаях для успешного сброса пароля потребуется несколько нестандартных операций.
Суть проблемы
Для чего может потребоваться удалить код блокировки экрана? Причин может быть несколько, но основная из них — установка джейлбрейка для доступа к файловой системе и Связке ключей.
Обратите внимание: удалять код блокировки в процессе анализа не рекомендуется в силу ряда необратимых последствий, приводящих к удалению некоторых типов данных с анализируемого устройства (например, транзакций Apple Pay). В то же время удалить код блокировки может быть необходимо, если исследуемое устройство работает под управлением одной из версий iOS, для которых нет возможности использовать извлечение посредством агента-экстрактора из iOS Forensic Toolkit. Если вы вынуждены сбросить код блокировки экрана, убедитесь, что предварительно была сделана резервная копия устройством (даже если она защищена паролем), извлечены медиа-файлы по протоколу AFC, и сохранены журналы диагностики и файлы приложений.
Если iPhone работает на iOS 9.0 — 13.7, наиболее эффективным и безопасным методом извлечения будет агент-экстрактор из комплекта Elcomsoft iOS Forensic Toolkit. Агент-экстрактор не требует снятия кода блокировки, но использовать его с iOS 14 (пока) не получится. Единственный способ извлечь файловую систему и расшифровать Связку ключей для таких устройств — установка джейлбрейка checkra1n либо использование метода, основанного на прямом использовании эксплойта checkm8.
Суть проблемы в том, что на ряде устройств (iPhone 8, iPhone 8 Plus, iPhone X) checkra1n/checkm8 сработают лишь после того, как вы снимете код блокировки. Помешать этому может несколько факторов. Чаще всего мы сталкиваемся с ограничениями MDM (Mobile Device Management), см. Passcode MDM payload settings for Apple devices.
Однако, даже если устройство не управляется MDM, удалить код блокировки может оказаться проблематичным, если устройство находится в режиме полёта. В этом случае команда Turn Passcode Off в текущей версии iOS не срабатывает. Если вы подключите устройство к сети (что также делать не рекомендуется, поскольку устройство может быть удалённо заблокировано или сброшено), iOS запросит пароль от Apple ID, который может быть неизвестен.
Одним из решений может быть сброс пароля Apple ID (иногда это возможно без исходного пароля, в зависимости от настроек iCloud), но это решение далеко не идеально. Рекомендуем воспользоваться одной из альтернатив.
Решение
Одна из возможных причин такого поведения устройства — наличие на нём Apple Pay. Apple Pay требует установки кода блокировки экрана, и удаление этого кода приводит к удалению всех платёжных карт и очистке истории транзакций. Не совсем понятно, почему для сброса кода блокировки нужно входить в iCloud. Вполне возможно, что препятствовать удалению пароля могут какие-то другие системные компоненты.
Однако в некоторых случаях в системе не зарегистрировано ни одной платёжной карты, но пароль по-прежнему нельзя удалить. В этом случае можно использовать команду Reset All Settings. В наших тестах сброс срабатывал и в авиарежиме (даже без предварительного удаления платёжных карт, а также в ситуациях, когда карт нет, но отключение кода блокировки не работает).
Обратите внимание, что сброс настроек не только удаляет пароль устройства, но и очищает пароль шифрования резервных копий iTunes и все сохранённые пароли к точкам доступа Wi-Fi. Кроме того, если установлен пароль Экранного времени, вам придётся ввести и его (см. How To Access Screen Time Password and Recover iOS Restrictions Password).
Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).