Tapjacking

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Informaci贸n B谩sica

Tapjacking es un ataque donde una aplicaci贸n maliciosa se lanza y se posiciona encima de una aplicaci贸n v铆ctima. Una vez que oscurece visiblemente la aplicaci贸n v铆ctima, su interfaz de usuario est谩 dise帽ada de tal manera que enga帽a al usuario para que interact煤e con ella, mientras pasa la interacci贸n a la aplicaci贸n v铆ctima.
En efecto, est谩 cegando al usuario para que no sepa que en realidad est谩 realizando acciones en la aplicaci贸n v铆ctima.

Detecci贸n

Para detectar aplicaciones vulnerables a este ataque, debes buscar actividades exportadas en el manifiesto de Android (ten en cuenta que una actividad con un intent-filter se exporta autom谩ticamente por defecto). Una vez que hayas encontrado las actividades exportadas, verifica si requieren alg煤n permiso. Esto se debe a que la aplicaci贸n maliciosa tambi茅n necesitar谩 ese permiso.

Protecci贸n

Android 12 (API 31,32) y superior

Seg煤n esta fuente, los ataques de tapjacking son autom谩ticamente prevenidos por Android desde Android 12 (API 31 y 30) y superior. As铆 que, incluso si la aplicaci贸n es vulnerable, no podr谩s explotarla.

filterTouchesWhenObscured

Si android:filterTouchesWhenObscured est谩 configurado en true, la View no recibir谩 toques siempre que la ventana de la vista est茅 oscurecida por otra ventana visible.

setFilterTouchesWhenObscured

El atributo setFilterTouchesWhenObscured configurado en true tambi茅n puede prevenir la explotaci贸n de esta vulnerabilidad si la versi贸n de Android es inferior.
Si se establece en true, por ejemplo, un bot贸n puede ser autom谩ticamente deshabilitado si est谩 oscurecido:

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

Explotaci贸n

Tapjacking-ExportedActivity

La aplicaci贸n de Android m谩s reciente que realiza un ataque de Tapjacking (+ invocando antes de una actividad exportada de la aplicaci贸n atacada) se puede encontrar en: https://github.com/carlospolop/Tapjacking-ExportedActivity.

Sigue las instrucciones del README para usarlo.

FloatingWindowApp

Un proyecto de ejemplo que implementa FloatingWindowApp, que se puede usar para superponerse a otras actividades para realizar un ataque de clickjacking, se puede encontrar en FloatingWindowApp (un poco antiguo, buena suerte construyendo el apk).

Qark

caution

Parece que este proyecto ahora no est谩 mantenido y esta funcionalidad ya no funciona correctamente

Puedes usar qark con los par谩metros --exploit-apk --sdk-path /Users/username/Library/Android/sdk para crear una aplicaci贸n maliciosa que pruebe posibles vulnerabilidades de Tapjacking.\

La mitigaci贸n es relativamente simple, ya que el desarrollador puede optar por no recibir eventos t谩ctiles cuando una vista est谩 cubierta por otra. Usando la Referencia del Desarrollador de Android:

A veces es esencial que una aplicaci贸n pueda verificar que una acci贸n se est谩 realizando con el pleno conocimiento y consentimiento del usuario, como conceder una solicitud de permiso, realizar una compra o hacer clic en un anuncio. Desafortunadamente, una aplicaci贸n maliciosa podr铆a intentar enga帽ar al usuario para que realice estas acciones, sin que se d茅 cuenta, al ocultar el prop贸sito previsto de la vista. Como remedio, el marco ofrece un mecanismo de filtrado de toques que se puede usar para mejorar la seguridad de las vistas que proporcionan acceso a funcionalidades sensibles.

Para habilitar el filtrado de toques, llama a setFilterTouchesWhenObscured(boolean) o establece el atributo de dise帽o android:filterTouchesWhenObscured en true. Cuando est谩 habilitado, el marco descartar谩 los toques que se reciban siempre que la ventana de la vista est茅 oscurecida por otra ventana visible. Como resultado, la vista no recibir谩 toques siempre que un toast, di谩logo u otra ventana aparezca sobre la ventana de la vista.

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks