iOS Extracting Entitlements From Compiled Application
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 Entitlements y Archivos de Provisión Móvil
Cuando se trata de un IPA de una aplicación o de 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 los entitlements aún pueden extraerse del binario de la aplicación, siguiendo los procedimientos descritos en el capítulo "Pruebas Básicas de Seguridad en iOS", en particular la sección "Adquisición del Binario de la Aplicación".
Incluso con binarios encriptados, se pueden emplear ciertos pasos para extraer estos archivos. Si estos pasos fallan, pueden ser necesarios herramientas como Clutch (si es compatible con la versión de iOS), frida-ios-dump, u utilidades similares para descifrar y extraer la aplicación.
Extracción del Plist de Entitlements del Binario de la Aplicación
Con el binario de la aplicación accesible en un ordenador, binwalk puede ser utilizado para extraer todos los archivos XML. El siguiente comando demuestra cómo hacerlo:
Alternativamente, radare2 se puede utilizar para ejecutar silenciosamente un comando y salir, buscando todas las cadenas en el binario de la aplicación que contienen "PropertyList":
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 permisos original de Telegram.
Para binarios de aplicaciones accedidos en dispositivos con jailbreak (por ejemplo, a través de SSH), el comando grep con la bandera -a, --text
se puede utilizar para tratar todos los archivos como texto ASCII:
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 utilizarse en dispositivos iOS con jailbreak con 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 recomienda utilizar grep con la bandera -a
en el binario o utilizar radare2 (izz
)/rabin2 (-zz
) para obtener resultados más efectivos.
Última actualización