iOS App Extensions

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Les extensions d'application améliorent les fonctionnalités des applications en leur permettant d'interagir avec d'autres applications ou le système, en fournissant des fonctionnalités ou du contenu personnalisé. Ces extensions comprennent :

  • 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 à partir de la vue Aujourd'hui du Centre de notifications.

Lorsqu'un utilisateur interagit avec ces extensions, tel que partager du texte à partir d'une application hôte, l'extension traite cette entrée dans son contexte, en exploitant les informations partagées pour effectuer sa tâche, comme détaillé dans la documentation d'Apple.

Considérations de sécurité

Les aspects clés de sécurité comprennent :

  • Les extensions et leurs applications conteneurs communiquent via une communication inter-processus, pas 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 pas non plus démarrer des tâches de longue durée, accéder à l'appareil photo 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 d'application pour les fichiers .appex indiquant des extensions. Sans code source, utilisez grep ou SSH pour localiser ces identifiants dans le bundle d'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 les "Groupes d'applications" 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 la manipulation de données sensibles est conforme aux protocoles de sécurité.

Analyse dynamique

L'analyse dynamique implique :

  • Inspection des éléments partagés : Accrochez-vous à NSExtensionContext - inputItems pour voir les types de données partagées et leurs origines.

  • 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 intéressés par les détails techniques de la communication inter-processus.

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Dernière mise à jour