iOS Pentesting without Jailbreak

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Hoofidee

Toepassings wat onderteken is met die entitlement get_task_allow laat derdeparty-toepassings toe om 'n funksie genaamd task_for_pid() met die proses-ID van die aanvanklike toepassing as argument te loop om die taakpoort daaroor te verkry (in staat wees om dit te beheer en toegang tot sy geheue te verkry).

Dit is egter nie so eenvoudig soos om net die IPA te trek, dit weer te onderteken met die entitlement, en dit terug na jou toestel te flits nie. Dit is weens FairPlay-beskerming. Wanneer die handtekening van die app verander, word die DRM (Digital Rights Management) sleutel ongeldig gemaak en die app sal nie werk nie.

Met 'n ou jailbreak toestel is dit moontlik om die IPA te installeer, dit te dekripteer met jou gunsteling hulpmiddel (soos Iridium of frida-ios-dump), en dit terug van die toestel af te trek. Alhoewel, indien moontlik, word dit aanbeveel om net die kliënt te vra vir die gedekripteerde IPA.

Verkry gedekripteerde IPA

Kry dit van Apple

  1. Installeer die app om te pentest in die iPhone
  2. Installeer en begin Apple Configurator binne jou macos
  3. Open Terminal op jou Mac, en cd na /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps. Die IPA sal later in hierdie gids verskyn.
  4. Jy behoort jou iOS-toestel te sien. Dubbelklik daarop, en klik dan op Voeg by + → Apps vanaf die boonste menubalk.
  5. Na jy op Voeg by geklik het, sal Configurator die IPA van Apple aflaai, en probeer om dit na jou toestel te druk. As jy my aanbeveling vroeër gevolg het en die IPA reeds geïnstalleer het, sal 'n prompt wat jou vra om die app weer te installeer verskyn.
  6. Die IPA behoort afgelaai te wees binne /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps waar jy dit kan gryp.

Kyk na https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed vir meer gedetailleerde inligting oor hierdie proses.

Dekripteer die app

Om die IPA te dekripteer gaan ons dit installeer. As jy egter 'n ou jailbreak iPhone het, is dit moontlik dat die weergawe nie deur die toepassing ondersteun sal word nie, aangesien toepassings gewoonlik net die nuutste weergawes ondersteun.

So, om dit te installeer, ontsyfer net die IPA:

bash
unzip redacted.ipa -d unzipped

Kontroleer die Info.plist vir die minimum ondersteunde weergawe en as jou toestel ouer is as dit, verander die waarde sodat dit ondersteun word.

Zip die IPA terug:

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

Dan, installeer die IPA byvoorbeeld met:

bash
ideviceinstaller -i no-min-version.ipa -w

Let wel dat jy dalk die AppSync Unified tweak van Cydia nodig het om enige invalid signature foute te voorkom.

Sodra dit geïnstalleer is, kan jy die Iridium tweak van Cydia gebruik om die gedekripteerde IPA te verkry.

Patch entitlements & re-sign

Om die toepassing met die get-task-allow entitlement te herteken, is daar verskeie gereedskap beskikbaar soos app-signer, codesign, en iResign. app-signer het 'n baie gebruikersvriendelike koppelvlak wat dit baie maklik maak om 'n IPA-lêer te herteken deur die IPA aan te dui wat herteken moet word, om dit get-task-allow te plaas en die sertifikaat en voorsieningsprofiel te gebruik.

Wat die sertifikaat en ondertekeningsprofiele betref, bied Apple gratis ontwikkelaar ondertekeningsprofiele vir alle rekeninge deur Xcode. Skep eenvoudig 'n app en konfigureer een. Konfigureer dan die iPhone om die ontwikkelaar apps te vertrou deur na SettingsPrivacy & Security te navigeer, en klik op Developer Mode.

Met die herteken IPA is dit tyd om dit op die toestel te installeer om dit te pentest:

bash
ideviceinstaller -i resigned.ipa -w

Aktiveer Ontwikkelaarsmodus (iOS 16+)

Sedert iOS 16 het Apple Ontwikkelaarsmodus bekendgestel: enige binêre wat get_task_allow dra of met 'n ontwikkelingssertifikaat onderteken is, sal weier om te begin totdat Ontwikkelaarsmodus op die toestel geaktiveer is. Jy sal ook nie Frida/LLDB kan aanheg tensy hierdie vlag aan is nie.

  1. Installeer of druk enige ontwikkelaars-ondertekende IPA na die foon.
  2. Navigeer na Instellings → Privaatheid & Sekuriteit → Ontwikkelaarsmodus en skakel dit aan.
  3. Die toestel sal herbegin; na die invoer van die wagwoord sal jy gevra word om Aan te Skakel Ontwikkelaarsmodus.

Ontwikkelaarsmodus bly aktief totdat jy dit deaktiveer of die foon skoonmaak, so hierdie stap hoef slegs een keer per toestel uitgevoer te word. Apple dokumentasie verduidelik die sekuriteitsimplikasies.

Moderne sideloading opsies

Daar is nou verskeie volwasse maniere om IPAs te sideload en weer te onderteken sonder 'n jailbreak:

GereedskapVereistesSterkteBeperkings
AltStore 2 / SideStoremacOS/Windows/Linux metgesel wat die IPA elke 7 dae met 'n gratis ontwikkelingsprofiel ondertekenOutomatiese herlaai oor Wi-Fi, werk tot iOS 17Vereis 'n rekenaar op dieselfde netwerk, 3-app beperking opgelê deur Apple
TrollStore 1/2Toestel op iOS 14 – 15.4.1 kwesbaar vir die CoreTrust foutPermanente ondertekening (geen 7-dae beperking); geen rekenaar benodig sodra dit geïnstalleer isNie ondersteun op iOS 15.5+ (fout reggestel)

Vir roetine pentests op huidige iOS weergawes is Alt/Side-Store gewoonlik die mees praktiese keuse.

Hooking / dinamiese instrumentasie

Jy kan jou app presies soos op 'n jailbreak toestel hook sodra dit met get_task_allow en Ontwikkelaarsmodus aan is:

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

Onlangs Frida vrylatinge (>=16) hanteer outomaties pointer-authentisering en ander iOS 17 versagtings, so die meeste bestaande skripte werk reg uit die boks.

Geoutomatiseerde dinamiese analise met MobSF (geen jailbreak nie)

MobSF kan 'n dev-onderteken IPA op 'n werklike toestel instrumenteer met dieselfde tegniek (get_task_allow) en bied 'n web UI met lêerstelselblaaier, verkeersvang en Frida-konsol【】. Die vinnigste manier is om MobSF in Docker te laat loop en dan jou iPhone via USB aan te sluit:

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 sal outomaties die binêre ontplooi, 'n Frida-bediener binne die app sandkas aktiveer en 'n interaktiewe verslag genereer.

iOS 17 & Lockdown Mode voorbehoude

  • Lockdown Mode (Instellings → Privaatheid & Sekuriteit) blokkeer die dinamiese skakelaar om ongetekende of eksterne getekende dinamiese biblioteke te laai. Wanneer jy toestelle toets wat hierdie modus mag hê, maak seker dit is deaktiveer of jou Frida/objection sessies sal onmiddellik beëindig word.
  • Pointer Authentication (PAC) word stelselwyd op A12+ toestelle afgedwing. Frida ≥16 hanteer PAC stripping deursigtig — hou net beide frida-server en die Python/CLI gereedskapketting op datum wanneer 'n nuwe groot iOS weergawe vrygestel word.

Verwysings

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks