iOS Basic Testing Operations
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Щоб унікально ідентифікувати 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 надає доступ до каталогу Bundle додатка. Звідси ви можете перейти до каталогу Documents додатка та керувати файлами, включаючи їх завантаження та вивантаження на та з пристрою iOS.
Посилання на розподіл по повітрю (OTA): Додатки, розподілені для тестування через OTA, можна завантажити за допомогою інструменту завантаження активів ITMS, який встановлюється через npm і використовується для збереження IPA файлу локально.
З IPA: Розпакуйте IPA, щоб отримати розшифрований бінарний файл програми.
З джейлбрейкнутого пристрою: Встановіть програму та витягніть розшифрований бінарний файл з пам'яті.
Огляд ручного розшифрування: Бінарні файли програм iOS зашифровані Apple за допомогою FairPlay. Щоб провести реверс-інжиніринг, потрібно витягти розшифрований бінарний файл з пам'яті. Процес розшифрування включає перевірку прапора PIE, коригування прапорів пам'яті, ідентифікацію зашифрованої секції, а потім витягування та заміну цієї секції на її розшифровану форму.
Перевірка та модифікація прапора PIE:
Визначення зашифрованої секції та дамп пам'яті:
Визначте початкові та кінцеві адреси зашифрованої секції за допомогою otool
та зробіть дамп пам'яті з джейлбрейкнутого пристрою за допомогою gdb.
Перезаписування зашифрованої секції:
Замініть зашифровану секцію в оригінальному бінарному файлі програми на розшифрований дамп.
Завершення розшифрування: Змініть метадані бінарного файлу, щоб вказати на відсутність шифрування, використовуючи інструменти, такі як MachOView, встановивши cryptid
на 0.
Інструмент frida-ios-dump використовується для автоматичного розшифрування та витягування додатків з пристроїв iOS. Спочатку потрібно налаштувати dump.py
для підключення до пристрою iOS, що можна зробити через localhost на порту 2222 за допомогою iproxy або безпосередньо через IP-адресу пристрою та порт.
Додатки, встановлені на пристрої, можна перерахувати за допомогою команди:
Щоб скинути конкретний додаток, наприклад Telegram, використовується наступна команда:
Ця команда ініціює дамп програми, в результаті чого створюється файл Telegram.ipa
у поточному каталозі. Цей процес підходить для джейлбрейкнутіх пристроїв, оскільки незасвідчені або підроблені програми можуть бути повторно встановлені за допомогою інструментів, таких як ios-deploy.
Інструмент flexdecrypt, разом зі своїм обгорткою flexdump, дозволяє витягувати IPA файли з встановлених додатків. Команди для встановлення flexdecrypt на пристрій включають завантаження та встановлення пакету .deb
. flexdump можна використовувати для переліку та дампу програм, як показано в командах нижче:
bagbak, ще один інструмент на базі Frida, вимагає джейлбрейкнутого пристрою для розшифровки додатків:
r2flutch, використовуючи як radare, так і frida, служить для дешифрування та дампінгу додатків. Більше інформації можна знайти на його GitHub сторінці.
Sideloading відноситься до встановлення додатків поза офіційним App Store. Цей процес обробляється installd daemon і вимагає, щоб додатки були підписані сертифікатом, виданим Apple. Пристрої з джейлбрейком можуть обійти це через AppSync, що дозволяє встановлювати фальшиво підписані IPA пакети.
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 додатки на пристрої iPhone або iPod touch, значення UIDeviceFamily у файлі Info.plist потрібно змінити на 1. Однак ця модифікація вимагає повторного підписування IPA файлу через перевірки підпису.
Примітка: Цей метод може не спрацювати, якщо додаток вимагає можливостей, які є ексклюзивними для новіших моделей iPad, при використанні старішого iPhone або iPod touch.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)