<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
Primero que nada necesitas descargar el certificado Der de Burp. Puedes hacer esto en _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_
**Exporta el certificado en formato Der** y vamos a **transformarlo** a un formato que **Android** pueda **entender.** Ten en cuenta que **para configurar el certificado de burp en la máquina Android en AVD** necesitas **ejecutar** esta máquina **con** la opción **`-writable-system`**.\
Si **has rooteado tu dispositivo con Magisc** (quizás un emulador), y **no puedes seguir** los **pasos** anteriores para instalar el certificado de Burp porque el **sistema de archivos es de solo lectura** y no puedes volver a montarlo como escribible, hay otra manera.
1.**Instalar un certificado CA**: Simplemente **arrastra y suelta** el certificado DER de Burp **cambiando la extensión** a `.crt` en el móvil para que se guarde en la carpeta de Descargas y ve a `Instalar un certificado` -> `Certificado CA`
2.**Hacerlo confiable por el Sistema**: Descarga el módulo de Magisc [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (un archivo .zip), **arrastra y suelta** en el teléfono, ve a la **aplicación Magics** en el teléfono a la sección **`Módulos`**, haz clic en **`Instalar desde almacenamiento`**, selecciona el módulo `.zip` y una vez instalado **reinicia** el teléfono:
* Hasta ahora, los certificados CA confiables por el sistema vivían en **`/system/etc/security/cacerts/`**. En un emulador AOSP estándar, estos podían ser **modificados directamente con acceso root** con una configuración mínima, tomando **efecto inmediatamente en todas partes**.
* En Android 14, los certificados CA confiables por el sistema generalmente vivirán en **`/apex/com.android.conscrypt/cacerts`**, y todo **`/apex` es inmutable**.
* Esa ruta de cacerts de **APEX no puede ser remontada como reescribible** - los remontajes simplemente fallan. De hecho, incluso si desmontas toda la ruta desde una shell root, las aplicaciones aún pueden leer tus certificados sin problemas.
* La técnica alternativa de **montar un directorio tmpfs encima tampoco funciona** - aunque esto signifique que `ls /apex/com.android.conscrypt/cacerts` podría no retornar nada (o cualquier otra cosa que te guste), las aplicaciones aún verán los mismos datos originales.
* Porque el montaje de `/apex` es [explícitamente montado](https://cs.android.com/android/platform/superproject/main/+/main:system/core/init/mount\_namespace.cpp;l=97;drc=566c65239f1cf3fcb0d8745715e5ef1083d4bd3a) **con propagación PRIVADA**, de modo que todos los cambios en los montajes dentro de la ruta `/apex` nunca se comparten entre procesos.
Eso es hecho por el proceso `init` que inicia el SO, que luego lanza el proceso [Zygote](https://en.wikipedia.org/wiki/Booting\_process\_of\_Android\_devices#Zygote) (con un nuevo espacio de nombres de montaje copiado del padre, así incluyendo su propio montaje `/apex` privado), que a su vez **inicia cada proceso de aplicación** cada vez que se lanza una aplicación en el dispositivo (quienes a su vez entonces **copian ese mismo montaje `/apex` privado**).
* Puedes remontar `/apex` manualmente, eliminando la propagación PRIVADA y haciéndolo escribible (irónicamente, parece que eliminar completamente la propagación privada _sí_ se propaga por todas partes)
* Copias todo el contenido de `/apex/com.android.conscrypt` en otro lugar
* Luego desmontas completamente `/apex/com.android.conscrypt` - eliminando el montaje de solo lectura que proporciona inmutablemente este módulo
* Luego copias el contenido de vuelta, para que viva directamente en el montaje de `/apex`, donde puede ser modificado (necesitas hacer esto rápidamente, ya que [aparentemente](https://infosec.exchange/@g1a55er/111069489513139531) puedes ver fallos de lo contrario)
* Esto debería tomar efecto inmediatamente, pero recomiendan matar `system_server` (reiniciando todas las aplicaciones) para que todo vuelva a un estado consistente
* Primero, necesitamos configurar un directorio con permisos de escritura en algún lugar. Para una fácil compatibilidad con el enfoque existente, estoy haciendo esto con un montaje `tmpfs` sobre el directorio de certificados del sistema no APEX (que aún está presente):
* Luego colocas los certificados CA que te interesan en este directorio (por ejemplo, podrías querer copiar todos los predeterminados del directorio existente de certificados CA `/apex/com.android.conscrypt/cacerts/`) y establecer los permisos y etiquetas SELinux de manera apropiada.
El proceso Zygote genera cada aplicación, copiando su espacio de nombres de montaje para hacerlo, por lo que esto asegura que todas las aplicaciones recién lanzadas (todo lo que se inicie de ahora en adelante) utilizarán esto.
* Luego, usa `nsenter` para entrar al espacio de nombres de montaje de cada aplicación que ya está en ejecución y haz lo mismo:
Alternativamente, si no te importa la incómoda experiencia de usuario, deberías poder hacer el montaje vinculado en `init` mismo (PID 1) y luego ejecutar `stop && start` para reiniciar suavemente el sistema operativo, recreando todos los espacios de nombres y propagando tus cambios en todas partes (pero personalmente me importa el incómodo reinicio, así que estoy ignorando esa ruta por completo).
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).