Artículo · Pentesting a Aplicaciones Móviles

Reversing a un apk en android

Rafael PeruCrackersRafael PeruCrackers 5 min de lectura

INTRODUCCIÓN

 

Realizar reversing en una aplicación android es útil para las auditorías 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.  

 

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

 

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

 

Figura 8

 

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.

 

Codigo SMALI que se obtuvo


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

 

 

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

 

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

 

Descompilación de código

 

Se compiló el código SMALI correctamente.

 

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

 

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.

 

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:

 

Instalación de la aplicación

 

Se instala correctamente.

 

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. ☺

 

 

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 los lectores que se apasionan por la seguridad, Enjoy Hacking :p … Gracias Backtrack Academy por dejarme aportar un pizca de conocimiento.

¿Quieres aprender estas técnicas en profundidad?

Continúa tu ruta con Hacking Android.

Rafael PeruCrackers

Escrito por

Rafael PeruCrackers

Estudiante de la ingenieria Inversa usando las herramientas de Ollydbg y el actual IDA PRO, actualmente me encuentro investigando sobre Creacion de Exploit, con animo de ayudar a las personas que les interesa el mundo del reversing, :)

Sigue leyendo

Inyectando código en archivos PE (2)
Pentesting a Aplicaciones Móviles

Inyectando código en archivos PE (2)

Cannibal .

En la primera parte de esta serie de artículos sobre “inyección de código malicioso en archivos PE” vimos los pasos iniciales y con un resultado exitoso de acceso remoto a un equipo víctima a través de un “Reverse Shell”. En esta segunda parte seguiremos avanzando sobre este tema clarificando mejor algunos de los pasos realizados en la primera parte a modo de resumen y también extenderemos el tema para poder llegar a obtener el mismo resultado que en la parte 1, pero esta vez con una aplicación que se ejecuta y muestra un comportamiento errado en pantalla y ver cómo solucionarlo.

Introducción al ransomware en dispositivos móviles
Pentesting a Aplicaciones Móviles

Introducción al ransomware en dispositivos móviles

Omar Jacobo Muñoz Veliz

El ransomware es una de las mayores amenazas que se han extendido en los últimos años y sus consecuencias dejan grandes pérdidas de información y dinero. En este artículo analizaremos una muestra de malware que podría afectar a un 99,2% de los dispositivos móviles que utilizan el sistema operativo Android y que es capaz de cifrar nuestro dispositivo y extorsionarnos para un rescate a cambio de recuperar la información. A lo largo de este artículo, analizaremos cómo evitar las diferentes técnicas que usa el malware y cómo podemos mitigarlas.

Infectando dispositivos móviles con Evil-Droid Framework
Pentesting a Aplicaciones Móviles

Infectando dispositivos móviles con Evil-Droid Framework

Misael Banales

Aprende a infectar un dispotivo móvil con Evil-Droid que es un framework que crea, genera e inserta la carga útil de apk para penetrar en las plataformas android. Infecta y crea una conexión reversa en los dispositivos móviles en segundos.