iOS Basic Testing Operations

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Опис ідентифікації та доступу до пристрою iOS

Визначення UDID пристрою iOS

Для унікальної ідентифікації пристрою iOS використовується 40-значна послідовність, відома як UDID. На macOS Catalina або новіших версіях це можна знайти в додатку Finder, оскільки iTunes більше не присутній. Пристрій, підключений через USB та вибраний в Finder, показує свій UDID серед іншої інформації, коли деталі під його ім'ям натиснуті.

Для версій macOS до Catalina iTunes допомагає виявити UDID. Детальні інструкції можна знайти тут.

Інструменти командного рядка пропонують альтернативні методи отримання UDID:

  • Використання інструменту I/O Registry Explorer ioreg:

$ ioreg -p IOUSB -l | grep "USB Serial"
  • Використання ideviceinstaller для macOS (та Linux):

$ brew install ideviceinstaller
$ idevice_id -l
  • Використання system_profiler:

$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
  • Використання інструментів для переліку пристроїв:

$ instruments -s devices

Доступ до оболонки пристрою

SSH доступ увімкнено шляхом встановлення пакету OpenSSH після в'язниці, що дозволяє підключення через ssh root@<device_ip_address>. Важливо змінити паролі за замовчуванням (alpine) для користувачів root та mobile, щоб захистити пристрій.

SSH через USB стає необхідним у відсутності Wi-Fi, використовуючи iproxy для відображення портів пристрою для SSH підключень. Ця настройка дозволяє доступ до SSH через USB шляхом виконання:

$ iproxy 2222 22
$ ssh -p 2222 root@localhost

Програми оболонки на пристрої, такі як NewTerm 2, сприяють прямому взаємодії з пристроєм, особливо корисні для усунення неполадок. Обернені оболонки SSH також можуть бути встановлені для віддаленого доступу з комп'ютера хоста.

Скидання забутого пароля

Для скидання забутого пароля на типовий (alpine), необхідно відредагувати файл /private/etc/master.passwd. Це включає заміну існуючого хешу хешем для alpine поруч із записами користувачів root та mobile.

Техніки передачі даних

Передача файлів даних додатків

Архівування та відновлення через SSH та SCP: Просто архівувати каталог Даних додатка за допомогою tar, а потім передати його за допомогою scp. Команда нижче архівує каталог Даних у файл .tgz, який потім витягується з пристрою:

tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
exit
scp -P 2222 root@localhost:/tmp/data.tgz .

Графічні інструменти користувацького інтерфейсу

Використання iFunbox та iExplorer: Ці GUI-інструменти корисні для керування файлами на пристроях iOS. Однак починаючи з iOS 8.4, Apple обмежила доступ цих інструментів до пісочниці додатків, якщо пристрій не має виправлення.

Використання Objection для керування файлами

Інтерактивна оболонка з Objection: Запуск Objection надає доступ до каталогу Bundle додатка. Звідси ви можете перейти до каталогу Documents додатка та керувати файлами, включаючи їх завантаження та вивантаження на пристрій iOS.

objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>

Отримання та Розпакування Додатків

Отримання Файлу IPA

Посилання на Розповсюдження через Інтернет (OTA): Додатки, що розповсюджуються для тестування через OTA, можна завантажити за допомогою інструменту завантаження активів служб ITMS, який встановлюється за допомогою npm та використовується для збереження файлу IPA локально.

npm install -g itms-services
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa

Видобуток бінарного файлу додатка

  1. З IPA-файлу: Розпакуйте IPA-файл, щоб отримати доступ до розшифрованого бінарного файлу додатка.

  2. З пристрою з вибухнутим джейлбрейком: Встановіть додаток та видобудьте розшифрований бінарний файл з пам'яті.

Процес розшифрування

Огляд Ручного Розшифрування: Бінарні файли додатків iOS шифруються Apple за допомогою FairPlay. Для реверс-інженерії необхідно витягнути розшифрований бінарний файл з пам'яті. Процес розшифрування включає перевірку прапорця PIE, налаштування прапорців пам'яті, ідентифікацію зашифрованої секції, а потім витягнення та заміну цієї секції на її розшифровану форму.

Перевірка та Зміна Прапорця PIE:

otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World

Визначення зашифрованої секції та вивантаження пам'яті:

Визначте початкову та кінцеву адреси зашифрованої секції за допомогою otool та вивантажте пам'ять з в'язаного пристрою за допомогою gdb.

otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000

Перезапис зашифрованої секції:

Замініть зашифровану секцію в початковому бінарному файлі додатка на розшифрований дамп.

dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App

Завершення розшифрування: Змініть метадані бінарного файлу, щоб вказати відсутність шифрування за допомогою інструментів, таких як MachOView, встановивши cryptid на 0.

Розшифрування (Автоматично)

frida-ios-dump

Інструмент frida-ios-dump використовується для автоматичного розшифрування та вилучення додатків з пристроїв iOS. Спочатку необхідно налаштувати dump.py для підключення до пристрою iOS, що можна зробити через localhost на порту 2222 за допомогою iproxy або безпосередньо через IP-адресу та порт пристрою.

Додатки, встановлені на пристрої, можна переглянути за допомогою команди:

$ python dump.py -l

Для вилучення конкретного додатку, наприклад, Telegram, використовується наступна команда:

$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph

Ця команда ініціює витягування додатка, що призводить до створення файлу Telegram.ipa в поточному каталозі. Цей процес підходить для пристроїв з виправданим доступом, оскільки непідписані або фальшиво підписані додатки можна перевстановити за допомогою інструментів, таких як ios-deploy.

flexdecrypt

Інструмент flexdecrypt, разом із обгорткою flexdump, дозволяє видобувати файли IPA з встановлених додатків. Команди для встановлення flexdecrypt на пристрої включають завантаження та встановлення пакунка .deb. flexdump може бути використаний для переліку та витягування додатків, як показано у наведених нижче командах:

apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
flexdump list
flexdump dump Twitter.app

bagbak

bagbak, інший інструмент на основі Frida, потребує джейлбрейку пристрою для розшифрування додатків:

bagbak --raw Chrome

r2flutch

r2flutch, використовуючи як radare, так і frida, призначений для розшифрування та вивантаження додатків. Додаткову інформацію можна знайти на його сторінці GitHub.

Встановлення додатків

Sideloading відноситься до встановлення додатків поза офіційним App Store. Цей процес обробляється демоном installd і вимагає, щоб додатки були підписані сертифікатом, виданим 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, на пристроях iPhone або iPod touch, значення UIDeviceFamily в файлі Info.plist потрібно змінити на 1. Однак для цієї модифікації потрібно повторно підписати файл IPA через перевірку підпису.

Примітка: Цей метод може не працювати, якщо додаток вимагає можливостей, що є виключно для новіших моделей iPad при використанні старіших iPhone або iPod touch.

References

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated