Seguridad

Introducción al pentesting de aplicaciones móviles sin morir en el intento

Pentest para moviles

Antes de comenzar a hablar de pentesting móvil debemos sentar las bases y diferenciar entre lo que es un análisis estático de la aplicación y un análisis dinámico. Pero no sin antes hablar de la estructura de un APK.

El proceso de desensamblar un APK se denomina descompresión y es por medio de este proceso a través del cual logramos acceder a las entrañas del nuestro binario:

Para ello, bastaría con:

unzip APP.apk -d output-unzip

apktool d APP.apk -o output-apktool


A la hora de decompilar el código fuente, tenemos dos formas, por un lado podemos generar el .smali que es el bytecode “legible” para humanos (apktool), o generar el .java interpretrado, no es el código fuente original, pero nos ayuda a entender la lógica de la aplicación de forma más sencilla (jadx).

Una vez tenemos el código fuente con nosotros pasaremos a hablar de los dos tipos de análisis que son necesarios tener en cuenta a la hora de realizar un pentesting de móvil. 

Análisis estático vs Dinámico


En análisis estático se analiza la aplicación a nivel de código y sin la interacción con la aplicación, y el análisis dinámico se revisa en tiempo de ejecución, interactuando con las funcionalidades.

Análisis estático

Con la herramienta Jadx trataremos de buscar información sensible:

  • Palabras claves o patrones vulnerables de código. 
  • Credenciales / api keys. 
  • Urls / endpoints.
  • Identificación de funciones importantes: autenticación, cambios de estado, PII.
  • Identificación de función de debug. Presencia de comentarios en el código.
  • Identificación de funciones peligrosas: uso de almacenamiento externo, ejecución de código. Sanitización.
  • Secretos hardcodeados.

Automático

Todo el análisis anterior se puede automatizar con la siguiente herramienta (MobSF):


A la hora de hablar de pentesting móvil existen una serie de componente interesantes (identificados por Mobsf en la imagen anterior), que os recomendamos que dediques tiempo a entender (actividades, proveedores, receptores y servicios exportables). En el próximo artículo os hablaremos sobre las actividades exportables.

Xuquiang Liu Xu, Pentester Jr. at Zerolynx y Alejandro Auñón, Offensive Security Analyst at Zerolynx.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.