6.2 KiB
Android Task Hijacking
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você quiser ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Verifique os PLANOS DE ASSINATURA!
- Obtenha o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
Grupo de Segurança Try Hard
{% embed url="https://discord.gg/tryhardsecurity" %}
Tarefa, Pilha de Retorno e Atividades em Primeiro Plano
No Android, uma tarefa é essencialmente um conjunto de atividades com as quais os usuários interagem para concluir um trabalho específico, organizado dentro de uma pilha de retorno. Esta pilha ordena as atividades com base em quando foram abertas, com a atividade mais recente exibida no topo como a atividade em primeiro plano. Em qualquer momento, apenas esta atividade é visível na tela, tornando-a parte da tarefa em primeiro plano.
Aqui está uma rápida explicação das transições de atividade:
- Atividade 1 começa como a única atividade em primeiro plano.
- Iniciar Atividade 2 empurra Atividade 1 para a pilha de retorno, trazendo Atividade 2 para o primeiro plano.
- Iniciar Atividade 3 move Atividade 1 e Atividade 2 mais para trás na pilha, com Atividade 3 agora na frente.
- Fechar Atividade 3 traz Atividade 2 de volta para o primeiro plano, mostrando o mecanismo de navegação de tarefas simplificado do Android.
Ataque de afinidade de tarefa
Visão geral da Afinidade de Tarefa e Modos de Lançamento
Nas aplicações Android, a afinidade de tarefa especifica a tarefa preferida de uma atividade, alinhando-se tipicamente com o nome do pacote do aplicativo. Esta configuração é fundamental na criação de um aplicativo de prova de conceito (PoC) para demonstrar o ataque.
Modos de Lançamento
O atributo launchMode
direciona o tratamento de instâncias de atividade dentro de tarefas. 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 afinidade de tarefa. A exploração depende da capacidade do aplicativo do atacante de imitar a afinidade de tarefa do aplicativo alvo, enganando o sistema Android para lançar o aplicativo do atacante em vez do aplicativo alvo pretendido.
Etapas Detalhadas do Ataque
- 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 de Sequestro: Devido à afinidade de tarefa correspondente, 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 a 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.
Medidas de Prevenção
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 dos outros. Personalizar a função onBackPressed()
oferece proteção adicional contra sequestro de tarefas.
Referências
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
Grupo de Segurança Try Hard
{% embed url="https://discord.gg/tryhardsecurity" %}
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você quiser ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Verifique os PLANOS DE ASSINATURA!
- Obtenha o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.