5.6 KiB
Android Task Hijacking
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Task, Back Stack and Foreground Activities
Em Android, uma task é essencialmente um conjunto de atividades com as quais os usuários interagem para completar um trabalho específico, organizadas dentro de uma back stack. Esta pilha ordena as atividades com base em quando foram abertas, com a atividade mais recente exibida no topo como a foreground activity. A qualquer momento, apenas esta atividade é visível na tela, tornando-se parte da foreground task.
Aqui está um resumo rápido das transições de atividades:
- Activity 1 começa como a única atividade em primeiro plano.
- Lançar Activity 2 empurra Activity 1 para a back stack, trazendo Activity 2 para o primeiro plano.
- Iniciar Activity 3 move Activity 1 e Activity 2 mais para trás na pilha, com Activity 3 agora à frente.
- Fechar Activity 3 traz Activity 2 de volta ao primeiro plano, mostrando o mecanismo de navegação de tarefas simplificado do Android.
Task affinity attack
Overview of Task Affinity and Launch Modes
Em aplicativos Android, task affinity especifica a task preferida de uma atividade, alinhando-se tipicamente com o nome do pacote do aplicativo. Esta configuração é instrumental na criação de um aplicativo de prova de conceito (PoC) para demonstrar o ataque.
Launch Modes
O atributo launchMode
direciona o manuseio das instâncias de atividade dentro das tasks. O modo singleTask é fundamental para este ataque, ditando três cenários com base nas instâncias de atividade existentes e nas correspondências de task affinity. A exploração depende da capacidade do aplicativo do atacante de imitar a task affinity do aplicativo alvo, enganando o sistema Android para lançar o aplicativo do atacante em vez do alvo pretendido.
Detailed Attack Steps
- Instalação do Aplicativo Malicioso: A vítima instala o aplicativo do atacante em seu dispositivo.
- Ativação Inicial: A vítima abre primeiro o aplicativo malicioso, preparando o dispositivo para o ataque.
- Tentativa de Lançamento do Aplicativo Alvo: A vítima tenta abrir o aplicativo alvo.
- Execução do Sequestro: Devido à correspondência de task affinity, o aplicativo malicioso é lançado no lugar do aplicativo alvo.
- Engano: O aplicativo malicioso apresenta uma tela de login falsa semelhante ao aplicativo alvo, enganando o usuário para inserir informações sensíveis.
Para uma implementação prática deste ataque, consulte o repositório Task Hijacking Strandhogg no GitHub: Task Hijacking Strandhogg.
Prevention Measures
Para prevenir tais ataques, os desenvolvedores podem definir taskAffinity
como uma string vazia e optar pelo modo de lançamento singleInstance
, garantindo o isolamento de seu aplicativo em relação a outros. Personalizar a função onBackPressed()
oferece proteção adicional contra sequestro de tarefas.
References
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.