iOS Pentesting without Jailbreak
Reading time: 5 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
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).
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.
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
- Instalirajte aplikaciju koju želite da testirate na iPhone
- Instalirajte i pokrenite Apple Configurator na svom macOS-u
- 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. - Trebalo bi da vidite svoj iOS uređaj. Dvaput kliknite na njega, a zatim kliknite na Dodaj + → Aplikacije iz gornjeg menija.
- 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.
- 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 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.
Dakle, da biste ga instalirali, jednostavno raspakujte IPA:
unzip redacted.ipa -d unzipped
Proverite Info.plist
za minimalnu podržanu verziju i ako je vaš uređaj stariji od toga, promenite vrednost tako da bude podržana.
Ponovo zipujte IPA:
cd unzipped
zip -r ../no-min-version.ipa *
Zatim instalirajte IPA, na primer, sa:
ideviceinstaller -i no-min-version.ipa -w
Napomena da vam može biti potreban AppSync Unified tweak iz Cydie da biste sprečili bilo kakve invalid signature
greške.
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.
Š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:
ideviceinstaller -i resigned.ipa -w
Hook
Možete lako povezati svoju aplikaciju koristeći uobičajene alate kao što su frida i objection:
objection -g [your app bundle ID] explore
Reference
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.