Extracción de Derechos de Aplicación Compilada
Reading time: 4 minutes
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.
Resumen de la página https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary
Extracción de Derechos y Archivos de Provisión Móvil
Al tratar con el IPA de una aplicación o una aplicación instalada en un dispositivo con jailbreak, puede que no sea posible encontrar archivos .entitlements
o el archivo embedded.mobileprovision
directamente. Sin embargo, las listas de propiedades de derechos aún se pueden extraer del binario de la aplicación, siguiendo los procedimientos descritos en el capítulo "Pruebas de Seguridad Básica de iOS", particularmente en la sección "Adquisición del Binario de la Aplicación".
Incluso con binarios cifrados, se pueden emplear ciertos pasos para extraer estos archivos. Si estos pasos fallan, pueden ser necesarias herramientas como Clutch (si es compatible con la versión de iOS), frida-ios-dump, o utilidades similares para descifrar y extraer la aplicación.
Extracción del Plist de Derechos del Binario de la Aplicación
Con el binario de la aplicación accesible en una computadora, se puede utilizar binwalk para extraer todos los archivos XML. El comando a continuación demuestra cómo hacerlo:
$ binwalk -e -y=xml ./Telegram\ X
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
Alternativamente, radare2 se puede usar para ejecutar un comando en silencio y salir, buscando todas las cadenas en el binario de la aplicación que contengan "PropertyList":
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
Ambos métodos, binwalk y radare2, permiten la extracción de archivos plist
, con una inspección del primero (0x0015d2a4) revelando una recuperación exitosa del archivo de derechos original de Telegram.
Para los binarios de aplicaciones accedidos en dispositivos con jailbreak (por ejemplo, a través de SSH), se puede usar el comando grep con la bandera -a, --text
para tratar todos los archivos como texto ASCII:
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
Ajustar la bandera -A num, --after-context=num
permite mostrar más o menos líneas. Este método es viable incluso para binarios de aplicaciones encriptadas y ha sido verificado en múltiples aplicaciones de la App Store. Las herramientas mencionadas anteriormente también pueden ser empleadas en dispositivos iOS con jailbreak para propósitos similares.
Nota: No se recomienda el uso directo del comando strings
para esta tarea debido a sus limitaciones para encontrar información relevante. En su lugar, se aconseja emplear grep con la bandera -a
en el binario o utilizar radare2 (izz
)/rabin2 (-zz
) para obtener resultados más efectivos.
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.