Android Task Hijacking

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

Tareas, Pila de Actividades 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 actividades. 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.

Aqu铆 hay un desglose r谩pido de las transiciones de actividades:

  • Actividad 1 comienza como la 煤nica actividad en primer plano.
  • Lanzar Actividad 2 empuja Actividad 1 a la pila de actividades, 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.

https://developer.android.com/images/fundamentals/diagram_backstack.png

Ataque de afinidad de tarea

Descripci贸n general de la afinidad de tarea y modos de lanzamiento

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.

Modos de lanzamiento

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 aplicaci贸n objetivo.

Pasos detallados del ataque

  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.

Para una implementaci贸n pr谩ctica de este ataque, consulte el repositorio Task Hijacking Strandhogg en GitHub: Task Hijacking Strandhogg.

Medidas de prevenci贸n

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.

Referencias

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