# Tapjacking
Aprenda hacking no AWS do zero ao herói comhtARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
## **Informações Básicas**
**Tapjacking** é um ataque onde uma **aplicação maliciosa** é lançada e **se posiciona em cima de uma aplicação vítima**. Uma vez que obscurece visualmente o app vítima, sua interface de usuário é projetada de tal forma a enganar o usuário para interagir com ela, enquanto passa a interação para o app vítima.\
Na prática, está **cegando o usuário para que ele não perceba que está realmente realizando ações no app vítima**.
### Detecção
Para detectar apps vulneráveis a este ataque, você deve procurar por **atividades exportadas** no manifesto do Android (note que uma atividade com um intent-filter é automaticamente exportada por padrão). Uma vez que você encontrou as atividades exportadas, **verifique se elas requerem alguma permissão**. Isso porque a **aplicação maliciosa também precisará dessa permissão**.
### Proteção
#### Android 12 (API 31,32) e superiores
[**De acordo com esta fonte**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** ataques de tapjacking são automaticamente prevenidos pelo Android a partir do Android 12 (API 31 & 32) em diante. Então, mesmo que a aplicação seja vulnerável, você **não será capaz de explorá-la**.
#### `filterTouchesWhenObscured`
Se **`android:filterTouchesWhenObscured`** estiver definido como **`true`**, a `View` não receberá toques sempre que a janela da view estiver obscurecida por outra janela visível.
#### **`setFilterTouchesWhenObscured`**
O atributo **`setFilterTouchesWhenObscured`** definido como verdadeiro também pode prevenir a exploração desta vulnerabilidade se a versão do Android for inferior.\
Se definido como **`true`**, por exemplo, um botão pode ser automaticamente **desativado se estiver obscurecido**:
```markup
```
## Exploração
### Tapjacking-ExportedActivity
A aplicação **Android mais recente** que realiza um ataque de **Tapjacking** (invocando antes uma **atividade exportada** da aplicação atacada) pode ser encontrada em [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Siga as **instruções do README para usá-lo**.
### FloatingWindowApp
Um projeto de exemplo implementando **FloatingWindowApp**, que pode ser usado para sobrepor outras atividades e realizar um ataque de clickjacking, pode ser encontrado em [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (um pouco antigo, boa sorte ao construir o apk).
### Qark
{% hint style="danger" %}
Parece que este projeto agora está sem manutenção e essa funcionalidade não está funcionando corretamente mais.
{% endhint %}
Você pode usar [**qark**](https://github.com/linkedin/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 está coberta por outra. Usando a [Referência para Desenvolvedores Android](https://developer.android.com/reference/android/view/View#security):
> Às vezes, é essencial que uma aplicação possa verificar que uma ação está sendo realizada com o conhecimento e consentimento total do usuário, como conceder uma solicitação de permissão, fazer uma compra ou clicar em um anúncio. Infelizmente, uma aplicação maliciosa poderia tentar enganar o usuário para realizar essas ações, sem o seu conhecimento, 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)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ou defina o atributo de layout android:filterTouchesWhenObscured como verdadeiro. Quando habilitado, o framework descartará toques que são 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 no AWS do zero ao herói comhtARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas dicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).