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

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

  1. Instalirajte aplikaciju koju želite da testirate na iPhone
  2. Instalirajte i pokrenite Apple Configurator 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.
  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.
  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 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:

bash
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:

bash
cd unzipped
zip -r ../no-min-version.ipa *

Zatim instalirajte IPA, na primer, sa:

bash
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 SettingsPrivacy & Security, i kliknite na Developer Mode.

Sa ponovo potpisanim IPA, vreme je da ga instalirate na uređaj kako biste ga pentestirali:

bash
ideviceinstaller -i resigned.ipa -w

Hook

Možete lako povezati svoju aplikaciju koristeći uobičajene alate kao što su frida i objection:

bash
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