NOTA IMPORTANTE: El delito informático está severamente castigado por la ley. Esta página no promueve el delito informático, es divulgativa y muestra los mecanismos que utilizan los cibercriminales para poder identificar el ataque si has sido victima de uno de ellos. En el caso de que hayas sido victima de un ataque te recomendamos que busques recursos legales en la sección Cibercrime Law o en la página del Instituto Nacional de Ciberseguridad: https://www.incibe.es/

Blog

INGENIERÍA INVERSA en ANDROID | CAP 1

En este hilo, realizaré ingeniería inversa de un crackme en Android de

Resolveremos el crackme número 2, para instalarlo en nuestro emulador usamos el puente del dispositivo android

Lo subimos con adb push emulador ‘local’

Abrimos shell en el emulador con shell adb

Navega hasta el directorio donde hemos subido el APK

Instalamos con adb install nombre_paquete

El crackme presenta el siguiente panel de inicio de sesión donde solicita un correo electrónico y una contraseña (secreta):

Lo siguiente que haremos será ubicar la consola del sistema en el directorio donde instalamos la apk y escribir apktool d Nombre del paquete

Una vez descompilado el apk, ingresamos a la carpeta que se ha creado y posteriormente en el directorio pequeño

Una vez que estemos en el directorio pequeño, grep -R -i contraseña

Con este comando buscaremos en todos los directorios de forma recursiva la cadena de contraseña sin distinción entre mayúsculas y minúsculas (-i)

Lo que estamos buscando son cadenas de código rígido que contengan una contraseña para ver si podemos sacar el hilo desde allí.

Debemos llamar la atención sobre la siguiente línea
const-string v8, “Dejar código de depuración en su aplicación puede ser peligroso, y mucho menos hashes de contraseña sin sal”.

Para ver más concretamente a qué llega esta línea debemos navegar hasta la ruta indicada en morado.

Una vez dentro podemos ver el archivo en código pequeño.

Nota:

  • el pequeño código es el punto medio entre el código programado en Java y el código dalvik que es el que “entiende” la máquina virtual android al ejecutar la aplicación.

En la línea 191 encontramos la cadena que estábamos buscando, y un poco más abajo debería llamar la atención la siguiente línea también hardcode

const-string v8, “El secreto de WARN no coincide con b2c4782f0afc0d9ccf21af70ac6c5c7e”

Este es un mensaje de error de registro generado luego de comparar dos hash MD5, este hash que compara es la contraseña (secreta) que hemos ingresado, por lo que por pura lógica, si desciframos el hash tendremos la contraseña.

Ahora nos falta el correo electrónico de acceso, pero si en ese mismo archivo buscamos @ saltamos directamente a otra línea de hardcode con un correo electrónico.

Ya tenemos el correo electrónico y la contraseña (secreta), intenta iniciar sesión …

Hecho 🙂
Hasta la proxima vez

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Mira también
Cerrar
Botón volver arriba
Cerrar