Извлечение данных из iPhone с использованием checkm8: руководство

19 мая, 2021, Vladimir Katalov
Рубрика: «Новость Элкомсофт», «Полезные советы»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Не так давно в 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 — один из самых мощных инструментов в арсенале эксперта. В то же время использование этого метода обставлено многочисленными ограничениями и сопутствующими требованиями. Для работы вам понадобятся:

  • Совместимое устройство: one 5s, iPhone 6, 6 Plus, 6s, 6s Plus и iPhone SE первого поколения, одна из поддерживаемых моделей iPad (см. ниже) или iPod Touch 6.
  • Компьютер на базе macOS. На данный момент эксплуатация уязвимости реализована только на компьютерах Mac на основе процессоров Intel. Виртуальные машины и системы Hackintosh не поддерживаются.
  • iOS Forensic Toolkit для Mac версии 8.0 или выше.
  • Поддерживаемое устройство (см. ниже). Устройство должно быть достаточно работоспособным для того, чтобы ввести его в режим DFU. Устройства с неизвестным паролем, или заблокированные после 10 неверных попыток поддерживаются в ограниченном режиме BFU; режимом ограничений USB обходится.
  • Код-пароль разблокировки устройства должен быть известен. В противном случае будет возможно извлечь лишь очень ограниченный объём данных (режим BFU).
  • Поддерживаемая версия iOS. Мы поддерживаем все версии iOS, работающие на перечисленных устройствах, кроме iOS 7 (iPhone 5s), а также большинство бета-версий.
  • Кабель USB-A to Lightning. Кабели USB-C to Lightning не могут быть использованы для данного метода извлечения; кроме того, кабель должен быть подключен к Mac напрямую, без разветвителей (для компьютеров, где есть только USB-C, необходимо использовать переходник).
  • Вы должны знать (или определить во время использования уязвимости) точную версию iOS, установленную на устройстве.
  • У вас должна быть возможность скачать прошивку нужной версии (соответствующую установленной); ссылка на скачивание будет показана в продукте во время использования.

Совместимые устройства

Уязвимость загрузчика, которую эксплуатирует 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 (первого поколения), в частности:

  • iPhone 5S (iPhone6,1): A1453, A1533
  • iPhone 5S (iPhone6,2): A1457, A1518, A1528, A1530
  • iPhone 6 (iPhone7,2): A1549, A1586, A1589
  • iPhone 6 Plus (iPhone7,1): A1522, A1524, A1593
  • iPhone 6s (iPhone8,1): A1633, A1688, A1691, A1700
  • iPhone 6s Plus (iPhone8,2): A1634, A1687, A1690, A1699
  • iPhone SE (iPhone8,4): A1662, A1723, A1724

Неофициальная поддержка есть для следующих моделей:

  • iPod touch 6th gen: A1574
  • iPad Air: A1474, A1475, A1476
  • iPad mini 2/3/4: A1490, A1491, A1599, A1600, A1601, A1538, A1550
  • iPad 5th gen: A1822, A1823

Руководство по использованию

Продукт поставляется с 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 (вернуться в меню верхнего уровня)

Ввод в режим DFU

Этот шаг является обязательным вне зависимости от того, какие дальнейшие действия вы планируете совершить в рамках анализа. Начальное состояние: устройство включено и подключено к компьютеру кабелем USB-A (при этом оно может быть заблокированным после 10 неверных попыток, или находиться в режиме ограничений USB). Процедура ввода в режим DFU одинакова для всех поддерживаемых устройств; выберите “1”, чтобы получить подсказки с таймингами:

  • Одновременно зажмите кнопку питания и кнопку Home (c датчиком Touch ID) и держите 8 секунд
  • Отпустите кнопку питания, а кнопку Home продолжайте удерживать ещё 8 секунд

В случае успеха экран должен остаться чёрным. Если устройство перезагрузилось в обычном режиме или показывает логотип 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 будет счётчик уже скопированных данных, плюс текущая скорость копирования.

SSH

Эта часть функционала в обычных условиях не используется, и может вам понадобиться только по запросу нашей службы поддержки в случае возникновения каких-либо проблем или нештатных ситуаций.

Перезагрузка

Эта команда перезагружает устройство. Альтернативный способ перезагрузки – зажать кнопки Домой и питания на 10 секунд до момента появления логотипа Apple.

Известные проблемы и ограничения

Обратите внимание: разблокировка устройств с неизвестным кодом блокировки не реализована (на данный момент такой функционал доступен только для iPhone 4/5). Если вы не знаете код блокировки экрана, максимум что можно сделать – это выполнить частичное извлечение файловой системы (только те файлы, которые не зашифрованы – к сожалению, их немного, но всё же иногда они представляют некоторую ценность, поскольку там есть журнал звонков, некоторые данные геолокации, черновики сообщений и т.д.

Сопроцессор безопасности iPhone заблокирует устройство после десяти попыток ввода неверного кода блокировки. После этого устройство можно будет проанализировать только в режиме BFU независимо от того, узнаете ли вы оригинальный код блокировки экрана или нет. Обойти это ограничение пока не удалось. В целях безопасности iOS Forensic Toolkit позволяет лишь 7 попыток ввода кода блокировки.

  • Поддержка iOS 7 (iPhone 5s) пока не реализована.
  • Мы постарались протестировать продукт на максимальном диапазоне моделей и версий iOS и добились достаточно хорошей совместимости и надёжности, однако на некоторых комбинациях (а также в зависимости от содержимого устройства и его состояния) могут возникать проблемы как на этапе применения уязвимости, так и при разблокировке. В этом случае обращайтесь в нашу службу поддержки, и мы приложим максимум усилий, чтобы исправить проблему и помочь вам извлечь максимум данных.
  • В случае проблем с вводом в режим DFU (это требует некоторой сноровки) или применения уязвимости в первую очередь просто повторите попытку, затем попробуйте поменять кабель (желательно использовать оригинальный) и/или подключить устройство к другому USB-порту. Если же и это не помогает – использовать другой компьютер (разумеется, при наличии). Наконец, попробуйте ввести устройство в DFU другим способом; точнее, из другого начального состояния – выключенного или Recovery, а также после ввода кода блокировки (либо, если вы изначально так и пробовали – то сразу после перезагрузки, не вводя код блокировки).
  • Если проблема возникла уже на этапе разблокировки данных, это скорее всего чисто программная проблема, вызванная специфичным содержанием/состоянием устройства, хотя безусловно не исключены и ошибки на нашей стороне, в самом продукте. Обращайтесь в техподдержку, предоставив максимум информации (включая журналы диагностики продукта); мы можем запросить что-то дополнительно, и в любом случае дадим вам подробные инструкции, как можно попробовать исправить проблему, или как минимум лучше её диагностировать.
  • Если вы уже использовали извлечение с помощью нашего агента-экстрактора, то возможно помните, что структура папок внутри .tar-архива начинается с /private/var. При извлечении данным методом (checkm8) содержимое папки /private/var будет располагаться непосредственно в корне архива. Мы работаем с другими производителями программного обеспечения для мобильной криминалистики, чтобы они добавили поддержку архивов такой структуры в свои продукты.
  • Для некоторых комбинаций моделей и версий iOS, связка ключей не извлекается, либо не все записи могут быть расшифрованы. Такое часто случалось, если устройство обновлялось до очередного мажорного релиза системы, но сама связка ключей осталась в старом формате. Мы прилагаем максимум усилий, чтобы обеспечить полную совместимость со всеми возможными вариантами.
  • Чтобы процесс загрузки, применения уязвимости и разблокировки данных был более понятным визуально, мы меняем заставку на устройстве при выполнении различных шагов – сначала показывается Booting, затем Exploited, наконец Unlocking, а в процессе копирования файловой системы – Copying data. На данный момент, однако, реализованы только первые две заставки (Booting/Exploited), и пока не для всех устройств и версий.
  • Журналы диагностики программы и все извлечённые данные теперь записываются не в домашнюю директорию в системе (как раньше), а в папки, имена которых соответствуют методу извлечения: logical, physical, jailbreak, legacy, checkm8logs) внутри папки ElcomSoft, которая создаётся в домашней директории. Имя файла обычно начинается с UDID (уникальный идентификатор устройства).


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

REFERENCES:

Elcomsoft iOS Forensic Toolkit

Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (Связка ключей).

Официальная страница Elcomsoft iOS Forensic Toolkit »

НАШИ НОВОСТИ