Apprenez et pratiquez le hacking AWS :<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">\
Apprenez et pratiquez le hacking GCP : <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)
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur****Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PR au** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
Une **identité de provisionnement** est un ensemble de clés publiques et privées associées à un compte développeur Apple. Pour **signer des applications**, vous devez payer **99$/an** pour vous inscrire au **Programme de développement Apple** afin d'obtenir votre identité de provisionnement. Sans cela, vous ne pourrez pas exécuter des applications à partir du code source sur un appareil physique. Une autre option est d'utiliser un **appareil jailbreaké**.
À partir de Xcode 7.2, Apple a fourni une option pour créer un **profil de provisionnement de développement iOS gratuit** qui permet d'écrire et de tester votre application sur un véritable iPhone. Allez dans _Xcode_ --> _Préférences_ --> _Comptes_ --> _+_ (Ajouter un nouvel ID Appli avec vos identifiants) --> _Cliquez sur l'Apple ID créé_ --> _Gérer les certificats_ --> _+_ (Développement Apple) --> _Terminé_\
\_\_Ensuite, pour exécuter votre application sur votre iPhone, vous devez d'abord **indiquer à l'iPhone de faire confiance à l'ordinateur.** Ensuite, vous pouvez essayer de **lancer l'application sur le mobile depuis Xcode**, mais une erreur apparaîtra. Allez donc dans _Réglages_ --> _Général_ --> _Profils et gestion des appareils_ --> Sélectionnez le profil non approuvé et cliquez sur "**Faire confiance**".
Notez que **les applications signées par le même certificat de signature peuvent partager des ressources de manière sécurisée, comme les éléments du trousseau**.
Notez qu'un **simulateur n'est pas la même chose qu'un émulateur**. Le simulateur simule simplement le comportement et les fonctions de l'appareil, mais ne les utilise pas réellement.
La première chose que vous devez savoir est que **réaliser un pentest dans un simulateur sera beaucoup plus limité que de le faire sur un appareil jailbreaké**.
L'outil de facto d'Apple pour créer/déboguer/instrumenter des applications iOS est **Xcode**. Il peut être utilisé pour télécharger d'autres composants tels que des **simulateurs** et différentes **versions de SDK** nécessaires pour construire et **tester** votre application.\
Il est fortement recommandé de **télécharger** Xcode depuis le **magasin d'applications officiel**. D'autres versions peuvent contenir des logiciels malveillants.
Dans `/Users/<username>/Library/Developer/CoreSimulator/Devices`, vous pouvez trouver tous les **simulateurs installés**. Si vous souhaitez accéder aux fichiers d'une application créée dans l'un des émulateurs, il peut être difficile de savoir **dans lequel l'application est installée**. Un moyen rapide de **trouver le bon UID** est d'exécuter l'application dans le simulateur et d'exécuter :
Une fois que vous connaissez le UID, les applications installées peuvent être trouvées dans `/Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application`
Cependant, étonnamment, vous ne trouverez pas l'application ici. Vous devez accéder à `/Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/`
Corellium est le seul émulateur iOS disponible publiquement. C'est une solution SaaS d'entreprise avec un modèle de licence par utilisateur et ne propose pas de licence d'essai.
Apple exige strictement que le code exécuté sur l'iPhone soit **signé par un certificat délivré par Apple**. **Le jailbreak** est le processus de contournement actif de telles restrictions et d'autres contrôles de sécurité mis en place par le système d'exploitation. Par conséquent, une fois que l'appareil est jailbreaké, le **contrôle d'intégrité** qui est responsable de la vérification des applications installées est patché, donc il est **contourné**.
Bien que souvent comparés, **le rooting** sur Android et **le jailbreak** sur iOS sont des processus fondamentalement différents. Le rooting des appareils Android peut impliquer **l'installation du binaire `su`** ou **le remplacement du système par un ROM personnalisé rooté**, ce qui ne nécessite pas nécessairement d'exploits si le bootloader est déverrouillé. **Flasher des ROM personnalisées** remplace le système d'exploitation de l'appareil après le déverrouillage du bootloader, nécessitant parfois un exploit.
En revanche, les appareils iOS ne peuvent pas flasher des ROM personnalisées en raison de la restriction du bootloader à ne démarrer que des images signées par Apple. **Le jailbreak iOS** vise à contourner les protections de signature de code d'Apple pour exécuter du code non signé, un processus compliqué par les améliorations de sécurité continues d'Apple.
Le jailbreak iOS devient de plus en plus difficile car Apple corrige rapidement les vulnérabilités. **Le downgrade d'iOS** n'est possible que pendant une période limitée après une version, rendant le jailbreak une affaire sensible au temps. Les appareils utilisés pour les tests de sécurité ne doivent pas être mis à jour à moins que le re-jailbreaking ne soit garanti.
Les mises à jour iOS sont contrôlées par un **mécanisme de défi-réponse** (blobs SHSH), permettant l'installation uniquement pour les réponses signées par Apple. Ce mécanisme, connu sous le nom de "fenêtre de signature", limite la capacité de stocker et d'utiliser ultérieurement des packages de firmware OTA. Le site [IPSW Downloads](https://ipsw.me) est une ressource pour vérifier les fenêtres de signature actuelles.
Les outils de jailbreak varient selon la version d'iOS et l'appareil. Des ressources telles que [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com), et [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) fournissent des informations à jour. Des exemples incluent :
Le jailbreak **supprime le sandboxing imposé par le système d'exploitation**, permettant aux applications d'accéder à l'ensemble du système de fichiers. Cette liberté permet l'installation d'applications non approuvées et l'accès à plus d'API. Cependant, pour les utilisateurs réguliers, le jailbreak **n'est pas recommandé** en raison des risques potentiels pour la sécurité et de l'instabilité de l'appareil.
* Après le jailbreak, des **fichiers et dossiers sont généralement installés**, ceux-ci peuvent être recherchés pour déterminer si l'appareil est jailbreaké.
* Dans un appareil jailbreaké, les applications obtiennent un **accès en lecture/écriture à de nouveaux fichiers** en dehors du sandbox
* Certains **appels d'API****se comporteront différemment**
**Plus d'informations sur la façon de détecter le jailbreak** [**ici**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**.**
* Vous pouvez essayer d'éviter ces détections en utilisant **l'option `ios jailbreak disable` d'objection**
* Vous pourriez également installer l'outil **Liberty Lite** (https://ryleyangus.com/repo/). Une fois le dépôt ajouté, l'application devrait apparaître dans l'onglet 'Recherche'
Apprenez et pratiquez le Hacking AWS :<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">\
Apprenez et pratiquez le Hacking GCP : <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)
<details>
<summary>Support HackTricks</summary>
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur****Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PR au** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.