9.3 KiB
Android Task Hijacking
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
Trouvez les vulnérabilités les plus importantes afin de pouvoir les corriger plus rapidement. Intruder suit votre surface d'attaque, effectue des analyses de menace proactives, trouve des problèmes dans l'ensemble de votre pile technologique, des API aux applications web et aux systèmes cloud. Essayez-le gratuitement dès aujourd'hui.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
Tâche, pile arrière et activités en premier plan
Une tâche est une collection d'activités avec lesquelles les utilisateurs interagissent lorsqu'ils effectuent une certaine tâche. Les activités sont organisées dans une pile - la pile arrière - dans l'ordre d'ouverture de chaque activité.
L'activité qui est affichée à l'écran est appelée une activité en premier plan et sa tâche est appelée la tâche en premier plan. À un moment donné, seule une tâche en premier plan est visible à l'écran.
Voici un exemple simple de flux d'activité :
- Il n'y a que l'activité 1 en premier plan.
- L'activité 2 est lancée, ce qui pousse l'activité 1 dans la pile arrière. Maintenant, l'activité 2 est en premier plan.
- L'activité 3 est lancée, ce qui pousse à la fois l'activité 1 et 2 dans la pile arrière.
- Maintenant, lorsque l'activité 3 est fermée, l'activité précédente, c'est-à-dire 2, est automatiquement ramenée en premier plan. C'est ainsi que fonctionne la navigation des tâches sur Android.
Multitâche Android - Une tâche
Une tâche est composée de plusieurs activités.
Multitâche Android - Plusieurs tâches
Android gère généralement plusieurs tâches.
Contrôle des tâches
Attaque par affinité de tâche
Affinité de tâche et modes de lancement
L'affinité de tâche est un attribut défini dans chaque balise <activity>
du fichier AndroidManifest.xml
. Il décrit à quelle tâche une activité préfère se joindre.
Par défaut, chaque activité a la même affinité que le nom du package.
Nous utiliserons cela lors de la création de notre application PoC.
<activity android:taskAffinity=""/>
Les modes de lancement vous permettent de définir comment une nouvelle instance d'une activité est associée à la tâche en cours. L'attribut launchMode
spécifie une instruction sur la façon dont l'activité doit être lancée dans une tâche.
Il existe quatre modes de lancement différents :
- standard (par défaut)
- singleTop
- singleTask
- singleInstance
Lorsque le launchMode
est défini sur singleTask
, le système Android évalue trois possibilités et l'une d'entre elles est la raison pour laquelle notre attaque est possible. Les voici :
- Si l'instance de l'activité existe déjà :
Android reprend l'instance existante au lieu d'en créer une nouvelle. Cela signifie qu'il y a au plus une instance d'activité dans le système sous ce mode. - Si la création d'une nouvelle instance d'activité est nécessaire :
Le service de gestion des activités (AMS) sélectionne une tâche pour héberger la nouvelle instance créée en recherchant une tâche "correspondante" parmi toutes les tâches existantes. Une activité "correspond" à une tâche si elles ont la même affinité de tâche. C'est la raison pour laquelle nous pouvons spécifier la même affinité de tâche que l'application vulnérable dans notre application malveillante/pirate afin qu'elle se lance dans leur tâche au lieu de créer la sienne. - Sans trouver de tâche "correspondante" :
Le AMS crée une nouvelle tâche et fait de la nouvelle instance d'activité l'activité racine de la tâche nouvellement créée.
Attaque
La victime doit avoir l'application malveillante installée sur son appareil. Ensuite, elle doit l'ouvrir avant d'ouvrir l'application vulnérable. Ensuite, lorsque l'application vulnérable est ouverte, l'application malveillante sera ouverte à la place. Si cette application malveillante présente le même écran de connexion que l'application vulnérable, l'utilisateur n'aura aucun moyen de savoir qu'il saisit ses identifiants dans une application malveillante.
Vous pouvez trouver une attaque implémentée ici : https://github.com/az0mb13/Task_Hijacking_Strandhogg
Prévention du détournement de tâche
Définir taskAffinity=""
peut être une solution rapide à ce problème. Le mode de lancement peut également être défini sur singleInstance si l'application ne souhaite pas que d'autres activités rejoignent les tâches qui lui appartiennent. Une fonction onBackPressed() personnalisée peut également être ajoutée pour remplacer le comportement par défaut.
Références
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
Trouvez les vulnérabilités les plus importantes afin de pouvoir les corriger plus rapidement. Intruder suit votre surface d'attaque, effectue des analyses de menaces proactives, trouve des problèmes dans l'ensemble de votre pile technologique, des API aux applications web et aux systèmes cloud. Essayez-le gratuitement dès aujourd'hui.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous souhaitez voir votre entreprise annoncée dans HackTricks ? ou souhaitez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFT
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.