Introduccion al pentesting de aplicaciones Android

Introduccion al pentesting de aplicaciones Android

En el proximo articulo hablaremos de pentesting de aplicaciones moviles, ese desconocido para muchos, con la intencion de acercar al público este tipo de auditorias que por distintas que parezcan, pueden llegar a ser muy interesantes si se logra entender como se llevan a cabo.

Primero de todo, necesitaríamos un dispositivo móvil rooteado. El proceso de root/jailbreak se deja a libertad de cada uno, hay varias formas en función de la versión de Android/iOS que dispongáis. Para serie de artículos que vamos a ir publicando, nos apoyaremos en Genymotion, que para quien no lo conozca es un emulador de Android que monta las imágenes ya rooteadas, lo que nos ahorra mucho tiempo. Para la comunicación con nuestro dispositivo Android, necesitaremos una herramienta conocida como Android Debug Bridge (ADB), nos permitirá comunicarnos con el dispositivo mediante comandos. El comando ADB facilita una variedad de acciones en dispositivos, como instalar y depurar apps. ADB proporciona acceso a un shell Unix que puedes usar para ejecutar una variedad de comandos en un dispositivo. ADB no es compatible con iOS, por lo que, en este caso, para levantar una Shell lo haremos por medio de SSH.

En el laboratorio que os presentamos, dispondremos de dos terminales: una máquina atacante (Kali) y una víctima, un dispositivo móvil (emulado). Para simular la víctima, se va a hacer el uso de Genymotion, un emulador de Android multiplataforma. Esta aplicación simplificará considerablemente la tarea, especialmente si no se cuenta con un dispositivo móvil rooteado.

En primer lugar, procederemos a preparar la máquina atacante con las siguientes herramientas necesarias:

  • MobSF (Mobile Security Framework): un entorno completo que permite la evaluación de seguridad y el análisis de malware de aplicaciones móviles (Android/iOS/Windows), capaz de realizar análisis estáticos y dinámicos. MobSF admite ejecutables de tipo APK, XAPK, IPA & APPX.

  • ADB (Android Debug Bridge): una herramienta de comandos que permite comunicarte con el dispositivo Android para realizar múltiples tareas.

  • Frida: un set de herramientas de instrumentación dinámica que permite visualizar y manipular procesos en ejecución, permitiéndonos inspeccionar el estado de los objetos, las variables y los hilos. Frida está disponible en múltiples plataformas como Windows, macOS, GNU/Linux, iOS, Android y QNX.

  • APKTool: una herramienta que permite decodificar paquetes APK, modificar el código fuente y volver a reconstruir los recursos decodificados de nuevo a formato APK.

  • JADX Gui: una herramienta en línea de comandos que cuenta con su versión con interfaz gráfica. Permite, al igual que apktool, decompilar aplicaciones APK, modificar, compilar.

  • Objection: un conjunto de herramientas de exploración móvil en tiempo de ejecución, impulsado por Frida, creado para ayudarle a evaluar la seguridad de aplicaciones móviles, sin necesidad de jailbreak o root.

  • Burp Suite: funciona como un servidor proxy web entre el un cliente (navegador/aplicación móvil) y el servidor de destino. Permite interceptar, inspeccionar y modificar el tráfico que pasa en ambas direcciones. Para la configuración de Burp en el dispositivo Android os recomendamos acudir a la propia explicación de PortSwigger.

  • Drozer: un framework que permite la búsqueda automatizada de vulnerabiliades en aplicaciones.

  • Herramientas extras: En el framework de OWASP Mobile, más concretamente en la parte de Mobile Security Testing se encuentra disponible un listado de herramientas para Android que es bueno tener en cuenta.

… Continuamos en el blog de flu, ¡¡no os lo perdais!!