Tapjacking

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Informação Básica

Tapjacking é um ataque onde um aplicativo malicioso é lançado e se posiciona sobre um aplicativo da vítima. Uma vez que ele obscurece visualmente o aplicativo da vítima, sua interface de usuário é projetada de forma a enganar o usuário para interagir com ele, enquanto está passando a interação para o aplicativo da vítima. Na prática, ele impede o usuário de saber que está realmente realizando ações no aplicativo da vítima.

Detecção

Para detectar aplicativos vulneráveis a esse ataque, você deve procurar por atividades exportadas no manifesto do Android (observe que uma atividade com um intent-filter é automaticamente exportada por padrão). Depois de encontrar as atividades exportadas, verifique se elas requerem alguma permissão. Isso ocorre porque o aplicativo malicioso também precisará dessa permissão.

Proteção

Android 12 (API 31,32) e superior

De acordo com esta fonte, os ataques de tapjacking são automaticamente impedidos pelo Android a partir do Android 12 (API 31 e 30) e superiores. Portanto, mesmo que o aplicativo seja vulnerável, você não conseguirá explorá-lo.

filterTouchesWhenObscured

Se android:filterTouchesWhenObscured for definido como true, a View não receberá toques sempre que a janela da visualização estiver obscurecida por outra janela visível.

setFilterTouchesWhenObscured

O atributo setFilterTouchesWhenObscured definido como true também pode prevenir a exploração dessa vulnerabilidade se a versão do Android for mais antiga. Se definido como true, por exemplo, um botão pode ser automaticamente desativado se estiver obscurecido:

<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>

Exploração

Tapjacking-ExportedActivity

A aplicação Android mais recente que realiza um ataque de Tapjacking (+ invocando antes de uma atividade exportada da aplicação atacada) pode ser encontrada em: https://github.com/carlospolop/Tapjacking-ExportedActivity.

Siga as instruções do README para utilizá-lo.

FloatingWindowApp

Um projeto de exemplo que implementa FloatingWindowApp, o qual pode ser utilizado para colocar em cima de outras atividades para realizar um ataque de clickjacking, pode ser encontrado em FloatingWindowApp (um pouco antigo, boa sorte construindo o apk).

Qark

Parece que este projeto não está mais sendo mantido e esta funcionalidade não está mais funcionando corretamente

Você pode usar qark com os parâmetros --exploit-apk --sdk-path /Users/username/Library/Android/sdk para criar uma aplicação maliciosa para testar possíveis vulnerabilidades de Tapjacking.

A mitigação é relativamente simples, pois o desenvolvedor pode optar por não receber eventos de toque quando uma visualização é coberta por outra. Utilizando a Referência do Desenvolvedor Android:

Às vezes é essencial que um aplicativo seja capaz de verificar que uma ação está sendo realizada com pleno conhecimento e consentimento do usuário, como conceder uma solicitação de permissão, fazer uma compra ou clicar em um anúncio. Infelizmente, um aplicativo malicioso poderia tentar enganar o usuário para realizar essas ações, sem saber, ocultando o propósito pretendido da visualização. Como remédio, o framework oferece um mecanismo de filtragem de toque que pode ser usado para melhorar a segurança de visualizações que fornecem acesso a funcionalidades sensíveis.

Para habilitar a filtragem de toque, chame setFilterTouchesWhenObscured(boolean) ou defina o atributo de layout android:filterTouchesWhenObscured como true. Quando habilitado, o framework descartará toques que forem recebidos sempre que a janela da visualização estiver obscurecida por outra janela visível. Como resultado, a visualização não receberá toques sempre que um toast, diálogo ou outra janela aparecer acima da janela da visualização.

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Last updated