Análisis de una aplicación Android (Parte II) - Análisis dinámico - BoomerNiX

jueves, 10 de mayo de 2018

Análisis de una aplicación Android (Parte II) - Análisis dinámico

Retomamos la aplicación Diva, que revisamos en la primera parte del tutorial, donde vimos cómo analizar de manera estática una aplicación Android, y aquí llegamos a la parte II para analizar la aplicación de manera dinámica, así que sin más vueltas empezamos.

Análisis dinámico de App Android

Necesitaremos instalar la App, para ello usaremos adb, si ya tienes tu Android SDK, ya tienes la herramienta, en Windows la ruta que tenemos aquí es la siguiente:

C:\Users\Josue\AppData\Local\Android\sdk\platform-tools

Si la añades a tu Path, podrás usarla solo con escribir adb en la consola, mucho más cómodo que escribir toda la ruta cada vez, para ello dirígete al siguiente punto:

Panel de control > Sistema y seguridad > Sistema > Configuración avanzada del sistema

Hay damos en el botón Variables de entorno, se nos abrirá la siguiente ventana:


Ahí, en la sección de Variables del sistema, tendremos que buscar la variable llamada Path, y dar en editar, donde añadiremos la ruta del platform-tools, aceptamos todo y ya está hecho.

Para instalar una aplicación, tiene que estar conectado el emulador (o dispositivo real), y ejecutar:

adb install <APP>

Teniendo en cuenta que aquí se considera que solo tenemos un dispositivo conectado, si no tendríamos que elegir, por ejemplo, añadiendo la opción -d indicamos que el comando se dirija a dispositivos conectados por USB, y -e para emulador, existen otras que se pueden ver en la ayuda de la herramienta.


Una vez instalada la aplicación, se procede a abrirla en el emulador y se ve como sigue:



Ya podemos comenzar a probar la aplicación y llevar a cabo nuestra práctica.

Por ejemplo, empezando por algo sencillo, y sabiendo desde la parte I del tutorial, análisis estático, que su código era vulnerable por no validar lo que insertaba el usuario, nos movemos al punto 7, donde se pide el nombre de un usuario a buscar, si insertamos lo primero que se nos puede ocurrir (‘ or ‘1’=’1), que raro que se nos ocurra semejante cosa :O, si no viene en ningún ejemplo… XD.

Para esta aplicación no necesitamos más, vemos que no se valida bien la entrada del usuario, no tiene nada de novedad… SQL injection de lo más sencillo.



Ahora si entramos al punto 3 para almacenar datos (usuario y contraseña), veremos que tiene otra vulnerabilidad, y es que cualquiera puede leer estos datos en claro, basta con usar adb:

adb shell

Esto nos da acceso al emulador que tenemos corriendo (recuerda las opciones -d, -e). Una vez dentro nos movemos al directorio /data/data, que es donde se guardan los datos de las aplicaciones. Allí buscamos por datos que pertenezcan a diva.


Si miramos el archivo.xml que se ve en la imagen anterior, vemos lo siguiente, (aunque en la prueba se ha utilizado usuario root, que tiene todos los permisos, se podría ver con cualquier usuario):


CiberByte, que recuerdos, fue mi primer blog, y esta imagen se reutiliza de allí :).

También podemos descargarnos el archivo a través de pull y verlo en nuestro PC. Hasta aquí llega este post, aún puedes pasar más tiempo practicando con la aplicación, revisando el código y probando sus distintos fallos.

Ir al análisis estático

No hay comentarios:

Publicar un comentario