hacktricks/mobile-pentesting/android-app-pentesting/android-task-hijacking.md

75 lines
5.8 KiB
Markdown
Raw Normal View History

# Android Task Hijacking
2023-06-05 18:33:24 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Tarea, Pila de Fondo y Actividades en Primer Plano
En Android, una **tarea** es esencialmente un conjunto de actividades con las que los usuarios interactúan para completar un trabajo específico, organizadas dentro de una **pila de fondo**. Esta pila ordena las actividades según cuándo fueron abiertas, con la actividad más reciente mostrada en la parte superior como la **actividad en primer plano**. En cualquier momento, solo esta actividad es visible en la pantalla, convirtiéndola en parte de la **tarea en primer plano**.
2023-06-05 18:33:24 +00:00
Aquí hay un desglose rápido de las transiciones de actividades:
2023-06-05 18:33:24 +00:00
* **Actividad 1** comienza como la única actividad en primer plano.
* Lanzar **Actividad 2** empuja **Actividad 1** a la pila de fondo, llevando **Actividad 2** al primer plano.
* Iniciar **Actividad 3** mueve **Actividad 1** y **Actividad 2** más atrás en la pila, con **Actividad 3** ahora al frente.
* Cerrar **Actividad 3** trae **Actividad 2** de vuelta al primer plano, mostrando el mecanismo de navegación de tareas optimizado de Android.
2023-06-05 18:33:24 +00:00
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (698).png>)
2023-06-05 18:33:24 +00:00
## Ataque de afinidad de tarea
2023-06-05 18:33:24 +00:00
### Descripción general de la afinidad de tarea y modos de lanzamiento
2023-06-05 18:33:24 +00:00
En las aplicaciones de Android, la **afinidad de tarea** especifica la tarea preferida de una actividad, alineándose típicamente con el nombre del paquete de la aplicación. Esta configuración es fundamental para crear una aplicación de prueba de concepto (PoC) para demostrar el ataque.
2023-06-05 18:33:24 +00:00
### Modos de lanzamiento
2023-06-05 18:33:24 +00:00
El atributo `launchMode` dirige el manejo de instancias de actividad dentro de las tareas. El modo **singleTask** es fundamental para este ataque, dictando tres escenarios basados en las instancias de actividad existentes y las coincidencias de afinidad de tarea. La explotación se basa en la capacidad de la aplicación del atacante para imitar la afinidad de tarea de la aplicación objetivo, engañando al sistema Android para que inicie la aplicación del atacante en lugar de la objetivo.
2023-06-05 18:33:24 +00:00
### Pasos detallados del ataque
2023-06-05 18:33:24 +00:00
1. **Instalación de la aplicación maliciosa**: La víctima instala la aplicación del atacante en su dispositivo.
2. **Activación inicial**: La víctima abre primero la aplicación maliciosa, preparando el dispositivo para el ataque.
3. **Intento de lanzamiento de la aplicación objetivo**: La víctima intenta abrir la aplicación objetivo.
4. **Ejecución del secuestro**: Debido a la coincidencia de afinidad de tarea, la aplicación maliciosa se lanza en lugar de la aplicación objetivo.
5. **Engaño**: La aplicación maliciosa presenta una pantalla de inicio de sesión falsa que se asemeja a la aplicación objetivo, engañando al usuario para que ingrese información sensible.
2023-06-05 18:33:24 +00:00
Para una implementación práctica de este ataque, consulte el repositorio Task Hijacking Strandhogg en GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
2023-06-05 18:33:24 +00:00
### Medidas de prevención
2023-06-05 18:33:24 +00:00
Para prevenir tales ataques, los desarrolladores pueden establecer `taskAffinity` en una cadena vacía y optar por el modo de lanzamiento `singleInstance`, asegurando el aislamiento de su aplicación de otras. Personalizar la función `onBackPressed()` ofrece protección adicional contra el secuestro de tareas.
2023-06-05 18:33:24 +00:00
## **Referencias**
2023-06-05 18:33:24 +00:00
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2023-06-05 18:33:24 +00:00
<details>
<summary>Support HackTricks</summary>
2023-06-05 18:33:24 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2023-06-05 18:33:24 +00:00
</details>
{% endhint %}