Извлечение данных из iPhone с аппаратным джейлбрейком checkra1n

2 декабря, 2019, Vladimir Katalov
Рубрика: «Безопасность», «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Основным новшеством недавно анонсированного обновления инструментария iOS Forensic Toolkit стала поддержка новой утилиты джейлбрейка checkra1n. Новый джейлбрейк стал безусловным прорывом в области мобильной криминалистики. В чём принципиальное отличие checkra1n от всех предыдущих утилит для взлома iPhone, как установить его на устройство, как использовать и что именно можно извлечь с его помощью? Попробуем разобраться.

В предыдущей статье мы протестировали работу checkra1n с ТВ-приставкой Apple TV 4, убедившись в его работоспособности даже на столь отличной от телефонов платформе. Сегодня же мы расскажем о том, как использовать новый джейлбрейк для анализа широкой линейки iPhone начиная с iPhone 5s и заканчивая моделями iPhone 8, 8 Plus и iPhone X вне зависимости от установленной на них версии iOS.

Для чего нужен джейлбрейк

Один из самых часто задаваемых вопросов – «зачем вообще нужен джейлбрейк»? С точки зрения мобильной криминалистики джейлбрейк необходим для того, чтобы получить доступ к защищённым областям хранилища телефона: приватным данным приложений, включая базы данных защищённых чатов, паролям пользователя и маркерам аутентификации для самых разнообразных ресурсов. И если без джейлбрейка эксперту доступна лишь часть данных – та, к которой официально разрешён доступ как разработчиком приложения, так и компанией Apple, — то после установки джейлбрейка становятся доступны абсолютно все данные на смартфоне.

Традиционным ограничением всех джейлбрейков является невозможность установки на заблокированный iPhone. Новый джейлбрейк checkra1n обходит это ограничение благодаря установке через режим обновления прошивки DFU. Благодаря этому становится возможным частичное извлечение данных из телефона, который заблокирован неизвестным кодом блокировки. А вот взломать код блокировки при помощи checkra1n не получится, джейлбрейк для этого не предназначен.

Принципиальные отличия checkra1n от предыдущих поколений джейлбрейков

В отличие от классических утилит джейлбрейка Chimera, unc0ver и подобных, checkra1n не использует уязвимостей уровня операционной системы. Вместо этого новый джейлбрейк использует аппаратную уязвимость в загрузочном коде bootrom, который не зависит от версии iOS и не изменяется при обновлениях системы. Соответственно, checkra1n обладает чрезвычайно полезным свойством: для всех устройств, разработанных на уязвимых платформах (а это – наборы системной логики с Apple A5 по A11 включительно) посредством checkra1n получится взломать устройство независимо от версии iOS, включая те, которые выйдут в будущем. Уязвимость в коде bootrom не может быть исправлена программной «заплаткой».

Список поддерживаемых устройств весьма широк. Из 64-битных платформ, совместимых с последними версиями Elcomsoft iOS Forensic Toolkit, поддерживаются iPhone 5s, iPhone 6, iPhone SE, iPhone 6s, iPhone 7, iPhone 8, 8 Plus и iPhone X, а также большинство планшетов iPads, основанных на процессорах соответствующих поколений. Также поддерживаются приставки Apple TV 4 и Apple TV 4K, потенциально возможен взлом часов Apple Watch Series 1, 2 и 3.

Что касается версий iOS, поддержка анонсирована для всех версий системы начиная с 12.3 и вплоть до актуальной сборки iOS 13. При этом нет принципиальных препятствий для работы с более старыми и ещё не вышедшими версиями iOS.

Выходили ли утилиты такого масштаба в прошлом? Да, мы использовали уязвимость в bootrom в iPhone 4, обнаруженную в 2010 году (limera1n exploit). Уязвимость позволяла не только полностью копировать и расшифровывать весь раздел целиком (включая удалённые данные), но и работать минуя код блокировки (который можно было восстановить при желании).

Установка джейлбрейка checkra1n

Изначально checkra1n был доступен только для компьютеров с macOS. На сегодняшний день есть версии для Windows и Linux, но сборка для Mac до сих пор обеспечивает наиболее стабильный процесс установки.

Метод 1

Установка checkra1n кардинально отличается от всего, выходившего ранее. Для установки checkra1n не нужен Cydia Impactor, нет необходимости скачивать и подписывать IPA-файл. Для установки checkra1n достаточно запустить утилиту на компьютере, подключить к нему iPhone (рекомендуется кабель USB-A to Ligning, т.к. кабели USB-C to Ligtning для установки джейлбрейка могут работать нестабильно) и следовать указаниям. iPhone должен на момент подключения находиться в обычном режиме; после подключения утилита переведёт его в режим Recovery, после чего предложит вам вручную перевести телефон в режим DFU. Пожалуй, именно эта операция будет самой сложной во всём процессе: режим DFU не документирован Apple и требует точного соблюдения времени, в течение которого удерживаются нужные кнопки. О том, как перевести нужную модель iPhone в режим DFU, можно прочесть по ссылкам:

После того, как телефон загрузится в режим DFU, утилита checkra1n установит джейлбрейк (процесс занимает несколько минут) и перезагрузит устройство. После перезагрузки телефон можно подключать и использовать iOS Forensic Toolkit.

Метод 2 (рекомендуется)

Мы рекомендуем чуть более сложный (и несколько более рискованный) способ установки джейлбрейка, обладающий следующими преимуществами:
• Телефон не нужно переводить в режим Recovery
• Джейлбрейк можно установить даже на заблокированное устройство с неизвестным паролем
Способ работает только на macOS. Переведите iPhone в режим DFU, откройте окно терминала и выполните следующие команды (обратите внимание на дефис в конце второй строки):

cd /checkra1n.app/Contents/MacOS/
./checkra1n_gui -

После этого джейлбрейк установится.

Извлечение данных

После того, как джейлбрейк будет установлен, запустите iOS Forensic Toolkit. Работа инструментария внешне мало отличается от работы с другими утилитами джейлбрейка. Основное отличие – использование нового номера порта 44 вместо стандартного 22. Кроме того, в последней версии iOS Forensic Toolkit было добавлено автоматическое заполнение пароля root (по умолчанию – alpine); теперь вам не придётся вводить его вручную.

Важно: при работе с джейлбрейком checkra1n используется порт 44 при запуске iOS Forensic Toolkit.

Ещё одна важная вещь: если код блокировки устройства вам неизвестен, команды D (Disable lock) и K (Keychain) не сработают. Будет работать только команда F (File system), которая выдаст ограниченное количество данных. Чтобы получить доступ ко всей информации в устройстве, вам потребуется разблокировать его и поддерживать в разблокированном состоянии в процессе работы.

Можно ли извлечь данные из iPhone без iOS Forensic Toolkit? Да, но только ту часть, которая относится к файловой системе. Расшифровать Связку ключей (пароли, ключи шифрования и маркеры аутентификации, в том числе к таким приложениям, как Signal и WhatsApp) без нашего продукта не получится.

Результат

Важно отметить, что джейлбрейк checkra1n не поможет вам узнать неизвестный код блокировки iPhone. Тем не менее, вы можете установить его в том числе и на заблокированное устройство, а также использовать для частичного извлечения файловой системы из только что перезагруженного и заблокированного телефона. Система безопасности iOS спроектирована таким образом специально: часть файлов должна быть доступна до разблокировки просто для того, чтобы телефон смог загрузиться, ответить на звонок, получить и где-то сохранить сообщение, наконец, получать команды от сервиса Find My. Связанные с этим риски в безопасности минимальны. Вот краткий перечень файлов, доступных сразу после перезагрузки:

Журналы, профили, настройки
/private/var/installd/Library/Logs/MobileInstallation/
/private/var/log/
/private/var/preferences/
/private/var/root/Library/Preferences/
/private/var/mobile/Library/Logs/
/private/var/mobile/Library/Preferences/
/private/var/mobile/Library/UserConfigurationProfiles/
Системные базы данных
/private/var/wireless/Library/Databases/CellularUsage.db
/private/var/wireless/Library/Databases/DataUsage.db
/private/var/root/Library/Caches/locationd/consolidated.db
/private/var/mobile/Media/Downloads/downloads.28.sqlitedb
/private/var/mobile/Library/ApplePushService/aps.db
/private/var/mobile/Library/FrontBoard/applicationState.db
/private/var/mobile/Library/TCC/TCC.db
Временные базы данных звонков и сообщений
/private/var/mobile/Library/CallHistoryDB/CallHistoryTemp.storedata
/private/var/mobile/Library/SMS/sms-temp.db
Голосовая почта
/private/var/mobile/Library/Voicemail/voicemail.db

Кроме того, доступен список учётных записей /private/var/mobile/Library/Accounts/Accounts3.sqlite. В ней нет никаких паролей, но есть информация о владельце устройства и связанных учётных записях.

Также извлекается история связи с точками доступа Wi-Fi, связанные устройства Bluetooth, журналы WhatsApp, список заблокированных контактов и десятки файлов plist – полный список требует дополнительного исследования.

Разумеется, для полного извлечения данных нужно, чтобы устройство было разблокировано, а код блокировки известен или не установлен. Кроме того, вы можете использовать облачное извлечение посредством Elcomsoft Phone Breaker для Apple iCloud и Elcomsoft Cloud eXplorer для учётных записей Google. Для просмотра извлечённой из устройства копии файловой системы .tar рекомендуем наш собственный продукт Elcomsoft Phone Viewer или одно из более продвинутых решений, к примеру, Oxygen Forensic Detective или BlackBag BlackLight.

Кроме того

Много полезной информации содержится в двух статьях на тему извлечения данных из iPhone: 1 и 2.

Самым важным моментом, на который следует обратить внимание, является обязательное отключение всех сетевых интерфейсов как телефона, так и компьютера, с которого производится запуск инструментария. Если вы не отключите все проводные и беспроводные сетевые интерфейсы, вероятны проблемы с соединением.

Кроме того, извлечение Связки ключей может выдать следующее сообщение:

Please select the following action: 

1. Forcefully dump keychain without unlocking 
2. Wait until device is unlocked and dump keychain after that

О режиме USB restricted mode

Постоянные читатели нашего блога хорошо знакомы с защитным режимом USB, который автоматически отключает передачу данных между телефоном и компьютером сразу или почти сразу после блокировки экрана. Логическое извлечение данных, записи lockdown, установка джейлбрейков всех предыдущих поколений – всё это становилось невозможным вплоть до момента разблокировки устройства.

Изменилось ли что-нибудь с выходом checkra1n?

И да, и нет. При работе с заблокированным устройством по-прежнему невозможно установить доверенную связь с компьютером. Тем не менее, джейлбрейк checkra1n всё-таки можно установить через режим DFU, в котором защита USB просто не включается. После этого вы сможете извлечь частичный образ файловой системы, но не сможете получить доступ к зашифрованным данным или Связке ключей: для этого телефон должен быть разблокирован.

Благодарности

В первую очередь выражаем благодарность разработчику @axi0mX, обнаружившему уязвимость в загрузчике и создавшему эксплойт checkm8. Это действительно прорыв!

Разработчики checkra1n проделали огромную работу. Полный список участников доступен на официальной странице проекта. Спасибо за ваш труд!

Наконец, но не в последнюю очередь выражаем благодарность Mattia Epifani, инструктору SANS FOR 585, соавтору книги Learning iOS Forensics и просто отличному другу. Маттиа регулярно публикует новости на эту тему в своей ленте в twitter.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ