вторник, 11 марта 2025 г.

Восстановление данных с iPhone 5

Если на айфоне ввести 10 раз неправильный пароль, он блокируется и единственная штатная опция его разблокировки — это восстановление через iTunes с данными из резервной копии. Если резервной копии нет, то остаётся только «восстановить» свежую ОС с потерей всех данных. В поддержке Эппла не могут ничего сделать, даже если вы предоставите убедительные доказательства того, что айфон действительно ваш. Не могут ни извлечь данные, ни сбросить счётчик неверно введённых паролей.

Данные, лежащие в айфоне, зашифрованы и расшифровываются на лету с помощью чипа, в который введён тот самый пароль. Если пароль неизвестен, чип не работает. Эмулятора чипа не существует. Пароль после блокировки уже никак не ввести. Единственное, что айфон разрешает с собой сделать в такой ситуации — восстановление без извлечения данных, см. выше.

Остаётся взлом устройства. Есть различные «программы для взлома», «устройства для взлома» и различные фирмы, оказывающие соответствующие услуги. Эти программы, устройства и услуги (i) дорого стоят и (ii) не дают результата. Хорошая новость заключается в том, что все взломы основаны на одной-единственной уязвимости под названием checkm8, обнаруженной в 2018 г. Она работает для моделей от iPhone 4 до iPhone X. В более поздних моделях, вышедших после обнаружения уязвимости, она была исправлена, и взломать эти модели из заблокированного состояния невозможно.

Итак, инструкции по разблокировке и подбору пароля для iPhone 5 (A1429) с iOS 10.3.4. Для других моделей могут быть отличия.

Подготовка:

  • Требуется компьютер с MacOS (в данном случае MacBookPro A1989 с MacOS Ventura 13.1). Программы для линукса не сработали.
  • Скачать пакет программ для создания RAM-диска авторства Orangera1n (ссылка, в названии указана iOS 9, но для 10 он тоже подходит). Известный аналог авторства meowcat не сработал.
  • Выполнить команду brew install usbmuxd (для программы iproxy).
  • Установить программу для копирования файлов по SSH, например FileZilla.

Взлом:

  1. Подключить айфон к компьютеру по шнуру Lightning — USB Type A (через адаптер, потому что порта Type A на макбуке нет). Подключение по шнуру Lightning — Type С не позволит войти в режим DFU, см. ниже.

  2. Выключить айфон обычным способом.

  3. Ввести айфон в режим DFU (Device Firmware Update). Это делается следующим образом: зажать верхнюю кнопку на 3 секунды, затем, не отпуская эту кнопку, нажать на кнопку «Домой» и держать обе кнопки нажатыми 10 секунд, затем отпустить верхнюю кнопку, но продолжать держать кнопку «Home» ещё 10 секунд, затем отпустить. Делать лучше по таймеру, не отсчитывая время в уме. Ошибка на полсекунды приведёт к тому, что DFU не включится. Если включится белый экран с яблоком — значит, произошла обычная загрузка, нужно дождаться её окончания и повторить. Если появится картинка со шнуром и адресом support.apple.com — значить, включился режим восстановления (Recovery mode), из которого нужно выйти, зажав одновременно верхнюю кнопку и «Home» на 15 секунд. В режиме DFU экран полностью чёрный.

  4. Отключить айфон от компьютера и подключить заново, но уже по шнуру Lightning — USB Type С. (Последующие команды не сработали с подключением по Type A.)

  5. В терминале выполнить следующие команды:

    cd [путь к Orangera1n]/Exploit

    ./iPwnder32 -p

    Если программа не обнаружит DFU — выйти из DFU (одновременно удерживая верхнюю кнопку и «Home») и войти заново, вернувшись к п. 2. Это потребуется не больше 1 раза — в первый раз MacOS как-то реагирует на DFU и, видимо, мешает работать программе взлома.

  6. Выполнить в терминале команду

    ./irecovery -f [путь к Orangera1n]/Loaders/iPhone5/iBEC

  7. Запустить в терминале программу

    ./irecovery2 -s

    Внутри этой программы ввести следующие команды:

    /send [путь к Orangera1n]/Loaders/iPhone5/devicetree

    devicetree

    /send [путь к Orangera1n]/Loaders/iPhone5/ramdisk

    ramdisk

    /send [путь к Orangera1n]/Loaders/iPhone5/kernelcache

    bootx

    после чего айфон загрузится и покажет на экране «Welcome to iOS 9 SSH Ramdisk».

  8. Запустить в терминале

    iproxy 2222 22

  9. Оставить этот терминал и открыть другой, в нём ввести

    ssh root@localhost -p 2222

    ввести пароль alpine, после чего откроется командная строка загруженной на RAM-диск ОС, в которой нужно выполнить

    mount.sh

  10. Открыть FileZilla и соединиться с localhost по порту 2222, логин root, пароль alpine. Скачать с устройства файл /var/mobile/Library/Preferences/com.apple.springboard.plist.

  11. Открыть терминал, перейти в директорию со скачанным файлом и выполнить преобразование файла в формат XML:

    plutil -convert xml1 com.apple.springboard.plist

  12. Открыть файл в текстовом редакторе, удалить из него ключ SBDeviceLockBlockTimeIntervalSinceReferenceDate (обратить внимание, что каждый ключ в файле занимает две строки), значение по ключу SBDeviceLockBlocked выставить в false, а значение по ключу SBDeviceLockFailedAttempts выставить в −9999.

  13. Выполнить обратное преобразование файла в двоичный формат:

    plutil -convert binary1 com.apple.springboard.plist

  14. С помощью FileZilla передать файл обратно на устройство в ту директорию, из которой он был взят, т. е. перезаписать файл.

  15. Повторить шаги 10-14 для файла /var/mobile/Library/SpringBoard/LockoutStateJournal.plist.

  16. Теперь счётчик неверно введённых паролей сброшен и ограничение на 10 попыток снято. Если вы помните пароль или можете подобрать его вручную за разумное время — перезагружайте айфон (долгое одновременное нажатие верхней кнопки и «Home») и дерзайте. Если пароль неизвестен, не перезагружайте айфон и переходите к следующему пункту.

  17. Скачайте программу bruteforce отсюда (прямая ссылка) и с помощью FileZilla поместите её на устройство в директорию /mnt/tmp2. Там же в FileZilla измените права на файл, разрешив выполнение. (Этого не сделать в ОС на RAM-диске в связи с отсутствием программы chmod.)

  18. Вернитесь в терминал, где делали ssh root@localhost -p 2222 (или выполните заново, если закрыли) и запустите

    /mnt/tmp2/bruteforce

    Программа перебирает пароли со скоростью около 1 попытки в 5 секунд; таким образом, потребуется не больше 14 часов для определения верного пароля. Существует быстрый режим (bruteforce -u), но для его работы требуется патченое ядро (ссылка), затраты на формирование которого (по сравнению с простым ожиданием) вряд ли оправданы.

  19. Программа bruteforce завершается, найдя верный пароль; перезагружайте айфон (долгое одновременное нажатие верхней кнопки и «Home») и пользуйтесь. Никаких следов взлома, кроме вышеупомянутого сброса счётчика неправильно введённых паролей, на устройстве не останется.