domingo, 24 de diciembre de 2017

Debugging a una App de Android con IDA PRO - Parte 1

Hace tiempo que tengo guardado este artículo para publicarlo en un momento especial, hoy lo hago como punto de partida de un grupo de amigos que les gusta jugar a los CTFs en sus ratos libres. El artículo trata de como depurar una aplicación Android en tiempo de ejecución, una prueba de concepto que espero os quite el miedo a iniciaros en el exploiting y el reversing.

¿Qué es IDA Pro?

Ida es una herramienta completa de reversing que sirve tanto para 32bits como 64bits. Y además no sólo hace funciones de debugger sino que permite desensamblar código fuente de manera estática. Tenemos también posibilidad de trabajar nativamente con Windows, Linux o Mac OS X. Otra de las funciones que nos permite es trabajar remotamente con varios sistemas operativos, nosotros concretamente vamos a usar el sistema ARM Android.


Preparando el entorno

Antes de seguir debemos tener en cuenta que debemos cumplir una serie de requisitos para poder llevar acabo todo el proceso de manera adecuada. Lo primero que necesitamos tener es una máquina virtual de Android, por aquello de ser usuario root o bien un terminal rooteado. En nuestro caso vamos a utilizar un terminal rooteado al cual accederemos mediante Android Debug Bridge (adb). Muy importante tener el acceso vía ADB para aplicaciones.


Una vez que tenemos estas características activadas vemos los terminales con adb devices y acto seguido ejecutamos el adb en modo root. Ahora ya podemos lanzar comandos como root en el terminal, lo que vamos a necesitar para llevarnos el script que nos va a servir de comunicación entre IDA Pro y nuestro terminal.


Ahora vamos a situarnos en la carpeta de IDA Pro donde tenemos el android_server (C:\Program Files (x86)\IDA 6.8\dbgsrv) para copiarlo en el terminal, el cual nos va a servir de comunicación entre IDA Pro y las aplicaciones.

Vamos a guardar nuestro script de IDA en la carpeta data de Android para lo cual debemos de ejecutar el comando adb remount de tal manera que al ser root se vuelva a montar en modo read-write y podamos escribir en ese directorio.


El siguiente paso será darle permisos al script y ponerlo en marcha.


Como vemos en la imagen tenemos a la escucha en el puerto 23946 del terminal un servicio remoto para poder llevar a cabo el debugging de aplicaciones.


Ahora tenemos dos opciones: hacer la petición directamente a la IP del terminal móvil para debuguear las aplicaciones mediante el puerto a la escucha...


O la otra opción es hacer que todas las peticiones que se manden vía adb se reenvíen al terminal, para ello ejecutamos en otra ventana una redirección con adb forward tcp:23946.


Hasta aquí ya tenemos el terminal Android preparado para debuguear Apps, en la próxima entrega prepararemos el binario y configuraremos IDA Pro para todo el proceso de depuración.

Un handshake 

"La fuerza del lobo es la manada"

0 comentarios:

Publicar un comentario