iOS Pentesting without Jailbreak

Reading time: 5 minutes

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

Hoof idee

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 menu bar.
  5. Nadat 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 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 sy 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 daarop dat jy dalk AppSync Unified tweak van Cydia nodig het om enige invalid signature foute te voorkom.

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

Patch regte & herteken

Om die toepassing met die get-task-allow regte 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 gee en die sertifikaat en voorsieningsprofiel te gebruik.

Wat die sertifikaat en ondertekeningsprofiele betref, bied Apple gratis ontwikkelaar ondertekeningsprofiele vir alle rekeninge deur Xcode aan. 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

Hook

Jy kan jou app maklik koppel met algemene gereedskap soos frida en objection:

bash
objection -g [your app bundle ID] explore

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