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
- 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.
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, preparando 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: Debido a la coincidencia de afinidad de tarea, la aplicaci贸n maliciosa se lanza 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.
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
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
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.