iOS Pentesting Checklist
Reading time: 5 minutes
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)
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 PRs 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)
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 PRs au HackTricks et HackTricks Cloud dépÎts github.