Post161 nn

INTRODUCCIÓN

 

Realizar reversing en una aplicación android es util para las auditorias y para encontrar alguna vulnerabilidad en el código.

 

Bueno lo prometido es deuda y como no me gusta deber escribo un artículo pequeño sobre Reversing en aplicaciones Android, las herramientas son libre (Gratis) y se publicará con sus respectivos enlaces.

 

 

Tools

Enlace

1

apktool

https://ibotpeaches.github.io/Apktool/install/

https://bitbucket.org/iBotPeaches/apktool/downloads/

2

Jadx

https://github.com/skylot/jadx/releases

3

Sign

https://github.com/appium/sign

4

NotePad++

https://notepad-plus-plus.org/download/v7.5.8.html

5

SublimeText

https://www.sublimetext.com/

6

Android Studio

https://developer.android.com/studio/

7

Crackmes

https://mega.nz/#!gF4EgayR!sN3O44WkWaz0RssrnEGQDzrh8_xvShdEId5UzAFDZqg

8

Nox_Player

https://es.bignox.com/

 

CONFIGURANDO EL AMBIENTE

 

Primero debemos estudiar la aplicación que vamos analizar para ellos instalaremos la aplicación en un Emulador de Android, en este punto vamos analizar dos escenarios.

 

  • Si tenemos equipos con 1 Tera de disco duro, Core i5 a más y RAM de 8 Gigas, podemos instalar el Emulador en mi caso utilizaré Nox_Player, también viene incluido en Android Studio.

  • Lo que no cumplan con este requisito y aun así desea realizar los pasos lo pueden hacer mediante su teléfono móvil con el sistema Android, para ello se debe habilitar el entorno de desarrollador, para ello vamos a la configuración del teléfono luego acerca del teléfono y pulsar 7 veces para luego finalmente se activa el depurador USB.

 

 

Después de tener preparado el Emulador Android o Equipo móvil, procederemos a instalar la aplicación con ADB (Android Debugging Bridge), si tienes instalado Android Studio lo tiene agregado por defecto, sin embargo si instalamos nox_player también presenta su propio ADB denominado  nox_adb que presenta sus comandos iguales al ADB, debemos ir la ruta de instalación de nox_player y mediante command line de Windows escribir como se muestra Ver Fig.

 

1, donde se muestra los dispositivos conectados, como se observa el dispositivo NoxPlayer.

 

Figura 1

 

Vamos a proceder a instalar la aplicación con la sintaxis: nox_adb install [Ruta-de-la-aplicación-apk] Ver Fig. 2

 

Figura 2


Se muestra que se instala correctamente la aplicación.

Validamos la instalación en el Emulador Nox_Player, también realizamos la prueba de Login para obtener información de la repuesta de la aplicación al no tener las credenciales correctas.  Ver Fig. 3

 

Figura 3


Se instala con éxito la aplicación y realizamos la prueba.

 

Ahora vamos a descompilar el código en este caso se divide en dos puntos uno para obtener el código SMALI donde se podrá realizar modificaciones al código para luego compilar con las nuevas modificaciones y luego firmar la aplicaciones para que se pueda instalar correctamente.

  1. Descompilar la aplicación con la herramienta apktool y así obtener el código SMALI ver Fig. 4

La sintaxis del comando para descompilar es:


java –jar apktool_2.3.3.jar d [ruta-victima.apk] –o [ruta-de-nombre-directorio-a-crear]

 

Figura 4

 

Se descompila la aplicación exitosamente.

 

En mi caso escribí un script .batch para automatizar algunos procesos y ser más ordenando ☺ jeje Ver Fig. 5

 

Figura 5

 

Se observa que se genera un directorio app1smali.  

 

  1. Se utiliza la herramienta Jadx-gui, para poder entender el código en Java, en este caso dicha herramienta te permite ejecutar en forma gráfica, como también a nivel de comando para poder obtener dicho código Java, Ver Fig. 6

  2.  

Figura 6


Jadx-gui a nivel gráfico, encontramos la condicional si la clave es correcta o no, en el cuadro amarillo.

 

Se puede obtener a nivel de comando el código java de la aplicación para poder realizar el análisis en Android Studio debido a que tiene más opciones de búsqueda o facilidad de uso, la sintaxis es: Ver Fig. 7


Jadx –d [nombre-del-directorio] [ruta-victima-apk]

 

Figura 7


Se ejecuta mi script .batch, lo cual sigue la sintaxis para jadx.

 

Se visualiza que se puede realizar el análisis en Android Studio si tenemos de una aplicación más complejo. Ver Fig. 8

 

  1. Figura 8

  2.  
  3. Vamos a modificar el código SMALI que se obtuvo al principio, ya que sabemos en donde se encuentra la condicional en la clase MainActivity$1.smali donde se decide si la clave es correcta o no, lo cual vamos a modificar el salto if-eqz que se encuentra en la línea 124, por if-nez que saltara al cuadro verde, guardamos y luego lo compilamos.

  4.  

Codigo SMALI que se obtuvo


Se observa cuadro amarillo es lo que no queremos ver y el verde que si deseamos que aparezca.

 

 

  1. Al tener el archivo modificado vamos a compilar el código en formato .apk para ello utilizaremos la herramienta apktool la sintaxis es:

  2.  
Java –jar apktool_2.3.3.jar b [nombre-del-directorio-apk-smali] –o [nombre-nuevo-apk]

 

Descompilación de codigo

 

Se compilo el código SMALI correctamente.

 

  1. Si intentamos instalar el APK, nos mostrara un error debido a que falta firmar la aplicación, para ello utilizaremos la herramienta signapk con la sintaxis:

  2.  
Java –jar SignApk.jar testkey.x509.pem testkey.pk8 [apk-modificado-sin-firma] [nombre-nuevo-apk]

 

Firma del APK


Se ejecuta la línea de comandos para firmar la aplicación con éxito.

 

  1. Desinstalamos la aplicación que se había instalado al principio para instalar la nueva aplicación modificada y firmada, instalamos la aplicación con nox_adb por ejemplo:

  2.  

Instalación de la aplicación

 

Se instala correctamente.

 

  1. Finalmente validamos que se ejecute la aplicación correctamente y agregamos la credenciales que desee, ya que aceptara cualquier valor en mi caso el user es BacktrackAcademy-Lior y password es 1234, mostrando la carita feliz. ☺

  2.  

 

Reversing Aplicación Android

 

Estos son los pasos para realizar reversing a una aplicación Android, un poco largo pero con el tiempo obviaremos algunos pasos para poder ir a retos más divertidos, si desea le adjunto un reto sencillo para que puedan practicar, depende de los comentarios jaja, los saludos para El Maestro Ricardo Narvaja de CrackSLatinoS, a Davicorm, Softdat, nextco, Sr. Apuromafo y Abelito que pertenecen al Team PeruCrackers ☺ y finalmente saludos a las lectores que se apasionan por la seguridad, Enjoy Hacking :p … Gracias BacktrackAcademy por dejarme aportar un pisca de conocimiento.


Artículos que te pueden interesar