Android Task Hijacking
Reading time: 4 minutes
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.
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.
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
- Instalaci贸n de la aplicaci贸n maliciosa: La v铆ctima instala la aplicaci贸n del atacante en su dispositivo.
- Activaci贸n inicial: La v铆ctima abre primero la aplicaci贸n maliciosa, configurando el dispositivo para el ataque.
- Intento de lanzamiento de la aplicaci贸n objetivo: La v铆ctima intenta abrir la aplicaci贸n objetivo.
- Ejecuci贸n del secuestro: En alg煤n momento, la aplicaci贸n intenta abrir la vista singleTask. Debido a la coincidencia de afinidad de tarea, se lanza la aplicaci贸n maliciosa en lugar de la aplicaci贸n objetivo.
- 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.
tip
Tenga en cuenta que para que este ataque funcione, la vista vulnerable no necesita tener exportado a verdadero ni necesita ser la actividad principal.
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
de la vista singleTask a una cadena vac铆a (android:taskAffinity=""
) - 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
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.