El código y la explicación proporcionados son parte de una herramienta diseñada para explotar una vulnerabilidad de Android, específicamente CVE-2024-0044, para realizar un ataque de escalamiento de privilegios. A continuación, se explica en detalle:
Código y Funcionalidad
- Importaciones y Definición de la Clase CustomFormatter:
import argparse
import subprocess, os
class CustomFormatter(argparse.ArgumentDefaultsHelpFormatter, argparse.RawDescriptionHelpFormatter):
pass
Se importan los módulos necesarios (argparse
para el análisis de argumentos, subprocess
para ejecutar comandos del sistema, y os
para interactuar con el sistema operativo). CustomFormatter
es una clase que combina dos estilos de formato de ayuda de argparse
.
- Función para Mostrar un Banner:
def display_banner():
print(''' ... ASCII Art ... ''')
Esta función imprime un banner ASCII artístico.
- Definición del Parser de Argumentos:
parser = argparse.ArgumentParser(
description='CVE-2024-0044: run-as any app @Pl4int3xt',
formatter_class=CustomFormatter,
epilog= display_banner()
)
parser.add_argument("-P", help="package name", required=True)
parser.add_argument("-A", help="apk file path", required=True)
args = parser.parse_args()
Se define el analizador de argumentos que acepta dos argumentos obligatorios: el nombre del paquete (-P
) y la ruta del archivo APK (-A
).
- Definición de Funciones:
push_apk
:def push_apk(apk_path): ...
Esta función verifica si el archivo APK existe y lo empuja al dispositivo conectado medianteadb
.get_app_uid
:def get_app_uid(package_name): ...
Esta función obtiene el UID del paquete de la aplicación especificada utilizandoadb
.generate_payload
:def generate_payload(uid, apk_filename): ...
Esta función genera y guarda un payload en un archivopayload.txt
.
- Ejecución Principal del Script:
if __name__ == "__main__":
...
En el bloque principal, el script empuja el APK al dispositivo, obtiene el UID de la aplicación objetivo y genera el payload.
Vulnerabilidad CVE-2024-0044
Descripción de la Vulnerabilidad:
- CVE-2024-0044 es una vulnerabilidad de alta severidad en las versiones 12 y 13 de Android. Permite a un atacante ejecutar acciones como si fuera cualquier otra aplicación sin requerir interacción del usuario.
- La vulnerabilidad reside en la función
createSessionInternal
del archivoPackageInstallerService.java
. Un atacante puede manipular el proceso de creación de sesiones para obtener acceso no autorizado a datos sensibles y realizar acciones no autorizadas.
Explotación del CVE-2024-0044:
- Preparación:
- Habilitar la depuración USB y conectar el dispositivo.
- Descargar un archivo APK.
- Uso de la Herramienta:
- Ejecutar el script con el comando:
bash python3 cve_2024_0044.py -P com.whatsapp -A /ruta/al/apk/F-Droid.apk
- Esto generará un archivo
payload.txt
con el payload necesario.
- Ejecución del Payload:
- Conectar al dispositivo con
adb shell
y ejecutar el payload. - Crear un directorio temporal y establecer permisos.
- Cambiar el contexto de usuario y archivar los datos de la aplicación objetivo.
- Descargar los datos archivados y extraerlos.
Conclusión
Este script demuestra cómo una vulnerabilidad crítica puede ser explotada para obtener acceso no autorizado a datos sensibles en un dispositivo Android. La herramienta está diseñada para investigadores de seguridad y profesionales que necesitan evaluar y mitigar las amenazas de seguridad en aplicaciones móviles.
Fuentes de interés
- 🛡️ CVE-2024-0044: Posible ejecución de aplicaciones como root en PackageInstallerService.java debido a validación incorrecta de entrada.
- 🚨 Impacto: Escalada local de privilegios sin necesidad de privilegios adicionales.
- 📅 Fecha de publicación: 2024-03-11
- 🔄 Última actualización: 2024-03-12
- 📝 Fuente: Android (Google Inc. o Open Handset Alliance)
- 🔗 Referencias: NVD
NVD – CVE-2024-0044 (nist.gov)
Claro, aquí tienes la información condensada en puntos:
⚠️ Vulnerabilidad
- CVE-2024-0044: A la espera de análisis.
- Descripción: Posible ejecución como cualquier aplicación debido a validación de entrada incorrecta en createSessionInternal de PackageInstallerService.java. Podría permitir escalada local de privilegios sin privilegios adicionales de ejecución necesarios. No se requiere interacción del usuario para la explotación.
- Gravedad: CVSS 4.0 no proporciona evaluación aún.
- Referencias:
- Google Source
- GitHub Security Advisories
- Meta Security Exploitation
- Android Security Bulletin
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.