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
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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:
<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
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.