Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without

This commit is contained in:
Translator 2025-07-11 06:07:55 +00:00
parent f8ad379043
commit 3886d997ee

View File

@ -8,7 +8,8 @@ Les applications signées avec l'**entitlement `get_task_allow`** permettent aux
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é.
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. Bien que, si possible, il est recommandé de demander simplement au client l'IPA déchiffré.
## Obtenir l'IPA déchiffré
@ -18,11 +19,12 @@ Avec un ancien appareil jailbreaké, il est possible d'installer l'IPA, **de le
2. Installez et lancez [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) 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.
5. Après avoir cliqué sur Ajouter, Configurator téléchargera l'IPA depuis Apple et tentera de le pousser vers 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](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.
@ -42,7 +44,7 @@ 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`.
Notez que vous pourriez avoir besoin de **AppSync Unified tweak** de Cydia pour éviter toute erreur `invalid signature`.
Une fois installé, vous pouvez utiliser **Iridium tweak** de Cydia afin d'obtenir l'IPA décrypté.
@ -51,23 +53,68 @@ Une fois installé, vous pouvez utiliser **Iridium tweak** de Cydia afin d'obten
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`.
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 de configurer un. 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 :
### Activer le mode développeur (iOS 16+)
Depuis iOS 16, Apple a introduit le **mode développeur** : tout binaire qui porte `get_task_allow` *ou* est signé avec un certificat de développement refusera de se lancer tant que le mode développeur n'est pas activé sur l'appareil. Vous ne pourrez également pas attacher Frida/LLDB à moins que ce drapeau ne soit activé.
1. Installez ou poussez **n'importe quel** IPA signé par un développeur sur le téléphone.
2. Accédez à **Réglages → Confidentialité & Sécurité → Mode Développeur** et activez-le.
3. L'appareil redémarrera ; après avoir saisi le code d'accès, vous serez invité à **activer** le mode développeur.
Le mode développeur reste actif jusqu'à ce que vous le désactiviez ou que vous réinitialisiez le téléphone, donc cette étape n'a besoin d'être effectuée qu'une seule fois par appareil. La [documentation d'Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) explique les implications en matière de sécurité.
### Options modernes de sideloading
Il existe maintenant plusieurs façons matures de sideloader et de maintenir les IPAs re-signés à jour sans jailbreak :
| Outil | Exigences | Forces | Limitations |
|-------|-----------|--------|-------------|
| **AltStore 2 / SideStore** | Compagnon macOS/Windows/Linux qui re-signe l'IPA tous les 7 jours avec un profil de développement gratuit | Rechargement automatique via Wi-Fi, fonctionne jusqu'à iOS 17 | Besoin d'un ordinateur sur le même réseau, limite de 3 applications imposée par Apple |
| **TrollStore 1/2** | Appareil sous iOS 14 15.4.1 vulnérable au bug CoreTrust | Signature *permanente* (pas de limite de 7 jours) ; aucun ordinateur requis une fois installé | Non pris en charge sur iOS 15.5+ (bug corrigé) |
Pour des pentests de routine sur les versions iOS actuelles, Alt/Side-Store sont généralement le choix le plus pratique.
### Hooking / instrumentation dynamique
Vous pouvez hook votre application exactement comme sur un appareil jailbreaké une fois qu'elle est signée avec `get_task_allow` **et** que le mode développeur est activé :
```bash
objection -g [your app bundle ID] explore
# 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
```
Les récentes versions de Frida (>=16) gèrent automatiquement l'authentification des pointeurs et d'autres atténuations d'iOS 17, donc la plupart des scripts existants fonctionnent immédiatement.
### Analyse dynamique automatisée avec MobSF (sans jailbreak)
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) peut instrumenter un IPA signé par un développeur sur un appareil réel en utilisant la même technique (`get_task_allow`) et fournit une interface web avec un navigateur de système de fichiers, capture de trafic et console Frida【turn6view0†L2-L3】. Le moyen le plus rapide est de faire fonctionner MobSF dans Docker puis de connecter votre iPhone via USB :
```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 déploiera automatiquement le binaire, activera un serveur Frida à l'intérieur du sandbox de l'application et générera un rapport interactif.
### iOS 17 & avertissements sur le mode de verrouillage
* **Mode de verrouillage** (Réglages → Confidentialité & Sécurité) bloque le chargeur dynamique de chargement des bibliothèques dynamiques non signées ou signées de manière externe. Lors de tests sur des appareils qui pourraient avoir ce mode activé, assurez-vous qu'il est **désactivé** ou vos sessions Frida/objection se termineront immédiatement.
* L'authentification par pointeur (PAC) est appliquée à l'échelle du système sur les appareils A12+. Frida ≥16 gère de manière transparente le stripping PAC — il suffit de garder à jour à la fois *frida-server* et la chaîne d'outils Python/CLI lorsque qu'une nouvelle version majeure d'iOS est publiée.
## Références
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
- Documentation des développeurs Apple Activer le mode développeur sur un appareil : <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
- Mobile Security Framework (MobSF) : <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
{{#include ../../banners/hacktricks-training.md}}