iOS App Extensions
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.
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 - inputItemspour 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)
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

