Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without

This commit is contained in:
Translator 2025-07-11 06:08:01 +00:00
parent 9785e77580
commit 3e0e5f32a7

View File

@ -4,30 +4,32 @@
## Glavna ideja
Aplikacije potpisane sa **entitlement `get_task_allow`** omogućavaju trećim aplikacijama da pokrenu funkciju nazvanu **`task_for_pid()`** sa ID-jem procesa inicijalne aplikacije kao argumentom kako bi dobile port zadatka (da bi mogle da ga kontrolišu i pristupe njegovoj memoriji).
Aplikacije potpisane sa **entitlement `get_task_allow`** omogućavaju trećim aplikacijama da pokrenu funkciju nazvanu **`task_for_pid()`** sa ID-jem procesa inicijalne aplikacije kao argumentom kako bi dobile port zadatka nad njom (da mogu da je kontrolišu i pristupe njenoj memoriji).
Međutim, nije tako lako kao samo preuzeti IPA, ponovo ga potpisati sa entitlement-om i vratiti ga na svoj uređaj. To je zbog FairPlay zaštite. Kada se potpis aplikacije promeni, DRM (Digital Rights Management) ključ je **nevažeći i aplikacija neće raditi**.
Međutim, nije tako lako kao samo preuzimanje IPA, ponovo potpisivanje sa entitlement-om i vraćanje na vaš uređaj. To je zbog FairPlay zaštite. Kada se potpis aplikacije promeni, DRM (Digital Rights Management) ključ je **nevažeći i aplikacija neće raditi**.
Sa starim jailbroken uređajem, moguće je instalirati IPA, **dekriptovati je koristeći vaš omiljeni alat** (kao što su Iridium ili frida-ios-dump), i preuzeti je nazad sa uređaja. Ipak, ako je moguće, preporučuje se da jednostavno pitate klijenta za dekriptovani IPA.
Sa starim jailbroken uređajem, moguće je instalirati IPA, **dekriptovati ga koristeći svoj omiljeni alat** (kao što su Iridium ili frida-ios-dump), i preuzeti ga nazad sa uređaja. Ipak, ako je moguće, preporučuje se da jednostavno pitate klijenta za dekriptovani IPA.
## Dobijanje dekriptovanog IPA
### Preuzmite ga od Apple-a
1. Instalirajte aplikaciju koju želite da testirate na iPhone
2. Instalirajte i pokrenite [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) na svom macOS-u
3. Otvorite `Terminal` na svom Mac-u, i idite u `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. IPA će se kasnije pojaviti u ovoj fascikli.
2. Instalirajte i pokrenite [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) na vašem macOS-u
3. Otvorite `Terminal` na vašem Mac-u, i idite u `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. IPA će se kasnije pojaviti u ovoj fascikli.
4. Trebalo bi da vidite svoj iOS uređaj. Dvaput kliknite na njega, a zatim kliknite na Dodaj + → Aplikacije iz gornjeg menija.
5. Nakon što kliknete na Dodaj, Configurator će preuzeti IPA od Apple-a i pokušati da ga pošalje na vaš uređaj. Ako ste pratili moju preporuku ranije i već instalirali IPA, pojaviće se prozor koji vas pita da ponovo instalirate aplikaciju.
5. Nakon što kliknete na Dodaj, Configurator će preuzeti IPA sa Apple-a i pokušati da je pošalje na vaš uređaj. Ako ste pratili moju preporuku ranije i već instalirali IPA, pojaviće se prozor koji vas pita da ponovo instalirate aplikaciju.
6. IPA bi trebala biti preuzeta unutar `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` odakle je možete uzeti.
Proverite [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) za detaljnije informacije o ovom procesu.
### Dekriptovanje aplikacije
Da bismo dekriptovali IPA, instaliraćemo ga. Međutim, ako imate stariji jailbroken iPhone, potencijalno njegova verzija neće biti podržana od strane aplikacije, jer obično aplikacije podržavaju samo najnovije verzije.
Da bismo dekriptovali IPA, instaliraćemo je. Međutim, ako imate stariji jailbroken iPhone, potencijalno njegova verzija neće biti podržana od strane aplikacije, jer obično aplikacije podržavaju samo najnovije verzije.
Dakle, da biste ga instalirali, jednostavno raspakujte IPA:
Dakle, da biste je instalirali, jednostavno raspakujte IPA:
```bash
unzip redacted.ipa -d unzipped
```
@ -46,28 +48,72 @@ Napomena da vam može biti potreban **AppSync Unified tweak** iz Cydie da biste
Kada se instalira, možete koristiti **Iridium tweak** iz Cydie kako biste dobili dekriptovani IPA.
### Patch entitlements & re-sign
Da biste ponovo potpisali aplikaciju sa `get-task-allow` entitlements, dostupno je nekoliko alata kao što su `app-signer`, `codesign` i `iResign`. `app-signer` ima vrlo korisnički prijateljski interfejs koji omogućava vrlo lako ponovo potpisivanje IPA datoteke tako što se navodi IPA za ponovo potpisivanje, da se **stavi `get-task-allow`** i sertifikat i profil za obezbeđenje koji će se koristiti.
Da biste ponovo potpisali aplikaciju sa `get-task-allow` entitlements, dostupni su različiti alati kao što su `app-signer`, `codesign` i `iResign`. `app-signer` ima vrlo korisnički prijateljski interfejs koji omogućava lako ponovo potpisivanje IPA datoteke tako što se navodi IPA za ponovo potpisivanje, da se **stavi `get-task-allow`** i sertifikat i profil za obezbeđenje koji će se koristiti.
Što se tiče sertifikata i profila za potpisivanje, Apple nudi **besplatne profile za potpisivanje developera** za sve naloge putem Xcode-a. Samo kreirajte aplikaciju i konfigurišite jedan. Zatim, konfigurišite **iPhone da veruje aplikacijama developera** tako što ćete otići na `Settings``Privacy & Security`, i kliknite na `Developer Mode`.
Sa ponovo potpisanim IPA, vreme je da ga instalirate na uređaj kako biste ga pentestirali:
Sa ponovo potpisanim IPA, vreme je da ga instalirate na uređaj kako biste ga pentestovali:
```bash
ideviceinstaller -i resigned.ipa -w
```
### Hook
---
Možete lako povezati svoju aplikaciju koristeći uobičajene alate kao što su frida i objection:
### Omogućite režim programera (iOS 16+)
Od iOS 16, Apple je uveo **Režim programera**: bilo koja binarna datoteka koja nosi `get_task_allow` *ili* je potpisana razvojnim sertifikatom odbiće da se pokrene dok se Režim programera ne omogući na uređaju. Takođe nećete moći da priključite Frida/LLDB osim ako je ova oznaka uključena.
1. Instalirajte ili prebacite **bilo koji** IPA potpisan od strane programera na telefon.
2. Idite na **Podešavanja → Privatnost i bezbednost → Režim programera** i uključite ga.
3. Uređaj će se ponovo pokrenuti; nakon unosa lozinke bićete upitani da **Uključite** Režim programera.
Režim programera ostaje aktivan dok ga ne onemogućite ili ne obrišete telefon, tako da ovaj korak treba izvesti samo jednom po uređaju. [Apple dokumentacija](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) objašnjava bezbednosne implikacije.
### Savremene opcije sideloadinga
Sada postoji nekoliko zrelih načina za sideloading i održavanje ponovo potpisanih IPA-a ažuriranim bez jailbreak-a:
| Alat | Zahtevi | Snage | Ograničenja |
|------|--------------|-----------|-------------|
| **AltStore 2 / SideStore** | macOS/Windows/Linux pratilac koji ponovo potpisuje IPA svake 7 dana sa besplatnim razvojnim profilom | Automatsko učitavanje preko Wi-Fi, radi do iOS 17 | Potreban računar na istoj mreži, ograničenje od 3 aplikacije koje nameće Apple |
| **TrollStore 1/2** | Uređaj na iOS 14 15.4.1 ranjiv na CoreTrust grešku | *Trajno* potpisivanje (bez 7-dnevnog ograničenja); nije potreban računar nakon instalacije | Nije podržano na iOS 15.5+ (greška ispravljena) |
Za rutinske pentestove na trenutnim iOS verzijama, Alt/Side-Store su obično najpraktičniji izbor.
### Hooking / dinamička instrumentacija
Možete hook-ovati vašu aplikaciju tačno kao na jailbreak-ovanom uređaju kada je potpisana sa `get_task_allow` **i** kada je Režim programera uključen:
```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
```
Nedavne Frida verzije (>=16) automatski upravljaju autentifikacijom pokazivača i drugim mitigacijama iOS 17, tako da većina postojećih skripti radi odmah.
### Automatizovana dinamička analiza sa MobSF (bez jailbreak-a)
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) može instrumentirati dev-potpisanu IPA na pravom uređaju koristeći istu tehniku (`get_task_allow`) i pruža web UI sa pretraživačem datotečnog sistema, hvatanjem saobraćaja i Frida konzolom【turn6view0†L2-L3】. Najbrži način je da pokrenete MobSF u Docker-u i zatim povežete svoj iPhone putem USB-a:
```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 će automatski implementirati binarni fajl, omogućiti Frida server unutar sandbox-a aplikacije i generisati interaktivni izveštaj.
### iOS 17 & Lockdown Mode upozorenja
* **Lockdown Mode** (Podešavanja → Privatnost & Bezbednost) blokira dinamički linker da učitava nesigned ili eksterno potpisane dinamičke biblioteke. Kada testirate uređaje koji mogu imati ovaj režim omogućen, uverite se da je **onemogućen** ili će vaši Frida/objection sesije odmah prekinuti.
* Pointer Authentication (PAC) se sprovodi sistemski na A12+ uređajima. Frida ≥16 transparentno obrađuje PAC stripping — samo održavajte *frida-server* i Python/CLI alatke ažuriranim kada nova glavna verzija iOS-a bude objavljena.
## Reference
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
- Apple developer documentation Enabling Developer Mode on a device: <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}}