Android Task Hijacking

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Grupo de Seguridad Try Hard


Tarea, 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 se abrieron, 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, formando parte de la tarea en primer plano.

Aquí tienes un desglose rápido de las transiciones de actividad:

  • Actividad 1 comienza como la única actividad en primer plano.

  • Al iniciar Actividad 2, se empuja Actividad 1 a la pila de atrás, llevando Actividad 2 al primer plano.

  • Al iniciar Actividad 3, se mueven Actividad 1 y Actividad 2 más atrás en la pila, con Actividad 3 ahora al frente.

  • Al cerrar Actividad 3, se trae de vuelta Actividad 2 al primer plano, mostrando el mecanismo de navegación de tareas simplificado de Android.

Ataque de afinidad de tareas

Visión general de la Afinidad de Tareas y Modos de Inicio

En las aplicaciones de Android, la afinidad de tareas 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 Inicio

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 tareas. El exploit se basa en la capacidad de la aplicación de un atacante para imitar la afinidad de tareas de la aplicación objetivo, engañando al sistema de Android para que lance la aplicación del atacante en lugar del objetivo previsto.

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 Inicio de la Aplicación Objetivo: La víctima intenta abrir la aplicación objetivo.

  4. Ejecución del Secuestro: Debido a la afinidad de tareas coincidente, la aplicación maliciosa se inicia 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 de la aplicación objetivo, engañando al usuario para que ingrese información sensible.

Para una implementación práctica de este ataque, consulta el repositorio de Secuestro de Tareas Strandhogg en GitHub: Secuestro de Tareas 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 inicio 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

Grupo de Seguridad Try Hard

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización