# Android Task Hijacking
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Encontre vulnerabilidades que são mais importantes para que você possa corrigi-las mais rapidamente. O Intruder rastreia sua superfície de ataque, executa varreduras proativas de ameaças, encontra problemas em toda a sua pilha de tecnologia, desde APIs até aplicativos da web e sistemas em nuvem. [**Experimente gratuitamente**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) hoje. {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %} *** ## Tarefa, Back Stack e Atividades em Primeiro Plano Uma tarefa é uma coleção de atividades com as quais os usuários interagem ao realizar um determinado trabalho. As atividades são organizadas em uma pilha - o _**back stack**_ - na ordem em que cada atividade é aberta. A atividade que está **exibida** na tela é chamada de **atividade em primeiro plano** e sua **tarefa** é chamada de **tarefa em primeiro plano**. Em um determinado momento, apenas **uma tarefa em primeiro plano é visível na tela**. Aqui está um fluxo de atividade simples: * Há apenas a Atividade 1 em primeiro plano. * A Atividade 2 é iniciada, o que empurra a Atividade 1 para o Back Stack. Agora a Atividade 2 está em primeiro plano. * A Atividade 3 é iniciada, o que empurra tanto a Atividade 1 quanto a 2 para o Back Stack. * Agora, quando a Atividade 3 é fechada, a atividade anterior, ou seja, 2, é trazida automaticamente para o primeiro plano. É assim que a navegação de tarefas funciona no Android. ![](<../../.gitbook/assets/image (548).png>) ### Multitarefa no Android - Uma Tarefa Uma tarefa é composta por várias atividades ![](<../../.gitbook/assets/image (549).png>) ### Multitarefa no Android - Várias Tarefas O Android geralmente gerencia várias tarefas ![](<../../.gitbook/assets/image (550).png>) ## Controles de Tarefa ![](<../../.gitbook/assets/image (551).png>) ## Ataque de afinidade de tarefa ### Afinidade de tarefa e Modos de Inicialização **Afinidade de tarefa** é um atributo definido em cada tag `` no arquivo `AndroidManifest.xml`. Ele descreve a qual tarefa uma atividade prefere se juntar.\ Por padrão, cada atividade tem a mesma afinidade que o nome do **pacote**. Vamos usar isso ao criar nosso aplicativo PoC. ```markup ``` **Modos de lançamento** permitem definir como uma nova instância de uma atividade está associada à tarefa atual. O atributo [`launchMode`](https://developer.android.com/guide/topics/manifest/activity-element#lmode) especifica uma instrução sobre como a atividade deve ser lançada em uma tarefa.\ Existem quatro modos de lançamento diferentes: 1. padrão (Padrão) 2. singleTop 3. **singleTask** 4. singleInstance Quando o `launchMode` é definido como `singleTask`, o sistema Android avalia três possibilidades e uma delas é a razão pela qual nosso ataque é possível. Aqui estão elas - * **Se a instância da atividade já existe**:\ O Android retoma a instância existente em vez de criar uma nova. Isso significa que há no máximo uma instância de atividade no sistema sob este modo. * **Se for necessário criar uma nova instância da atividade**:\ O Serviço de Gerenciador de Atividades (AMS) seleciona uma tarefa para hospedar a nova instância criada encontrando uma tarefa "correspondente" em todas as tarefas existentes. **Uma atividade "corresponde" a uma tarefa se elas têm a mesma afinidade de tarefa**. Esta é a razão pela qual podemos **especificar a mesma afinidade de tarefa do aplicativo vulnerável em nosso aplicativo de malware/atacante para que ele seja lançado em sua tarefa em vez de criar sua própria**. * **Sem encontrar uma tarefa "correspondente"**:\ O AMS cria uma nova tarefa e torna a nova instância da atividade a atividade raiz da tarefa recém-criada. ### Ataque A vítima precisa ter o **aplicativo malicioso** **instalado** em seu dispositivo. Em seguida, ele precisa **abri-lo** **antes** de abrir o **aplicativo vulnerável**. Então, quando o **aplicativo vulnerável** é **aberto**, o **aplicativo malicioso** será **aberto** **em seu lugar**. Se este aplicativo malicioso apresentar o **mesmo** **login** que o aplicativo vulnerável, o **usuário não terá meios de saber que está inserindo suas credenciais em um aplicativo malicioso**. **Você pode encontrar um ataque implementado aqui:** [**https://github.com/az0mb13/Task\_Hijacking\_Strandhogg**](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg) ## Prevenindo o sequestro de tarefas Definir **`taskAffinity=""`** pode ser uma solução rápida para esse problema. O modo de lançamento também pode ser definido como **singleInstance** se o aplicativo não quiser que outras atividades se juntem às tarefas a que pertence. Uma função personalizada **onBackPressed()** também pode ser adicionada para substituir o comportamento padrão. ## **Referências** * [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/) * [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
Encontre vulnerabilidades que são mais importantes para que você possa corrigi-las mais rapidamente. O Intruder rastreia sua superfície de ataque, executa varreduras proativas de ameaças, encontra problemas em toda a sua pilha de tecnologia, desde APIs até aplicativos da web e sistemas em nuvem. [**Experimente gratuitamente**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) hoje. {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).