Contenido:
1 – Laboratorio iOS:
- Jailbreak.
- Cydia
- Instalación de Herramientas:
- OpenSSH
- SSLKillSitchv2
- NewTerm y herramientas de terminal
- Frida & Objection
- Burpsuite
- Configuración del proxy
- Burpsuite Mobile Assistant
2 – Frida & Objection
- Evaluación
- Arsenal
- Scripts
1: Laboratorio iOS:
Dispositivo físico: Iphone 6S (en este ejemplo).
Se denomina jailbreak al proceso de suprimir algunas limitaciones en el sistema operativo iOS mediante el uso de núcleos modificados. El equivalente en Android es permisos de root, a diferencia con Android el jailbreak es imprescindible si se quiere ejecutar software no autorizado por Apple.
Un jailbreak tethered requiere que el dispositivo esté conectado a un ordenador cada vez que se inicie y un jailbreak untethered no.
La mayoría de las herramientas instalan automáticamente Cydia, un cliente nativo de APT para iOS usado para instalar aplicaciones y software, algunas no son aplicaciones en sí, sino extensiones y modificaciones para el sistema y otras aplicaciones las cuales son llamadas tweaks.
Lo que se consigue con el jailbreak es quitar limitaciones, cabe destacar que si bien este proceso aporta mejoras también será perjudicial en algunas áreas, como son rendimiento y seguridad, además en el proceso de desbloquear el dispositivo se corre el riesgo de pérdida total del equipo (brick) o en una actualización de sistema operativo.
Las aplicaciones de iOS almacenan datos en el entorno limitado de la aplicación que no es accesible al público (pero está disponible para root y la aplicación en sí). Sin acceso de root, no es posible acceder al sandbox de la aplicación, ver qué datos se almacenan y cómo se almacenan. Además, la mayoría de los archivos de nivel de sistema son propiedad de root. El proceso para hacer jailbreak a las diferentes versiones de iOS puede variar dependiendo del dispositivo y versión de software, bastara con buscar en Google.
(Por motivos legales no se facilitaran detalles relacionados con la manipulación del dispositivo)
El resultado final será tener instalada la aplicación Cydia.
Instalación de herramientas:
Después de liberar un dispositivo iOS, es recomendable instalar algunas utilidades, la mayoría se pueden instalar desde Cydia. Cydia es un contenedor GUI para apt y, una vez que apt está instalado, el resto se puede instalar a través de la línea de comandos. Se prefiere Cydia debido a la facilidad de uso.
- OpenSSH: Una utilidad para conectarse de forma remota al Sistema de archivos iOS. OpenSSHutility o SSDropBear
- Frida: Kit de herramientas de instrumentación dinámica para desarrolladores, ingenieros inversos e investigadores de seguridad.
- Herramientas recomendadas de BigBoss: Herramientas de CLI como wget, tar, vim, etc., que no vienen preinstaladas con el Repositorio de Cydia.
- Cydia substrate: Un requisito importante para muchos de los ajustes y herramientas. Se requiere para modificar el software durante el tiempo de ejecución en el dispositivo sin acceso al código fuente.
- APT de transición (apt-get): Herramientas de empaquetado para iOS
- Class-dump-z, class-dump, classdump-dyld: Herramienta para ingeniería inversa de iOS que ayuda a volcar las declaraciones para las clases, categorías y protocolos.
- Cycript: Proporciona un mecanismo para modificar aplicaciones en tiempo de ejecución mediante la combinación de Objective-C ++ y la sintaxis de JavaScript.
- Consola de instalación de IPA: Utilidad de línea de comandos para instalar aplicaciones de terceros en un dispositivo iOS con jailbreak.
- AppSync: Ajuste de iOS que permite la instalación de un paquete IPA firmado, modificado y falso en el dispositivo iOS.
- GDB del repositorio cydia.radare.org: Depurador GNU para IOS con jailbreak en arm64.
- MTerminal: Terminal en el dispositivo para ejecutar comandos sin la necesidad de un equipo de escritorio.
- Filemon: Software de monitoreo del sistema de archivos iOS en tiempo real.
- Introspy-iOS: Herramienta que ayuda a analizar aplicaciones iOS utilizando un enfoque de blackbox.
- SSL Kill Switch 2: Herramienta que evita la validación SSL y la fijación de SSL en aplicaciones iOS.
- Hopper: Herramienta de ingeniería inversa que ayuda a descomprimir, descompilar y depurar aplicaciones.
- IDA Pro: Herramienta avanzada de ingeniería inversa de aplicaciones.
- BurpSuite: Proxy de intercepcion para realizar MITM en aplicaciones iOS.
- FileDP: Herramienta para extraer la clase de protección de datos de los archivos en el dispositivo iOS.
- Libimobile: Biblioteca de protocolos multiplataforma para instrumentación de dispositivos iOS.
El proceso para instalar OpenSSH a través del Cydia es el siguiente:
Ya sera posible la conexión al dispositivo:
Herramienta para deshabilitar la validación e incluso la fijación de certificados SSL.
Subida del fichero al dispositivo mediante scp:
Instalación mediante el gestor de paquetes dpkg:
Repositorio de Chariz > NewTerm > instalar…
Actualizar APT e instalar aplicaciones como de costumbre…
Herramientas – Frida
frida-ls-devices
frida –U iOSapp
Herramientas – Objection
Instalación de Objection mediante pip3
Burpsuite – Configuración del proxy
Para interceptar las comunicaciones cifradas (HTTPS) se precisa la instalación del certificado de Burpsuite, para ello es necesario navegar a http://ip:puerto, descargar e instalar el certificado.
Confianza en el certificado:
Así ya es posible la intercepción de las comunicaciones cifradas por protocolo seguro (HTTPS):
Burpsuite – Burpsuite Mobile Assistant
3: Frida & Objection
FRIDA: Es necesario la instalación del paquete Frida-preA12-devices desde el repositorio de Frida (https://build.frida.re/).
Y ya es posible la instrumentación de aplicaciones:
Laboratorio terminado:
Hasta este punto, es posible la obtención de una aplicación para iOS, la instalación de ésta en un dispositivo con permisos de administración (jailbreak) y la capacidad de interceptar las comunicaciones cifradas ademas de instrumentar con las funciones y clases de dicha aplicación.
EXTRA: Adquisición del binario iOS:
Varias formas de adquirir binarios de iOS:
- Mediante iTunes (App Store en Mac), «Aplicaciones», nombre de la aplicación en la «Biblioteca», «Mostrar en Finder» para obtener la ruta iPA. Ademas, al sincronizar con iTunes, el archivo .IPA se envía a la carpeta iTunes. Extraiga el archivo .IPA de la carpeta iTunes.
- iMazing / 3uTools / iFunbox / iTools: Conecte el dispositivo, aplicaciones, seleccione el binario y extraer.
- Con acceso al código fuente, es posible compilar la aplicación binaria directamente. Esto es útil cuando se trabaja con dispositivos con jailbreak antiguos, ya que permite compilar la aplicación para que se ejecute en el dispositivo más antiguo y realizar las pruebas.
El análisis de una aplicación móvil se compone de un análisis estático y ademas un análisis dinámico, esta entrada solo habla muy brevemente de como montar el laboratorio, para mas información sobre este tipo de análisis pueden visitar otras entradas del mismo blog.
Aplicaciones para pruebas:
Algunas herramientas más: