Дізнайтеся, як відновити дані зі старого iPhone після скидання налаштувань. У статті розглядаються три ключові методи вилучення інформації, включаючи використання вразливості checkm8. Детальні інструкції та поради від експерта з цифрової криміналістики допоможуть вам зберегти важливі дані та захистити особисту інформацію.
Дісклеймер: Усі згадки про географічні назви, файли, системні шляхи, номери телефонів або інші технічні дані, що можуть асоціюватися з територією росії, наведено виключно в інформаційних цілях у контексті технічного аналізу пристрою. Ця стаття не має на меті популяризувати, просувати чи визнавати будь-яку державу-агресора, її інфраструктуру чи сервіси. Всі приклади використано для ілюстрації реальних можливостей цифрової криміналістики та не несуть політичного або ідеологічного підтексту. Стаття має виключно інформаційний характер і не є інструкцією чи закликом до вчинення протиправних дій.
У сфері мобільної криміналістики накопичено значний досвід розслідувань інцидентів, пов’язаних із широким спектром пристроїв — від найпростіших моделей до складних випадків, коли доступ ускладнено або зовсім втрачено через пошкодження, блокування чи скидання налаштувань. Особливу увагу заслуговують смартфони Apple, які зазвичай мають вищий рівень захисту даних.
Один із поширених сценаріїв — виявлення старого пристрою, який після активації демонструє повідомлення на кшталт «iPhone відключений. Підключіться до iTunes». У подібних випадках часто вважається, що дані втрачено назавжди. Це пов’язано з тим, що після введення десяти неправильних паролів iPhone видаляє ключі шифрування, що суттєво ускладнює або взагалі унеможливлює відновлення інформації.
Втім, певні моделі iPhone на базі процесорів A5–A11 (від iPhone 4S до iPhone X) містять апаратну вразливість, яка дозволяє отримати доступ до вмісту пристрою до моменту першого розблокування — у так званому режимі BFU (Before First Unlock). Для цього використовується експлойт під назвою checkm8.
Незважаючи на наявність великої кількості публікацій, що описують саму можливість доступу до таких пристроїв, систематизованої інформації про конкретні типи даних, які можливо вилучити, а також про те, де саме ці артефакти зберігаються у файловій системі, бракує. Саме це й стало причиною для створення окремого дослідження, в якому зроблено спробу заповнити цю прогалину.
Отже, ми маємо мобільний телефон iPhone 5s (А1533), доступ до пам’яті якого заблокований після 10 невдалих спроб введення пароля.
За допомогою вразливості checkm8 можна витягти дані зі зв’язування ключів (keychain) та файлової системи в режимі BFU. Ця інформація може бути отримана за допомогою різних інструментів: Elcomsoft iOS Forensic Toolkit, UFED 4PC та ін.
Процес аналізу можна автоматизувати та використовувати як платні інструменти (наприклад, “Мобільний криміналіст Експерт Плюс”, “UFED Physical Analyzer”), так і опенсорсні (наприклад, “iLEAPP“). На жаль, не завжди вони дозволяють опрацьовувати всі типи даних в автоматичному режимі, тому якісь артефакти доводиться переглядати вручну.
Під час вивчення вилучених даних з’ясовується, що досліднику можуть бути доступні технічні відомості про пристрій, а також інформація про авторизовані в системі облікові записи користувачів.
Дані, доступні досліднику, згруповані для зручності в три блоки: артефакти мобільного пристрою, дані користувача та артефакти додатків. Зміст кожного з пунктів буде перелічено докладніше.
Її зазвичай можна переглянути в наступних файлах:
\private\var\installd\Library\MobileInstallation\LastBuildInfo.plist \System\Library\CoreServices\SystemVersion.plist \private\var\mobile\Library\Preferences\com.apple.locationd.plist
У знайденому мобільному пристрої було встановлено iOS 12.4.3, складання 16G130. Ця інформація дуже важлива в контексті аналізу артефактів мобільного телефону, оскільки залежно від версії ОС у вилучених даних може бути різний обсяг відомостей.
Інформація зберігається у цьому файлі:
\private\var\wireless\Library\Preferences\com.apple.commcenter.device_specific_nobackup.plist
ReportedPhoneNumber зберігає інформацію про телефонний номер, зареєстрований у системі.
imei – унікальний ідентифікатор мобільного пристрою.
meid – те саме, що й IMEI, але для пристроїв, що працюють на CDMA-мережах.
ReportedSubscriberIdentity – ICCID сім-карти.
\private\var\preferences\SystemConfiguration\NetworkInterfaces.plist
\private\var\mobile\Library\Preferences\com.apple.icloud.findmydeviced.FMIPAccounts.plist
\private\var\root\Library\Lockdown\data_ark.plist
DeviceName – ім’я пристрою.
com.apple.mobile.data_sync-Contacts → AccountNames — інформація про синхронізацію контактів з iCloud.
\private\var\root\Library\Preferences\com.apple.MobileBackup.plist
RetryAfter — дата та час, коли можна спробувати створити резервну копію.
BackupIsDelayed – дата та час, коли резервне копіювання було відкладено.
DrySpellFollowUpItem – дата та час, коли заплановано наступне резервне копіювання.
FailureCount – кількість невдалих спроб резервного копіювання.
\private\var\mobile\MobileSoftwareUpdate\restore.log
targertOSVersion – версія ОС, що встановлюється.
deviceClass – тип пристрою.
storageCapacity – обсяг пам’яті.
currentOSVersion – поточна версія ОС.
eventTime – час події.
batteryLevel — рівень заряду акумулятора під час встановлення оновлення.
deviceModel – модель пристрою.
result – чи успішно було виконано.
\private\var\preferences\SystemConfiguration\preferences.plist
Model – модель пристрою.
Network → LocalHostName — ім’я, присвоєне пристрою у локальній мережі, яке дозволяє іншим пристроям у цій мережі ідентифікувати його.
System → ComputerName — Ім’я, яке відображається у налаштуваннях мобільного телефону в розділі «Про цей пристрій».
\private\var\wireless\Library\Preferences\com.apple.commcenter.plist
mdn (Mobile Directory Number) – абонентський номер телефону.
ts ( Timestamp) – тимчасова мітка.
label-id — унікальний ідентифікатор, який можна використовувати для відстеження або ідентифікації цього запису в системі.
\private\var\root\Library\Caches\locationd\consolidated.db
\private\var\wireless\Library\Databases\CellularUsage.db
subscriber_id — ICCID пристрою.
subscriber_mdn – номер мобільного телефону.
last_update_time — дата їхнього використання у форматі Unix.
\ private\var\mobile\Library\Preferences\com.apple.sharingd.plist
З цікавого: тут можуть бути дані про кешований обліковий запис користувача в Apple ID:
\private\var\mobile\Library\Preferences\com.apple.Preferences.plist
cachediCloudTitle – ім’я користувача.
cachediCloudUsername — адреса електронної пошти, пов’язана з обліковим записом користувача iCloud.
\private\var\containers\Shared\SystemGroup\GUID\Library\Database\com.apple.MobileBluetooth.ledevices.paired.db
Name — Ім’я пристрою.
Address, ResolvedAddress — MAC-адреса пристрою.
LastSeenTime і LastConnectionTime — мітки часу, які вказують, коли востаннє було знайдено та підключено до пристрою.
У цьому файлі також може зберігатися інформація про номер телефону:
\private\var\mobile\Library\Preferences\com.apple.imservice.SMS.plist
DisplayName — Ім’я облікового запису, що відображається.
LoginAs – вказує, як користувач входить до системи. У цьому випадку це номер телефону.
OnlineAccounts, ActiveAccounts, Status — інформація про ідентифікатор облікового запису.
\private\var\preferences\SystemConfiguration\com.apple.wifi.plist
SSID_STR – ім’я мережі.
lastUpdated — дата та час останнього оновлення інформації.
BSSID — MAC-адреса точки доступу.
\private\var\mobile\Library\Preferences\com.apple.mobilephone.speeddial.plist
Name — ім’я контакту із записника.
ABDatabaseUUID – унікальний ідентифікатор запису.
Value – номер телефону контакту.
\private\var\mobile\Library\Preferences\com.apple.conference.plist
phoneNumberRegistrationSubscriptionLabel – унікальний ідентифікатор.
registration.savedAccountName — збережене ім’я облікового запису.
\private\var\mobile\Library\Preferences\com.apple.cmfsyncagent.plist
_kCMFItemPhoneNumberCountryCodeKey — код країни.
_kCMFItemPhoneNumberUnformattedKey — номер телефону.
\private\var\mobile\Library\Accounts\Accounts3.sqlite
Який використовується в Home Sharing. Home Sharing (домашній обмін) – це функція, доступна на пристроях Apple, яка дозволяє користувачам ділитися своєю медіатекою (музикою, фільмами, телепередачами тощо) з іншими пристроями в одній мережі:
\private\var\mobile\Library\Preferences\com.apple.homesharing.plist
homeSharingAppleID — Apple ID, який використовується для домашнього обміну.
homeSharingGroupID — це ідентифікатор групи для домашнього обміну.
Цей файл може бути використаний для отримання інформації про те, коли такі програми, як iMessage, FaceTime, вперше встановлювали зв’язок з іншими зареєстрованими пристроями Apple ID:
\private\var\mobile\Library\Preferences\com.apple.identityservices.idstatuscache.plist
При цьому це необов’язково підтверджує той факт, що стався діалог між користувачами: при створенні чернеток повідомлень і подальшому видаленні повідомлення відбувається автентифікація користувача Apple ID, і ці дані заповнюються в plist-файлі.
tel – номер телефону.
LookupDate – дата пошуку.
Щоб перевірити, чи не було заражено пристрій шпигунським ПЗ Pegasus, часто аналізують саме цей plist-файл: https://github.com/AmnestyTech/investigations/tree/master/2021-07-18_nso. Однак, варто враховувати, що починаючи з iOS 14.7.0, інформація про автентифікацію користувачів в цей файл не потрапляє.
Варто враховувати, що зв’язування ключів користувача шифрується. Щоб її проаналізувати, потрібно дешифрувати вміст.
\private\var\mobile\Library\Mail\VIPs.plist
EmailAddresses — інформація про поштову скриньку особливо важливого контакту.
Файл \private\var\mobile\Library\Logs\mobileactivationd\mobileactivationd.log містить інформацію про процес активації пристрою, включаючи успішні та невдалі спроби активації, тимчасові мітки.
Каталог \private\var\mobile\Library\Logs\CrashReporter містить файли журналів збоїв додатків (crash reports). Ці файли створюються системою, коли програма несподівано завершує свою роботу або стикається з помилкою.
Файли, розташовані в каталозі \private\var\mobile\Library\Logs\CrashReporter\WiFi\WiFiManager , зберігають інформацію про збої компонентів управління Wi-Fi.
З цих файлів можна отримати відомості про геопозицію Wi-Fi-точки та приблизне місцезнаходження пристрою в зазначений період часу.
У ньому можна знайти записи про процес встановлення, оновлення та видалення програм.
\private\var\mobile\Library\TCC\TCC.db
service – тип дозволу.
client – додаток.
\private\var\root\Library\Caches\locationd\clients.plist
ru.yandex.mobile.search – ідентифікатор пакета програми.
ReceivingLocationInformationTimeStopped — час, коли одержання інформації про місцезнаходження було зупинено.
У цьому каталозі було виявлено підкаталог із GUID програми WhatsApp. У ньому міститься підкаталог \Library\Logs з інформацією про зміну версії програми (з 2.19.51 по 2.19.120), номер телефону користувача, час відправлення та отримання повідомлень (без тексту самих повідомлень).
Підкаталог \Library\Caches\ChatMedia , який містить папки з номерами телефонів абонентів, з якими користувач обмінювався медіафайлами.
У файлі:
\private\var\mobile\Library\Assistant\CustomVocabulary\net.whatsapp.WhatsApp\0000000000000000000000000000000000000000\ContactGroupNameType\sentVocabulary.
Міститься кешована інформація про назви груп у додатку WhatsApp.
У файлі \private\var\mobile\Containers\Data\Application\GUID Telegram\Library\SyncedPreferences\ph.telegra.Telegraph.plist зберігається інформація про обліковий запис (використовується номер телефону) в месенджері Telegram.
У каталозі \private\var\mobile\Containers\Data\Application\GUID Webkit\Library\WebKit\WebsiteData було знайдено інформацію про веб-контент програми Safari: були отримані відомості про ресурси, на які заходив користувач.
У цьому каталозі я виявив файл \Downloads\downloads.28.sqlitedb з інформацією про завантажені файли (тип файлу, посилання на ресурс, з якого здійснювалося завантаження).
У каталозі Purchases зберігається вміст файлів. У нашому випадку це аудіофайл та обкладинка альбому у форматі JPEG.
Навіть якщо iPhone було заблоковано після десяти невдалих спроб введення пароля, у деяких випадках все ще можливо дістатися до важливої інформації. Ці дані можуть мати цінність не лише для власника пристрою, а й у рамках криміналістичних розслідувань. Проте обсяг доступної інформації залежить від низки факторів: яку саме версію iOS встановлено, чи присутні апаратні вразливості, які застосунки встановлені та які саме їх версії.
Це означає, що жоден перелік потенційних артефактів не буде повністю вичерпним — кожен випадок індивідуальний.
Щоб вам було легше зрозуміти, що саме можна витягти з пристрою, який перебуває у стані «iPhone відключений. Підключіться до iTunes», я підготував детальну таблицю з усіма знайденими під час дослідження артефактами.