iOS Pentesting without Jailbreak

Reading time: 5 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Idée principale

Les applications signées avec l'entitlement get_task_allow permettent aux applications tierces d'exécuter une fonction appelée task_for_pid() avec l'ID de processus de l'application initiale comme argument afin d'obtenir le port de tùche sur celui-ci (pouvoir le contrÎler et accéder à sa mémoire).

Cependant, ce n'est pas aussi simple que de simplement extraire l'IPA, de le re-signer avec l'entitlement, et de le flasher à nouveau sur votre appareil. Cela est dû à la protection FairPlay. Lorsque la signature de l'application change, la clé DRM (Digital Rights Management) est invalidée et l'application ne fonctionnera pas.

Avec un ancien appareil jailbreaké, il est possible d'installer l'IPA, de le déchiffrer en utilisant votre outil préféré (comme Iridium ou frida-ios-dump), et de le récupérer de l'appareil. Cependant, si possible, il est recommandé de demander simplement au client l'IPA déchiffré.

Obtenir l'IPA déchiffré

Obtenez-le d'Apple

  1. Installez l'application Ă  tester sur l'iPhone
  2. Installez et lancez Apple Configurator sur votre macos
  3. Ouvrez Terminal sur votre Mac, et cd Ă  /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps. L'IPA apparaĂźtra dans ce dossier plus tard.
  4. Vous devriez voir votre appareil iOS. Double-cliquez dessus, puis cliquez sur Ajouter + → Apps dans la barre de menu en haut.
  5. AprÚs avoir cliqué sur Ajouter, Configurator téléchargera l'IPA depuis Apple et tentera de le pousser sur votre appareil. Si vous avez suivi ma recommandation précédente et installé l'IPA, une invite vous demandant de réinstaller l'application apparaßtra.
  6. L'IPA devrait ĂȘtre tĂ©lĂ©chargĂ© dans /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps d'oĂč vous pouvez le rĂ©cupĂ©rer.

Consultez https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed pour des informations plus détaillées sur ce processus.

Déchiffrer l'application

Pour déchiffrer l'IPA, nous allons l'installer. Cependant, si vous avez un ancien iPhone jailbreaké, il est possible que sa version ne soit pas prise en charge par l'application, car généralement les applications ne prennent en charge que les derniÚres versions.

Donc, pour l'installer, dézippez simplement l'IPA :

bash
unzip redacted.ipa -d unzipped

Vérifiez le Info.plist pour la version minimale prise en charge et si votre appareil est plus ancien que cela, changez la valeur pour qu'elle soit prise en charge.

Rezippez l'IPA :

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

Ensuite, installez l'IPA par exemple avec :

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

Notez que vous pourriez avoir besoin de AppSync Unified tweak de Cydia pour éviter toute erreur de signature invalide.

Une fois installé, vous pouvez utiliser Iridium tweak de Cydia afin d'obtenir l'IPA décrypté.

Patch des droits et re-signature

Pour re-signer l'application avec le droit get-task-allow, plusieurs outils sont disponibles comme app-signer, codesign et iResign. app-signer a une interface trĂšs conviviale qui permet de re-signer trĂšs facilement un fichier IPA en indiquant l'IPA Ă  re-signer, de le mettre get-task-allow et le certificat et le profil de provisionnement Ă  utiliser.

Concernant le certificat et les profils de signature, Apple propose des profils de signature de dĂ©veloppeur gratuits pour tous les comptes via Xcode. Il suffit de crĂ©er une application et d'en configurer une. Ensuite, configurez l'iPhone pour faire confiance aux applications de dĂ©veloppeur en naviguant vers Settings → Privacy & Security, et cliquez sur Developer Mode.

Avec l'IPA re-signé, il est temps de l'installer sur l'appareil pour le pentester :

bash
ideviceinstaller -i resigned.ipa -w

Hook

Vous pouvez facilement accrocher votre application en utilisant des outils courants comme frida et objection :

bash
objection -g [your app bundle ID] explore

Références

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks