09 febrero 2020

Evadir la detección de root y algo de SSLPinning


En algunas ocasiones cuando nos toca auditar alguna aplicación móvil, nos topamos con algunos mecanismos de seguridad, que nos dificultan un poco la revisión.

En esta ocasión, vamos a evadir la detección de root y ejecutaremos los mismo comandos para evadir SSL Pinning (Esta apk no hace request, por lo que no habrá evidencia del Burp), para este caso vamos a usar una apk del proyecto de OWASP en Github, esta se llama UnCrackable-Level1

Herramientas a usar:
Empecemos :)



Primero descargamos el Genymotion, lo instalamos y después lo ejecutamos





Ahora que la máquina virtual esta ejecutándose, la buscamos en la red con frida-ls-devices


Ahora nos conectamos a la máquina virtual del Genymotion, usando las misma tool que este trae y usamos el comando: adb connect 192.168.56.101:5555




Ahora que esta listo, vemos que arquitectura tiene el móvil usando el comando: adb shell getprop ro.product.cpu.abi


Listo, ahora vamos a la página de github del proyecto y descargamos la versión de servidor de Frida para esa arquitectura


Después de esto instalamos el apk en el dispositivo con el comando: adb install nombre.apk


Después de esto, vemos que en la VM esta instalado el SuperUser


Ahora ejecutamos la aplicación


Vemos que nos da un error y no permite que abra correctamente la aplicación, ya que esta hace una verificación y ve si el móvil esta rooteando

Entonces ahora le damos permiso de ejecución y subimos el archivo al dispositivo móvil

chmod +x frida-server-12.8.10-android-x86



También aprovechamos de ejecutarlo y usamos los comando:

adb push /home/yo/tutoriales/frida-server-12.8.10-android-x86 /data/local/tmp/

adb shell 'su -c /data/local/tmp/frida-server-12.8.10-android-x86'


Después que esto esta listo, vemos los procesos que se están ejecutando con el siguiente comandos: frida-ps -U

Cabe mencionar que esta es una de las modalidades de Frida, la cual inyecta el proceso en el momento que se esta ejecutando (la aplicación tiene que estar abierta para que se detecte el proceso)

Pueden ver las otras modalidades aquí en su sitio


Ahora que sabemos en nombre del proceso, ejecutamos el Objection con el siguiente comando: objection -g "owasp.mstg.uncrackable1" explore

Después que este se ejecuta, ejecutamos el comando android root disable para que este intercepte la solicitudes de la aplicación cuando intente validar si el móvil esta rooteado

Aquí también ejecutamos el comando android sslpinning disable, el cual también evitaría la detección de este si el dispositivo realizara algún request

Ahora quedando la aplicación en segundo plano la volvemos a abrir y vemos como esta se ejecuta sin problema alguno y la respuesta que esta recibe cuando quiere hacer la validación de root

Nota: al usar el comando android sslpinning disable y descargarse el certificado de Burp el cual se cambia de cacert.der a cacert.cer, instalarlo, configurar la red y solo hay que empezar a interceptar con Burp


Y listo la aplicación abre normalmente


Saludos, espero que esto les sirva y recuerden que esta modalidad sirva para evadir la detección de root y evadir el SSL Pinning


Referencias:

https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level_01/UnCrackable-Level1.apk
https://www.genymotion.com/fun-zone/
https://github.com/frida/frida/releases
https://github.com/sensepost/objection 
https://developer.android.com/studio/command-line/adb

No hay comentarios.:

Publicar un comentario

Las Publicaciones más Vistas

Comandos Drozer Pentest Móvil