hacktricks/mobile-pentesting/ios-pentesting-checklist.md

130 lines
11 KiB
Markdown
Raw Normal View History

# Liste de vérification pour le pentest iOS
2022-04-28 16:01:33 +00:00
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
2023-01-01 16:19:07 +00:00
\
Utilisez [**Trickest**](https://trickest.io/) pour créer et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
Obtenez un accès aujourd'hui :
2022-08-31 22:35:39 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-08-31 22:35:39 +00:00
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2023-06-03 13:10:46 +00:00
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
2023-06-03 13:10:46 +00:00
### Préparation
2021-05-21 17:13:19 +00:00
* [ ] Lisez [**iOS Basics**](ios-pentesting/ios-basics.md)
2023-06-03 13:10:46 +00:00
* [ ] Préparez votre environnement en lisant [**iOS Testing Environment**](ios-pentesting/ios-testing-environment.md)
* [ ] Lisez toutes les sections de [**iOS Initial Analysis**](ios-pentesting/#initial-analysis) pour apprendre les actions courantes pour pentester une application iOS
2021-05-21 17:13:19 +00:00
### Stockage des données
2021-05-21 17:13:19 +00:00
2023-06-03 13:10:46 +00:00
* [ ] Les [**fichiers Plist**](ios-pentesting/#plist) peuvent être utilisés pour stocker des informations sensibles.
* [ ] [**Core Data**](ios-pentesting/#core-data) (base de données SQLite) peut stocker des informations sensibles.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (base de données SQLite) peut stocker des informations sensibles.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) mauvaise configuration.
* [ ] Les [**bases de données Realm**](ios-pentesting/#realm-databases) peuvent stocker des informations sensibles.
* [ ] Les [**bases de données Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) peuvent stocker des informations sensibles.
2023-06-03 13:10:46 +00:00
* [ ] Les [**cookies binaires**](ios-pentesting/#cookies) peuvent stocker des informations sensibles.
* [ ] Les [**données de cache**](ios-pentesting/#cache) peuvent stocker des informations sensibles.
* [ ] Les [**instantanés automatiques**](ios-pentesting/#snapshots) peuvent enregistrer des informations sensibles visuelles.
2023-06-03 13:10:46 +00:00
* [ ] Le [**Keychain**](ios-pentesting/#keychain) est généralement utilisé pour stocker des informations sensibles qui peuvent être laissées lors de la revente du téléphone.
* [ ] En résumé, vérifiez simplement si l'application enregistre des informations sensibles dans le système de fichiers.
2021-05-21 17:13:19 +00:00
2023-06-03 13:10:46 +00:00
### Claviers
2021-05-21 17:13:19 +00:00
* [ ] L'application permet-elle d'utiliser des [**claviers personnalisés**](ios-pentesting/#custom-keyboards-keyboard-cache) ?
2023-06-03 13:10:46 +00:00
* [ ] Vérifiez si des informations sensibles sont enregistrées dans les [**fichiers de cache des claviers**](ios-pentesting/#custom-keyboards-keyboard-cache)
2021-05-21 17:13:19 +00:00
2023-06-03 13:10:46 +00:00
### **Journaux**
2021-05-21 17:13:19 +00:00
2023-06-03 13:10:46 +00:00
* [ ] Vérifiez si des [**informations sensibles sont enregistrées**](ios-pentesting/#logs)
2021-05-21 17:13:19 +00:00
2023-06-03 13:10:46 +00:00
### Sauvegardes
2021-05-21 17:13:19 +00:00
* [ ] Les [**sauvegardes**](ios-pentesting/#backups) peuvent être utilisées pour accéder aux informations sensibles enregistrées dans le système de fichiers (vérifiez le point initial de cette liste de vérification)
* [ ] De plus, les [**sauvegardes**](ios-pentesting/#backups) peuvent être utilisées pour modifier certaines configurations de l'application, puis **restaurer** la sauvegarde sur le téléphone, et lorsque la **configuration modifiée** est **chargée**, certaines fonctionnalités (de sécurité) peuvent être contournées
### **Mémoire des applications**
* [ ] Vérifiez la présence d'informations sensibles dans la [**mémoire de l'application**](ios-pentesting/#testing-memory-for-sensitive-data)
### **Cryptographie défaillante**
* [ ] Vérifiez si vous pouvez trouver des [**mots de passe utilisés pour la cryptographie**](ios-pentesting/#broken-cryptography)
* [ ] Vérifiez l'utilisation d'**algorithmes obsolètes/faibles** pour envoyer/stocker des données sensibles
* [ ] [**Accrochez et surveillez les fonctions de cryptographie**](ios-pentesting/#broken-cryptography)
### **Authentification locale**
* [ ] Si une [**authentification locale**](ios-pentesting/#local-authentication) est utilisée dans l'application, vous devez vérifier comment l'authentification fonctionne.
* [ ] Si elle utilise le [**framework d'authentification locale**](ios-pentesting/#local-authentication-framework), elle peut être facilement contournée.
* [ ] Si elle utilise une [**fonction qui peut être contournée dynamiquement**](ios-pentesting/#local-authentication-using-keychain), vous pouvez créer un script frida personnalisé.
### Exposition de fonctionnalités sensibles via IPC
* [**Gestionnaires d'URI personnalisés / Deeplinks / Schemes personnalisés**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] Vérifiez si l'application **enregistre un protocole/un schéma** quelconque.
* [ ] Vérifiez si l'application **s'enregistre pour utiliser** un protocole/un schéma quelconque.
* [ ] Vérifiez si l'application **s'attend à recevoir un type d'informations sensibles** du schéma personnalisé qui peut être **intercepté** par une autre application enregistrant le même schéma.
* [ ] Vérifiez si l'application **ne vérifie pas et ne désinfecte pas** les entrées des utilisateurs via le schéma personnalisé et si une **vulnérabilité peut être exploitée**.
* [ ] Vérifiez si l'application **expose une action sensible** qui peut être appelée de n'importe où via le schéma personnalisé.
* [**Liens universels**](ios-pentesting/#universal-links)
* [ ] Vérifiez si l'application **enregistre un protocole/un schéma universel** quelconque.
* [ ] Vérifiez le fichier `apple-app-site-association`.
* [ ] Vérifiez si l'application **ne vérifie pas et ne désinfecte pas** les entrées des utilisateurs via le schéma personnalisé et si une **vulnérabilité peut être exploitée**.
* [ ] Vérifiez si l'application **expose une action sensible** qui peut être appelée de n'importe où via le schéma personnalisé.
* [**Partage UIActivity**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] Vérifiez si l'application peut recevoir des UIActivities et s'il est possible d'exploiter une vulnérabilité avec une activité spécialement conçue.
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] Vérifiez si l'application **copie quelque chose dans le presse-papiers général**.
* [ ] Vérifier si l'application utilise les données du presse-papiers général pour quoi que ce soit
* [ ] Surveiller le presse-papiers pour voir si des données sensibles sont copiées
* [**Extensions d'application**](ios-pentesting/ios-app-extensions.md)
* [ ] L'application utilise-t-elle une extension ?
* [**WebViews**](ios-pentesting/ios-webviews.md)
* [ ] Vérifier quel type de webviews est utilisé
* [ ] Vérifier l'état de **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
* [ ] Vérifier si la webview peut accéder aux fichiers locaux avec le protocole **file://** (**`allowFileAccessFromFileURLs`**, `allowUniversalAccessFromFileURLs`)
* [ ] Vérifier si Javascript peut accéder aux **méthodes natives** (`JSContext`, `postMessage`)
### Communication réseau
* [ ] Effectuer un [**MitM sur la communication**](ios-pentesting/#network-communication) et rechercher des vulnérabilités web.
* [ ] Vérifier si le [**nom d'hôte du certificat**](ios-pentesting/#hostname-check) est vérifié
* [ ] Vérifier/bypasser [**l'épinglage de certificat**](ios-pentesting/#certificate-pinning)
### **Divers**
* [ ] Vérifier les mécanismes de [**patching/mise à jour automatique**](ios-pentesting/#hot-patching-enforced-updateing)
* [ ] Vérifier les [**bibliothèques tierces malveillantes**](ios-pentesting/#third-parties)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
\
Utilisez [**Trickest**](https://trickest.io/) pour créer et automatiser facilement des workflows alimentés par les outils communautaires les plus avancés au monde.\
Obtenez un accès aujourd'hui :
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}