Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Pour identifier un appareil iOS de manière unique, une séquence de 40 chiffres connue sous le nom de UDID est utilisée. Sur macOS Catalina ou une version plus récente, cela peut être trouvé dans l'**application Finder**, car iTunes n'est plus présent. L'appareil, une fois connecté via USB et sélectionné dans Finder, révèle son UDID parmi d'autres informations lorsque les détails sous son nom sont consultés.
Pour les versions de macOS antérieures à Catalina, iTunes facilite la découverte du UDID. Des instructions détaillées peuvent être trouvées [ici](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
L'accès **SSH** est activé en installant le **package OpenSSH** après le jailbreak, permettant des connexions via `ssh root@<device_ip_address>`. Il est crucial de changer les mots de passe par défaut (`alpine`) pour les utilisateurs `root` et `mobile` afin de sécuriser l'appareil.
**SSH sur USB** devient nécessaire en l'absence de Wi-Fi, en utilisant `iproxy` pour mapper les ports de l'appareil pour les connexions SSH. Cette configuration permet l'accès SSH via USB en exécutant :
**Les applications de shell sur l'appareil**, comme NewTerm 2, facilitent l'interaction directe avec l'appareil, particulièrement utile pour le dépannage. **Des shells SSH inversés** peuvent également être établis pour un accès à distance depuis l'ordinateur hôte.
Pour réinitialiser un mot de passe oublié à la valeur par défaut (`alpine`), il est nécessaire de modifier le fichier `/private/etc/master.passwd`. Cela implique de remplacer le hash existant par le hash pour `alpine` à côté des entrées des utilisateurs `root` et `mobile`.
**Archivage et récupération via SSH et SCP :** Il est simple d'archiver le répertoire Data de l'application en utilisant `tar` puis de le transférer en utilisant `scp`. La commande ci-dessous archive le répertoire Data dans un fichier .tgz, qui est ensuite récupéré depuis l'appareil :
**Utilisation d'iFunbox et d'iExplorer :** Ces outils GUI sont utiles pour gérer des fichiers sur des appareils iOS. Cependant, à partir d'iOS 8.4, Apple a restreint l'accès de ces outils au sandbox de l'application à moins que l'appareil ne soit jailbreaké.
**Shell Interactif avec Objection :** Le lancement d'objection permet d'accéder au répertoire Bundle d'une application. De là, vous pouvez naviguer vers le répertoire Documents de l'application et gérer des fichiers, y compris les télécharger et les téléverser vers et depuis l'appareil iOS.
**Lien de Distribution Over-The-Air (OTA) :** Les applications distribuées pour les tests via OTA peuvent être téléchargées à l'aide de l'outil de téléchargement d'actifs des services ITMS, qui est installé via npm et utilisé pour enregistrer le fichier IPA localement.
**Aperçu du déchiffrement manuel :** Les binaires d'applications iOS sont chiffrés par Apple à l'aide de FairPlay. Pour effectuer une rétro-ingénierie, il faut extraire le binaire déchiffré de la mémoire. Le processus de déchiffrement implique de vérifier le drapeau PIE, d'ajuster les drapeaux de mémoire, d'identifier la section chiffrée, puis de vider et de remplacer cette section par sa forme déchiffrée.
Déterminez les adresses de début et de fin de la section chiffrée à l'aide de `otool` et vidangez la mémoire depuis le dispositif jailbreaké en utilisant gdb.
**Finaliser le déchiffrement :** Modifiez les métadonnées du binaire pour indiquer l'absence de chiffrement en utilisant des outils comme **MachOView**, en définissant `cryptid` à 0.
L'outil [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) est utilisé pour **déchiffrer et extraire automatiquement des applications** des appareils iOS. Au départ, il faut configurer `dump.py` pour se connecter à l'appareil iOS, ce qui peut être fait via localhost sur le port 2222 via **iproxy** ou directement via l'adresse IP de l'appareil et le port.
Cette commande initie le dump de l'application, ce qui entraîne la création d'un fichier `Telegram.ipa` dans le répertoire actuel. Ce processus est adapté aux appareils jailbreakés, car les applications non signées ou faussement signées peuvent être réinstallées à l'aide d'outils comme [**ios-deploy**](https://github.com/ios-control/ios-deploy).
L'outil [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), ainsi que son wrapper [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), permet l'extraction de fichiers IPA à partir des applications installées. Les commandes d'installation pour **flexdecrypt** sur l'appareil incluent le téléchargement et l'installation du package `.deb`. **flexdump** peut être utilisé pour lister et dumper des applications, comme le montrent les commandes ci-dessous :
**r2flutch**, utilisant à la fois radare et frida, sert à la décryption et au dumping d'applications. Plus d'informations peuvent être trouvées sur sa [**page GitHub**](https://github.com/as0ler/r2flutch).
**Sideloading** fait référence à l'installation d'applications en dehors de l'App Store officiel. Ce processus est géré par le **daemon installd** et nécessite que les applications soient signées avec un certificat délivré par Apple. Les appareils jailbreakés peuvent contourner cela grâce à **AppSync**, permettant l'installation de paquets IPA faussement signés.
- **Cydia Impactor** : Un outil pour signer et installer des fichiers IPA sur iOS et des fichiers APK sur Android. Des guides et des solutions aux problèmes peuvent être trouvés sur [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
- **libimobiledevice** : Une bibliothèque pour Linux et macOS pour communiquer avec des appareils iOS. Des commandes d'installation et des exemples d'utilisation pour ideviceinstaller sont fournis pour installer des applications via USB.
- **ios-deploy** : Pour les utilisateurs de macOS, ios-deploy installe des applications iOS depuis la ligne de commande. Décompresser l'IPA et utiliser le drapeau `-m` pour un lancement direct de l'application font partie du processus.
- **Xcode** : Utilisez Xcode pour installer des applications en naviguant vers **Window/Devices and Simulators** et en ajoutant l'application à **Installed Apps**.
Pour installer des applications spécifiques à l'iPad sur des appareils iPhone ou iPod touch, la valeur **UIDeviceFamily** dans le fichier **Info.plist** doit être changée en **1**. Cette modification nécessite cependant de re-signer le fichier IPA en raison des vérifications de validation de signature.
**Note** : Cette méthode peut échouer si l'application exige des capacités exclusives aux modèles d'iPad plus récents tout en utilisant un ancien iPhone ou iPod touch.
Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.