From 3e0e5f32a7ee1968e7fa91cae688350b77e28773 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 11 Jul 2025 06:08:01 +0000 Subject: [PATCH] Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without --- .../ios-pentesting-without-jailbreak.md | 78 +++++++++++++++---- 1 file changed, 62 insertions(+), 16 deletions(-) diff --git a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md index cd69d58fb..2b701ee8a 100644 --- a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md +++ b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md @@ -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: +- Mobile Security Framework (MobSF): {{#include ../../banners/hacktricks-training.md}}