mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without
This commit is contained in:
parent
28fb243f87
commit
ff65adba62
@ -2,17 +2,16 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
## Основна ідея
|
||||
|
||||
Застосунки, підписані з **правом `get_task_allow`**, дозволяють стороннім застосункам виконувати функцію **`task_for_pid()`** з ідентифікатором процесу початкового застосунку як аргумент, щоб отримати порт завдання над ним (мати можливість контролювати його та отримувати доступ до його пам'яті).
|
||||
|
||||
Однак це не так просто, як просто витягти IPA, повторно підписати його з правом і завантажити назад на ваш пристрій. Це пов'язано з захистом FairPlay. Коли підпис змінюється, ключ DRM (управління цифровими правами) **стає недійсним, і застосунок не працюватиме**.
|
||||
|
||||
З старим джейлбрейкнутим пристроєм можна встановити IPA, **розшифрувати його за допомогою вашого улюбленого інструменту** (такого як Iridium або frida-ios-dump) і витягти його з пристрою. Хоча, якщо це можливо, рекомендується просто запитати у клієнта розшифрований IPA.
|
||||
З старим джейлбрейкнутим пристроєм можна встановити IPA, **декодувати його за допомогою вашого улюбленого інструменту** (такого як Iridium або frida-ios-dump) і витягти його з пристрою. Хоча, якщо це можливо, рекомендується просто запитати у клієнта декодований IPA.
|
||||
|
||||
|
||||
## Отримати розшифрований IPA
|
||||
## Отримати декодований IPA
|
||||
|
||||
### Отримати його від Apple
|
||||
|
||||
@ -26,9 +25,9 @@
|
||||
Перевірте [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) для отримання більш детальної інформації про цей процес.
|
||||
|
||||
|
||||
### Розшифрування застосунку
|
||||
### Декодування застосунку
|
||||
|
||||
Щоб розшифрувати IPA, ми збираємося його встановити. Однак, якщо у вас старий джейлбрейкнутій iPhone, можливо, його версія не буде підтримуватися застосунком, оскільки зазвичай застосунки підтримують лише останні версії.
|
||||
Щоб декодувати IPA, ми збираємося його встановити. Однак, якщо у вас старий джейлбрейкнутій iPhone, можливо, його версія не буде підтримуватися застосунком, оскільки зазвичай застосунки підтримують лише останні версії.
|
||||
|
||||
Отже, щоб його встановити, просто розпакуйте IPA:
|
||||
```bash
|
||||
@ -52,25 +51,70 @@ ideviceinstaller -i no-min-version.ipa -w
|
||||
|
||||
### Патчинг прав та повторне підписання
|
||||
|
||||
Щоб повторно підписати додаток з правом `get-task-allow`, доступно кілька інструментів, таких як `app-signer`, `codesign` та `iResign`. `app-signer` має дуже зручний інтерфейс, який дозволяє дуже легко повторно підписати файл IPA, вказуючи IPA для повторного підписання, **додати `get-taks-allow`** та сертифікат і профіль для використання.
|
||||
Щоб повторно підписати додаток з правом `get-task-allow`, доступно кілька інструментів, таких як `app-signer`, `codesign` та `iResign`. `app-signer` має дуже зручний інтерфейс, який дозволяє дуже легко повторно підписати файл IPA, вказуючи IPA для повторного підписання, **додати `get-task-allow`** та сертифікат і профіль провізії для використання.
|
||||
|
||||
Щодо сертифіката та профілів підписання, Apple пропонує **безкоштовні профілі підписання для розробників** для всіх облікових записів через Xcode. Просто створіть додаток і налаштуйте один. Потім налаштуйте **iPhone, щоб довіряти додаткам розробника**, перейшовши в `Налаштування` → `Конфіденційність та безпека`, і натисніть на `Режим розробника`.
|
||||
Щодо сертифіката та профілів підписання, Apple пропонує **безкоштовні профілі підписання для розробників** для всіх облікових записів через Xcode. Просто створіть додаток і налаштуйте один. Потім налаштуйте **iPhone для довіри до додатків розробника**, перейшовши в `Налаштування` → `Конфіденційність та безпека`, і натисніть на `Режим розробника`.
|
||||
|
||||
|
||||
З повторно підписаним IPA настав час встановити його на пристрій для тестування:
|
||||
З повторно підписаним IPA настав час встановити його на пристрій для пентестування:
|
||||
```bash
|
||||
ideviceinstaller -i resigned.ipa -w
|
||||
```
|
||||
### Hook
|
||||
---
|
||||
|
||||
Ви можете легко підключити свій додаток, використовуючи загальні інструменти, такі як frida та objection:
|
||||
### Увімкнення режиму розробника (iOS 16+)
|
||||
|
||||
Оскільки в iOS 16 Apple представила **Режим розробника**: будь-який бінарний файл, який містить `get_task_allow` *або* підписаний сертифікатом розробника, відмовиться запускатися, поки режим розробника не буде увімкнено на пристрої. Ви також не зможете підключити Frida/LLDB, якщо цей прапорець не увімкнено.
|
||||
|
||||
1. Встановіть або надішліть **будь-який** підписаний розробником IPA на телефон.
|
||||
2. Перейдіть до **Налаштування → Конфіденційність і безпека → Режим розробника** і увімкніть його.
|
||||
3. Пристрій перезавантажиться; після введення коду доступу вам буде запропоновано **Увімкнути** режим розробника.
|
||||
|
||||
Режим розробника залишається активним, поки ви його не вимкнете або не скинете телефон, тому цей крок потрібно виконати лише один раз для кожного пристрою. [Документація Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) пояснює наслідки для безпеки.
|
||||
|
||||
### Сучасні варіанти побічної установки
|
||||
|
||||
Тепер існує кілька зрілих способів побічної установки та підтримки підписаних IPA в актуальному стані без джейлбрейка:
|
||||
|
||||
| Інструмент | Вимоги | Переваги | Обмеження |
|
||||
|------------|--------|----------|-----------|
|
||||
| **AltStore 2 / SideStore** | macOS/Windows/Linux компаньйон, який повторно підписує IPA кожні 7 днів з безкоштовним профілем розробника | Автоматичне перезавантаження через Wi-Fi, працює до iOS 17 | Потрібен комп'ютер в тій же мережі, обмеження на 3 додатки, накладене Apple |
|
||||
| **TrollStore 1/2** | Пристрій на iOS 14 – 15.4.1, вразливий до помилки CoreTrust | *Постійне* підписування (без 7-денного обмеження); комп'ютер не потрібен після установки | Не підтримується на iOS 15.5+ (помилка виправлена) |
|
||||
|
||||
Для рутинних пентестів на сучасних версіях iOS Alt/Side-Store зазвичай є найпрактичнішим вибором.
|
||||
|
||||
### Хукінг / динамічна інструментація
|
||||
|
||||
Ви можете підключити свій додаток точно так само, як на джейлбрейкнутому пристрої, як тільки він підписаний з `get_task_allow` **і** режим розробника увімкнено:
|
||||
```bash
|
||||
objection -g [your app bundle ID] explore
|
||||
# Spawn & attach with objection
|
||||
objection -g "com.example.target" explore
|
||||
|
||||
# Or plain Frida
|
||||
frida -U -f com.example.target -l my_script.js --no-pause
|
||||
```
|
||||
Останні випуски Frida (>=16) автоматично обробляють автентифікацію вказівників та інші пом'якшення iOS 17, тому більшість існуючих скриптів працюють з коробки.
|
||||
|
||||
### Автоматизований динамічний аналіз з MobSF (без джейлбрейка)
|
||||
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) може інструментувати IPA з підписом розробника на реальному пристрої, використовуючи ту ж техніку (`get_task_allow`), і надає веб-інтерфейс з браузером файлової системи, захопленням трафіку та консоллю Frida【turn6view0†L2-L3】. Найшвидший спосіб - запустити MobSF у Docker, а потім підключити ваш iPhone через USB:
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||
docker run -p 8000:8000 --privileged \
|
||||
-v /var/run/usbmuxd:/var/run/usbmuxd \
|
||||
opensecurity/mobile-security-framework-mobsf:latest
|
||||
# Browse to http://127.0.0.1:8000 and upload your resigned IPA
|
||||
```
|
||||
MobSF автоматично розгорне бінарний файл, увімкне сервер Frida всередині пісочниці додатку та згенерує інтерактивний звіт.
|
||||
|
||||
### iOS 17 та застереження режиму блокування
|
||||
|
||||
* **Режим блокування** (Налаштування → Конфіденційність та безпека) блокує динамічний зв'язувач від завантаження непідписаних або зовнішньо підписаних динамічних бібліотек. При тестуванні пристроїв, на яких може бути увімкнено цей режим, переконайтеся, що він **вимкнений**, інакше ваші сесії Frida/objection завершаться негайно.
|
||||
* Аутентифікація вказівників (PAC) застосовується на всій системі на пристроях A12+. Frida ≥16 прозоро обробляє видалення PAC — просто підтримуйте актуальними як *frida-server*, так і Python/CLI інструментальний набір, коли виходить нова основна версія iOS.
|
||||
|
||||
## Посилання
|
||||
|
||||
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
|
||||
|
||||
- Документація для розробників Apple – Увімкнення режиму розробника на пристрої: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
|
||||
- Mobile Security Framework (MobSF): <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user