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
9785e77580
commit
3e0e5f32a7
@ -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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user