iOS Basic Testing Operations
Summary of iOS Device Identification and Access
Identifying the UDID of an iOS Device
Щоб унікально ідентифікувати iOS пристрій, використовується 40-значна послідовність, відома як UDID. На macOS Catalina або новіших версіях це можна знайти в Finder app, оскільки iTunes більше не присутній. Пристрій, підключений через USB і вибраний у Finder, показує свій UDID серед іншої інформації, коли натискають на деталі під його назвою.
Для версій macOS до Catalina iTunes полегшує виявлення UDID. Докладні інструкції можна знайти тут.
Командні інструменти пропонують альтернативні методи для отримання UDID:
Використовуючи інструмент I/O Registry Explorer
ioreg
:
Використання
ideviceinstaller
для macOS (та Linux):
Використання
system_profiler
:
Використання
instruments
для переліку пристроїв:
Доступ до оболонки пристрою
Доступ SSH активується шляхом встановлення пакету OpenSSH після джейлбрейку, що дозволяє підключення через ssh root@<device_ip_address>
. Важливо змінити стандартні паролі (alpine
) для користувачів root
та mobile
, щоб забезпечити безпеку пристрою.
SSH через USB стає необхідним за відсутності Wi-Fi, використовуючи iproxy
для відображення портів пристрою для SSH-з'єднань. Ця конфігурація дозволяє доступ до SSH через USB, запустивши:
On-device shell applications, такі як NewTerm 2, полегшують безпосередню взаємодію з пристроєм, що особливо корисно для усунення неполадок. Reverse SSH shells також можуть бути встановлені для віддаленого доступу з комп'ютера-хоста.
Скидання забутих паролів
Щоб скинути забутий пароль до значення за замовчуванням (alpine
), необхідно відредагувати файл /private/etc/master.passwd
. Це передбачає заміну існуючого хешу на хеш для alpine
поруч з записами користувачів root
і mobile
.
Техніки передачі даних
Передача файлів даних додатків
Архівування та отримання через SSH та SCP: Легко архівувати каталог даних програми за допомогою tar
, а потім передати його за допомогою scp
. Команда нижче архівує каталог даних у файл .tgz, який потім витягується з пристрою:
Графічні інтерфейсні інструменти
Використання iFunbox та iExplorer: Ці GUI інструменти корисні для управління файлами на пристроях iOS. Однак, починаючи з iOS 8.4, Apple обмежила доступ цих інструментів до пісочниці додатка, якщо пристрій не зламаний.
Використання Objection для управління файлами
Інтерактивна оболонка з Objection: Запуск objection надає доступ до каталогу Bundle додатка. Звідси ви можете перейти до каталогу Documents додатка та керувати файлами, включаючи їх завантаження та вивантаження на та з пристрою iOS.
Отримання та витягування додатків
Придбання IPA файлу
Посилання на розподіл по повітрю (OTA): Додатки, розподілені для тестування через OTA, можна завантажити за допомогою інструменту завантаження активів ITMS, який встановлюється через npm і використовується для збереження IPA файлу локально.
Витягування бінарного файлу програми
З IPA: Розпакуйте IPA, щоб отримати розшифрований бінарний файл програми.
З джейлбрейкнутого пристрою: Встановіть програму та витягніть розшифрований бінарний файл з пам'яті.
Процес розшифрування
Огляд ручного розшифрування: Бінарні файли програм iOS зашифровані Apple за допомогою FairPlay. Щоб провести реверс-інжиніринг, потрібно витягти розшифрований бінарний файл з пам'яті. Процес розшифрування включає перевірку прапора PIE, коригування прапорів пам'яті, ідентифікацію зашифрованої секції, а потім витягування та заміну цієї секції на її розшифровану форму.
Перевірка та модифікація прапора PIE:
Визначення зашифрованої секції та дамп пам'яті:
Визначте початкові та кінцеві адреси зашифрованої секції за допомогою otool
та зробіть дамп пам'яті з джейлбрейкнутого пристрою за допомогою gdb.
Перезаписування зашифрованої секції:
Замініть зашифровану секцію в оригінальному бінарному файлі програми на розшифрований дамп.
Завершення розшифрування: Змініть метадані бінарного файлу, щоб вказати на відсутність шифрування, використовуючи інструменти, такі як MachOView, встановивши cryptid
на 0.
Розшифрування (Автоматично)
frida-ios-dump
Інструмент frida-ios-dump використовується для автоматичного розшифрування та витягування додатків з пристроїв iOS. Спочатку потрібно налаштувати dump.py
для підключення до пристрою iOS, що можна зробити через localhost на порту 2222 за допомогою iproxy або безпосередньо через IP-адресу пристрою та порт.
Додатки, встановлені на пристрої, можна перерахувати за допомогою команди:
Щоб скинути конкретний додаток, наприклад Telegram, використовується наступна команда:
Ця команда ініціює дамп програми, в результаті чого створюється файл Telegram.ipa
у поточному каталозі. Цей процес підходить для джейлбрейкнутіх пристроїв, оскільки незасвідчені або підроблені програми можуть бути повторно встановлені за допомогою інструментів, таких як ios-deploy.
flexdecrypt
Інструмент flexdecrypt, разом зі своїм обгорткою flexdump, дозволяє витягувати IPA файли з встановлених додатків. Команди для встановлення flexdecrypt на пристрій включають завантаження та встановлення пакету .deb
. flexdump можна використовувати для переліку та дампу програм, як показано в командах нижче:
bagbak
bagbak, ще один інструмент на базі Frida, вимагає джейлбрейкнутого пристрою для розшифровки додатків:
r2flutch
r2flutch, використовуючи як radare, так і frida, служить для дешифрування та дампінгу додатків. Більше інформації можна знайти на його GitHub сторінці.
Встановлення додатків
Sideloading відноситься до встановлення додатків поза офіційним App Store. Цей процес обробляється installd daemon і вимагає, щоб додатки були підписані сертифікатом, виданим Apple. Пристрої з джейлбрейком можуть обійти це через AppSync, що дозволяє встановлювати фальшиво підписані IPA пакети.
Інструменти для Sideloading
Cydia Impactor: Інструмент для підписування та встановлення IPA файлів на iOS та APK файлів на Android. Посібники та усунення неполадок можна знайти на yalujailbreak.net.
libimobiledevice: Бібліотека для Linux та macOS для зв'язку з iOS пристроями. Команди для встановлення та приклади використання ideviceinstaller надаються для встановлення додатків через USB.
ipainstaller: Цей інструмент командного рядка дозволяє безпосереднє встановлення додатків на iOS пристроях.
ios-deploy: Для користувачів macOS, ios-deploy встановлює iOS додатки з командного рядка. Розпакування IPA та використання прапора
-m
для безпосереднього запуску додатка є частиною процесу.Xcode: Використовуйте Xcode для встановлення додатків, перейшовши до Window/Devices and Simulators та додавши додаток до Installed Apps.
Дозволити встановлення додатків на пристроях, що не є iPad
Щоб встановити специфічні для iPad додатки на пристрої iPhone або iPod touch, значення UIDeviceFamily у файлі Info.plist потрібно змінити на 1. Однак ця модифікація вимагає повторного підписування IPA файлу через перевірки підпису.
Примітка: Цей метод може не спрацювати, якщо додаток вимагає можливостей, які є ексклюзивними для новіших моделей iPad, при використанні старішого iPhone або iPod touch.
References
Last updated