Не так давно в iOS Forensic Toolkit для macOS появилась поддержка эксплойта загрузчика checkm8. В новой версии инструментария был добавлен новый режим анализа, позволяющий извлечь образ файловой системы и расшифровать Связку ключей из моделей iPhone 5s, iPhone 6, 6 Plus, 6s, 6s Plus и iPhone SE первого поколения, работающих под управлением любых версий iOS за исключением iOS 7.x. В этой статье подробно описано использование метода извлечения на основе checkm8.
В течение продолжительного времени Elcomsoft iOS Forensic Toolkit поддерживал различные методы извлечения из устройств Apple (на базе iOS/iPadOS/WatchOS/tvOS), включая следующие:
В этой статье описывается использование нового способа для ряда устройств (от iPhone 5s до iPhone SE включительно), позволяющий получить полную копию файловой системы и расшифрованную связку ключей.
Способ извлечения посредством эксплойта загрузчика checkm8 — один из самых мощных инструментов в арсенале эксперта. В то же время использование этого метода обставлено многочисленными ограничениями и сопутствующими требованиями. Для работы вам понадобятся:
Уязвимость загрузчика, которую эксплуатирует checkm8, была обнаружена в целом ряде устройств, куда входят, например, такие модели, как iPhone 7, 7 Plus, 8, 8 Plus и iPhone X. В актуальной версии iOS Forensic Toolkit последнее поколение устройств не поддерживается, и извлечение доступно для всех модификаций iPhone 5s, iPhone 6, iPhone 6 Plus, iPhone 6s, iPhone 6s Plus, iPhone SE (первого поколения), в частности:
Неофициальная поддержка есть для следующих моделей:
Продукт поставляется с USB-ключом для защиты он несанкционированного использования и копирования; ключ должен быть вставлен в USB-порт в течение всего использования продута. Запустите toolkit.command, и следуйте инструкциям (ниже) для корректного извлечения данных. Функционал checkm8-извлечения доступен в разделе Physical acquisition, пункт P — PHYSICAL; выберите его, чтобы попасть в меню нового метода извлечения:
1 Put device in DFU mode (ввести устройство в режим DFU) 2 Exploit device (использовать уязвимость) 3 Diskinfo (информация о разделах) 4 Unlock data (разблокировать данные) 5 Decrypt keychain (расшифровать связку ключей) 6 Tar user partition (копировать файловую систему с пользовательского раздела) 7 Open SSH shell (открыть SSH-соединение) 8 Reboot (перезагрузить) 0 Return to top-level menu (вернуться в меню верхнего уровня)
Этот шаг является обязательным вне зависимости от того, какие дальнейшие действия вы планируете совершить в рамках анализа. Начальное состояние: устройство включено и подключено к компьютеру кабелем USB-A (при этом оно может быть заблокированным после 10 неверных попыток, или находиться в режиме ограничений USB). Процедура ввода в режим DFU одинакова для всех поддерживаемых устройств; выберите “1”, чтобы получить подсказки с таймингами:
В случае успеха экран должен остаться чёрным. Если устройство перезагрузилось в обычном режиме или показывает логотип iTunes – скорее всего, вы удерживали кнопку Home слишком долго, и необходимо повторить процедуру.
Следующий шаг — применить уязвимость загрузчика. Устройство при этом должно находиться в режиме DFU.
Для применения уязвимости в загрузчике используйте команду “2”. Продукт определит точную модель устройства и версию iBoot (загрузчик первого уровня); по этим данным будут, в свою очередь, определены возможные версии iOS (иногда их несколько возможных), и предоставлены ссылки на скачивание прошивки устройства. Вам необходимо скачать ту, которая точно соответствует установленной на устройстве; когда она будет скачана, просто перетащите файл с расширением .ipsw из Finder на окно продукта.
Во время загрузки продукт будет показывать подробную информацию обо всех этапах; эта информация может оказаться полезной при обращении в службу поддержки.
Если устройство изначально не было заблокировано, вы можете узнать точную версию iOS в настройках («Об устройстве»). Если код блокировки неизвестен, можете выбирать любую из предложенных; с большой вероятностью она подойдёт. Если нет, то данные на устройстве не будут затронуты, а на более позднем этапе загрузки продукт сможет определить версию iOS уже точно, так что вторая попытка в любом случае окажется успешной.
На самом начальном этапе загрузки экран устройства остаётся чёрным, после чего появится картинка “Booting” (Загрузка), которая через несколько секунд сменится на “Exploited” (если применение уязвимости прошло успешно).
В консоли программы при этом появится сообщение Booting done:
Эта команда необязательна. Она служит для получения списка разделов на устройстве, с их параметрами (имя, размер, файловая система). В старых версиях iOS используется HFS+; начиная с 10.3 уже APFS. Обратите внимание, что наш продукт копирует файлы только с пользовательского раздела (DATA).
Данный функционал может быть полезен для определения, не повреждена ли файловая система. В HFS+, использовавшейся в старых версиях iOS (до 10.3) может быть установлен флаг “dirty” (грязный). Обычно это происходит, когда устройство перезагрузилось нештатным образом в результате сбоя системы или какого-то приложения, либо при неудачном обновлении операционной системы.
В любом случае, если упомянутый флаг установлен, эта информация только для вашего сведения – вам не придётся выполнять никакие дополнительные команды. Проверка целостности раздела будет запущена автоматически на следующем этапе (разблокировки).
Команда [4] является обязательной, если вы собираетесь извлекать данные; до её выполнения вы можете только посмотреть разбивку диска по разделам и перезагрузить устройство. Вне зависимости от того, используется ли код блокировки экрана, практически все данные на пользовательском разделе зашифрованы. Для расшифровки нужен код блокировки экрана, но разблокировка требуется даже для того, чтобы получить доступ к остальным (незашифрованным) данным.
Продукт сначала запросит, знаете ли вы код блокировки экрана устройства. Если знаете или он пустой, отвечайте Y/y. Если же код блокировки экранаустановлен либо неизвестен, или если устройство уже находится в заблокированном состоянии после 10 неверных попыток (вне зависимости от того, известен ли вам код блокировки экрана), отвечайте N/n.
Если код блокировки экрана не установлен, диск будет разблокирован автоматически.
Используйте команды [5] и [6] для получения и расшифровки связки ключей и для копирования данных с пользовательского раздела соответственно. Это можно сделать только после применения уязвимости. Процесс происходит полностью автоматически, вам потребуется задать только имя и папку для выходных файлов (либо воспользоваться предложенными по умолчанию). Процесс извлечения связки ключей обычно очень быстрый, тогда как копирование файлов может занять продолжительное время (до нескольких часов); визуального прогресс на устройстве отображаться не будет, но в самой программе на компьютере Mac будет счётчик уже скопированных данных, плюс текущая скорость копирования.
Эта часть функционала в обычных условиях не используется, и может вам понадобиться только по запросу нашей службы поддержки в случае возникновения каких-либо проблем или нештатных ситуаций.
Эта команда перезагружает устройство. Альтернативный способ перезагрузки – зажать кнопки Домой и питания на 10 секунд до момента появления логотипа Apple.
Обратите внимание: разблокировка устройств с неизвестным кодом блокировки не реализована (на данный момент такой функционал доступен только для iPhone 4/5). Если вы не знаете код блокировки экрана, максимум что можно сделать – это выполнить частичное извлечение файловой системы (только те файлы, которые не зашифрованы – к сожалению, их немного, но всё же иногда они представляют некоторую ценность, поскольку там есть журнал звонков, некоторые данные геолокации, черновики сообщений и т.д.
Сопроцессор безопасности iPhone заблокирует устройство после десяти попыток ввода неверного кода блокировки. После этого устройство можно будет проанализировать только в режиме BFU независимо от того, узнаете ли вы оригинальный код блокировки экрана или нет. Обойти это ограничение пока не удалось. В целях безопасности iOS Forensic Toolkit позволяет лишь 7 попыток ввода кода блокировки.
Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).