iOS Pentesting Checklist
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
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Préparation
- Lire iOS Basics
- Préparer votre environnement en lisant iOS Testing Environment
- Lire toutes les sections de iOS Initial Analysis pour apprendre les actions courantes à effectuer lors du pentesting d’une application iOS
Stockage de données
- Plist files peuvent être utilisés pour stocker des informations sensibles.
- Core Data (base de données SQLite) peut stocker des informations sensibles.
- YapDatabases (base de données SQLite) peut stocker des informations sensibles.
- Firebase mauvaise configuration.
- Realm databases peuvent stocker des informations sensibles.
- Couchbase Lite databases peuvent stocker des informations sensibles.
- Binary cookies peuvent stocker des informations sensibles
- Cache data peut stocker des informations sensibles
- Automatic snapshots peuvent sauvegarder des informations visuelles sensibles
- 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é, juste vérifiez les informations sensibles sauvegardées par l’application dans le système de fichiers
Claviers
- L’application permet-elle d’utiliser des claviers personnalisés?
- Vérifiez si des informations sensibles sont sauvegardées dans les fichiers de cache des claviers
Logs
- Vérifiez si des informations sensibles sont enregistrées
Sauvegardes
- Backups peuvent être utilisés pour accéder aux informations sensibles sauvegardées dans le système de fichiers (vérifiez le point initial de cette liste de contrôle)
- De plus, backups peuvent être utilisés pour modifier certaines configurations de l’application, puis restaurer la sauvegarde sur le téléphone, et comme la configuration modifiée est chargée, certaines (sécurités) fonctionnalités peuvent être contournées
Mémoire des applications
- Vérifiez les informations sensibles à l’intérieur de la mémoire de l’application
Cryptographie cassée
- Vérifiez si vous pouvez trouver des mots de passe utilisés pour la cryptographie
- Vérifiez l’utilisation d’algorithmes obsolètes/faibles pour envoyer/stocker des données sensibles
- Hook et surveiller les fonctions de cryptographie
Authentification locale
- Si une authentification locale est utilisée dans l’application, vous devez vérifier comment l’authentification fonctionne.
- Si elle utilise le Local Authentication Framework, elle pourrait être facilement contournée
- Si elle utilise une fonction qui peut être contournée dynamiquement, vous pourriez créer un script frida personnalisé
Exposition de fonctionnalités sensibles via IPC
- Custom URI Handlers / Deeplinks / Custom Schemes
- Vérifiez si l’application enregistre un protocole/schéma
- Vérifiez si l’application s’enregistre pour utiliser un protocole/schéma
- 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 nettoie pas les entrées des utilisateurs via le schéma personnalisé et qu’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é
- Universal Links
- Vérifiez si l’application enregistre un protocole/schéma universel
- Vérifiez le fichier
apple-app-site-association - Vérifiez si l’application ne vérifie pas et ne nettoie pas les entrées des utilisateurs via le schéma personnalisé et qu’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é
- UIActivity Sharing
- 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
- Vérifiez si l’application copie quoi que ce soit dans le presse-papiers général
- Vérifiez si l’application utilise les données du presse-papiers général pour quoi que ce soit
- Surveillez le presse-papiers pour voir si des données sensibles sont copiées
- App Extensions
- L’application utilise-t-elle une extension?
- WebViews
- Vérifiez quel type de webviews est utilisé
- Vérifiez l’état de
javaScriptEnabled,JavaScriptCanOpenWindowsAutomatically,hasOnlySecureContent - Vérifiez si le webview peut accéder aux fichiers locaux avec le protocole file:// (
allowFileAccessFromFileURLs,allowUniversalAccessFromFileURLs) - Vérifiez si Javascript peut accéder aux méthodes Native (
JSContext,postMessage)
Communication réseau
- Effectuez un MitM sur la communication et recherchez des vulnérabilités web.
- Vérifiez si le nom d’hôte du certificat est vérifié
- Vérifiez/Contournez Certificate Pinning
Divers
- Vérifiez les mécanismes de patching/mise à jour automatique
- Vérifiez les bibliothèques tierces malveillantes
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
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks

