iOS App Extensions
Reading time: 3 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.
Les extensions d'application améliorent la fonctionnalité des applications en leur permettant d'interagir avec d'autres applications ou le systÚme, fournissant des fonctionnalités ou du contenu personnalisés. Ces extensions incluent :
- Clavier personnalisé : Offre un clavier unique dans toutes les applications, remplaçant le clavier iOS par défaut.
- Partager : Permet de partager sur les réseaux sociaux ou avec d'autres directement.
- Aujourd'hui (Widgets) : Fournit du contenu ou effectue des tĂąches rapidement depuis la vue Aujourd'hui du Centre de notifications.
Lorsqu'un utilisateur interagit avec ces extensions, comme le partage de texte depuis une application hÎte, l'extension traite cette entrée dans son contexte, utilisant les informations partagées pour effectuer sa tùche, comme détaillé dans la documentation d'Apple.
Considérations de sécurité
Les principaux aspects de sécurité incluent :
- Les extensions et leurs applications contenant communiquent via la communication inter-processus, et non directement.
- Le widget Aujourd'hui est unique en ce sens qu'il peut demander à son application de s'ouvrir via une méthode spécifique.
- L'accÚs aux données partagées est autorisé dans un conteneur privé, mais l'accÚs direct est restreint.
- Certaines API, y compris HealthKit, sont interdites aux extensions d'application, qui ne peuvent également pas démarrer de tùches de longue durée, accéder à la caméra ou au microphone, sauf pour les extensions iMessage.
Analyse statique
Identification des extensions d'application
Pour trouver des extensions d'application dans le code source, recherchez NSExtensionPointIdentifier
dans Xcode ou inspectez le bundle de l'application pour des fichiers .appex
indiquant des extensions. Sans code source, utilisez grep ou SSH pour localiser ces identifiants dans le bundle de l'application.
Types de données pris en charge
VĂ©rifiez le fichier Info.plist
d'une extension pour NSExtensionActivationRule
afin d'identifier les types de données pris en charge. Cette configuration garantit que seuls les types de données compatibles déclenchent l'extension dans les applications hÎtes.
Partage de données
Le partage de données entre une application et son extension nécessite un conteneur partagé, configuré via "App Groups" et accessible via NSUserDefaults
. Cet espace partagé est nécessaire pour les transferts en arriÚre-plan initiés par les extensions.
Restriction des extensions
Les applications peuvent restreindre certains types d'extensions, en particulier les claviers personnalisés, garantissant que le traitement des données sensibles est conforme aux protocoles de sécurité.
Analyse dynamique
L'analyse dynamique implique :
- Inspection des Ă©lĂ©ments partagĂ©s : AccĂ©dez Ă
NSExtensionContext - inputItems
pour voir les types de données et leurs origines partagées. - Identification des extensions : Découvrez quelles extensions traitent vos données en observant les mécanismes internes, comme
NSXPCConnection
.
Des outils comme frida-trace
peuvent aider à comprendre les processus sous-jacents, en particulier pour ceux qui s'intéressent aux détails techniques de la communication inter-processus.
Références
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
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.