* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Tarea, Pila de Actividades y Actividades en Primer Plano
Una tarea es una colección de actividades con las que los usuarios interactúan al realizar una determinada tarea. Las actividades se organizan en una pila, llamada _**pila de actividades en segundo plano**_, en el orden en que se abre cada actividad.
La actividad que se **muestra** en la pantalla se llama **actividad en primer plano** y su **tarea** se llama **tarea en primer plano**. En un momento dado, solo **una tarea en primer plano es visible en la pantalla**.
* Se inicia la Actividad 2, que empuja la Actividad 1 a la Pila de Actividades en Segundo Plano. Ahora la Actividad 2 está en primer plano.
* Se inicia la Actividad 3, que empuja tanto la Actividad 1 como la 2 a la Pila de Actividades en Segundo Plano.
* Ahora, cuando se cierra la Actividad 3, la actividad anterior, es decir, la 2, se trae automáticamente al primer plano. Así es como funciona la navegación de tareas en Android.
La **afinidad de tareas** es un atributo que se define en cada etiqueta `<activity>` en el archivo `AndroidManifest.xml`. Describe a qué tarea prefiere un Activity unirse.\
**Modos de lanzamiento** te permiten definir cómo se asocia una nueva instancia de una actividad con la tarea actual. El atributo [`launchMode`](https://developer.android.com/guide/topics/manifest/activity-element#lmode) especifica una instrucción sobre cómo se debe lanzar la actividad en una tarea.\
Cuando el `launchMode` se establece en `singleTask`, el sistema Android evalúa tres posibilidades y una de ellas es la razón por la cual nuestro ataque es posible. Aquí están:
Android reanuda la instancia existente en lugar de crear una nueva. Esto significa que hay como máximo una instancia de actividad en el sistema bajo este modo.
El Servicio de Administrador de Actividades (AMS) selecciona una tarea para alojar la instancia recién creada encontrando una tarea "coincidente" en todas las tareas existentes. **Una actividad "coincide" con una tarea si tienen la misma afinidad de tarea**. Esta es la razón por la cual podemos **especificar la misma afinidad de tarea que la aplicación vulnerable en nuestra aplicación de malware/atacante para que se lance en su tarea en lugar de crear la suya propia**.
La víctima necesita tener la **aplicación maliciosa instalada** en su dispositivo. Luego, necesita **abrirla** antes de abrir la **aplicación vulnerable**. Entonces, cuando se **abra** la **aplicación vulnerable**, se **abrirá** en su lugar la **aplicación maliciosa**. Si esta aplicación maliciosa presenta el **mismo inicio de sesión** que la aplicación vulnerable, el **usuario no tendrá forma de saber que está ingresando sus credenciales en una aplicación maliciosa**.
Establecer **`taskAffinity=""`** puede ser una solución rápida para este problema. El modo de lanzamiento también se puede establecer en **singleInstance** si la aplicación no desea que otras actividades se unan a las tareas a las que pertenece. También se puede agregar una función personalizada **onBackPressed()** para anular el comportamiento predeterminado.
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).