iOS Pentesting without Jailbreak
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна ідея
Застосунки, підписані з правом get_task_allow
, дозволяють стороннім застосункам виконувати функцію task_for_pid()
з ідентифікатором процесу початкового застосунку як аргумент, щоб отримати порт завдання над ним (мати можливість контролювати його та отримувати доступ до його пам'яті).
Однак це не так просто, як просто витягти IPA, повторно підписати його з правом і завантажити назад на ваш пристрій. Це пов'язано з захистом FairPlay. Коли підпис змінюється, ключ DRM (управління цифровими правами) стає недійсним, і застосунок не працюватиме.
З старим джейлбрейкнутим пристроєм можна встановити IPA, розшифрувати його за допомогою вашого улюбленого інструменту (такого як Iridium або frida-ios-dump) і витягти його з пристрою. Хоча, якщо це можливо, рекомендується просто запитати у клієнта розшифрований IPA.
Отримати розшифрований IPA
Отримати його від Apple
- Встановіть застосунок для тестування на iPhone
- Встановіть і запустіть Apple Configurator на вашому macos
- Відкрийте
Terminal
на вашому Mac і перейдіть до/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
. IPA з'явиться в цій папці пізніше. - Ви повинні побачити свій iOS пристрій. Двічі клацніть на ньому, а потім натисніть Додати + → Застосунки у верхньому меню.
- Після натискання Додати, Configurator завантажить IPA з Apple і спробує надіслати його на ваш пристрій. Якщо ви раніше виконали мою рекомендацію і вже встановили IPA, з'явиться запит на повторну установку застосунку.
- IPA має бути завантажено в
/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
, звідки ви можете його забрати.
Перевірте https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed для отримання більш детальної інформації про цей процес.
Розшифрування застосунку
Щоб розшифрувати IPA, ми збираємося його встановити. Однак, якщо у вас старий джейлбрейкнутій iPhone, можливо, його версія не буде підтримуватися застосунком, оскільки зазвичай застосунки підтримують лише останні версії.
Отже, щоб його встановити, просто розпакуйте IPA:
unzip redacted.ipa -d unzipped
Перевірте Info.plist
на наявність мінімально підтримуваної версії, і якщо ваш пристрій старіший за цю версію, змініть значення, щоб воно було підтримуваним.
Знову запакуйте IPA:
cd unzipped
zip -r ../no-min-version.ipa *
Потім встановіть IPA, наприклад, за допомогою:
ideviceinstaller -i no-min-version.ipa -w
Зверніть увагу, що вам може знадобитися AppSync Unified tweak з Cydia, щоб запобігти будь-яким помилкам invalid signature
.
Після встановлення ви можете використовувати Iridium tweak з Cydia, щоб отримати розшифрований IPA.
Патчинг прав та повторне підписання
Щоб повторно підписати додаток з правом get-task-allow
, доступно кілька інструментів, таких як app-signer
, codesign
та iResign
. app-signer
має дуже зручний інтерфейс, який дозволяє дуже легко повторно підписати файл IPA, вказуючи IPA для повторного підписання, додати get-taks-allow
та сертифікат і профіль для використання.
Щодо сертифіката та профілів підписання, Apple пропонує безкоштовні профілі підписання для розробників для всіх облікових записів через Xcode. Просто створіть додаток і налаштуйте один. Потім налаштуйте iPhone, щоб довіряти додаткам розробника, перейшовши в Налаштування
→ Конфіденційність та безпека
, і натисніть на Режим розробника
.
З повторно підписаним IPA настав час встановити його на пристрій для тестування:
ideviceinstaller -i resigned.ipa -w
Hook
Ви можете легко підключити свій додаток, використовуючи загальні інструменти, такі як frida та objection:
objection -g [your app bundle ID] explore
Посилання
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.