DEV Community

Lucas Ginard
Lucas Ginard

Posted on • Edited on

Como hacer bypass al SSL Pinning en Android con Frida y Objection en Windows 10🔓

Image description

📝Pasos preliminares:

  • Contar con un dispositivo con root o emulador con root
  • Tener instalado Python y configurado
  • Dispositivo en modo desarrollador y usb de depuración (si es físico)
  • Burp o otro similar para utilizar de proxy
  • Los siguientes comandos son usando la terminal(CMD) tener en cuenta para no tener ningún inconveniente

1️⃣ Paso instalar Frida-tools con PIP (Python) y objection:

pip install frida-tools objection
Enter fullscreen mode Exit fullscreen mode

Si utilizas Python 3 puedes utilizar pip3

2️⃣ Paso identificar que arquitectura es nuestro dispositivo:

Debemos saber que arquitectura si usamos dispositivos fisicos es ARM en caso de emulador es x86 pero para poder asegurarnos podemos hacerlo con adb en la terminal debemos hacerlo desde el adb.exe en caso de que utilices android studio puedes ubicarlo en :
C:\Users\usuario\AppData\Local\Android\Sdk\platform-tools

o buscas en android studio la ubicación de tu SDK en Settings:
Imag

Puedes utilizar otro emulador como:

Para ubicar el ADB en genymotion usualmente esta en:
archivos de programas -> Genymobile -> Genymotion -> tools

Si esta el adb.exe estamos en la ubicación correcta

Una vez que localizamos nuestro adb.exe debemos abrir la terminal y ir a la ubicación del mismo.

Ejecutamos el siguiente comando para saber que arquitectura corresponde nuestro dispositivo:

adb shell getprop ro.product.cpu.abilist
Enter fullscreen mode Exit fullscreen mode

En mi caso utilizo un dispositivo fisco por lo mismo imprime:
Imag

luego de identificar nuestra arquitectura debemos descargar Frida server:
Frida GitHub

en mi caso es el frida-server-16.2.1-android-arm64.xz si utilizas un emulador debes utilizar el frida-server-16.2.1-android-x86.xz

cuando redacto esta documentación la ultima versión es 16.2.1

3️⃣ Paso levantar el Frida server

Posterior a descargar el server debemos llevarlo a la carpeta en la que esta nuestro adb.exe para poder pasarlo al dispositivo/emulador.

luego de ponerlo en la carpeta copiamos el nombre y abrimos en la terminal la ubicación de la carpeta para pasarle el server a nuestro dispositivo/emulador debemos ejecutar:

adb push frida-server-16.2.1-android-arm64 "/data/local/tmp"
Enter fullscreen mode Exit fullscreen mode

Si todo salió bien nos saldrá: 1 file pushed
ImagePushFrida

Debemos darle permisos de ejecución con el siguiente comando:

adb shell "chmod 755 /data/local/tmp/frida-server-16.2.1-android-arm64"
Enter fullscreen mode Exit fullscreen mode

Debemos levantar el server ahora en el dispositivo.

Vamos en donde esta nuestro adb.exe y abrimos una terminal para ejecutarlo:

Primero nos conectamos al dispositivo con:

adb shell
Enter fullscreen mode Exit fullscreen mode

Nos saldrá el nombre del dispositivo en la terminal:
Image description

Debemos activar el superUsuario con el comando: su
ImagSuperUsuario

Se cambia el $ por el # esto quiere decir que estamos como superUsuario

posterior a ello debemos ejecutar el Frida-server debe estar en la misma ubicación donde pusheamos del equipo utilizando el siguiente comando:

/data/local/tmp/frida-server-16.2.1-android-arm64 &
Enter fullscreen mode Exit fullscreen mode

Si al ejecutar no nos notifica nada es que levanto el server bien.

Posterior debemos abrir otra consola y volver a la misma ubicación del adb.exe para identificar los paquetes-aplicaciones o los PIDsque corre en nuestro Frida-server con el siguiente **comando **y buscar el que nos interesa:

frida-ps -U
Enter fullscreen mode Exit fullscreen mode

Debemos tener abierto nuestra app que queremos hacer el bypass

Nos lista todos las apps que están corriendo nuestro dispositivo/emulador debemos identificar el que queremos utilizar.

Tendremos 2 opciones podemos identificarlo con el PID que nos saldra o debemos obtener el identificador de la app.

En el caso de hacer el bypass con el PID **puedes anotarlo y ir al **paso 4

En el caso que solo que quieras hacerlo por su identificador/paquete te muestra el nombre de la app debes utilizar este comando para identificar su paquete:

adb shell pm list packages -3 | findstr "nombreApp"
Enter fullscreen mode Exit fullscreen mode

4️⃣Paso desactivar el SSL Pinning

Ir a nuestra raíz de la pc y envase a la elección que hiciste debes ejecutar uno de los siguientes comandos:

Opciones:
Con el paquete-identificador utilizamos el siguiente comando:

objection --gadget com.ejemplo.paquete explore
Enter fullscreen mode Exit fullscreen mode

Con el PID utilizamos el siguiente Comando:

objection -g numeroPID explore
Enter fullscreen mode Exit fullscreen mode

Image description

Nos saldrá el dispositivo y la app con su identificador:

Image description

Ahora debemos ejecutar el bypass con el comando:

android sslpinning disable
Enter fullscreen mode Exit fullscreen mode

Una vez que lo ejecutamos estará listo el bypass 🎉

Image description

Podremos registrar los endpoints con nuestro proxy que estuviéramos utilizando.

Si te sirvió y interesa otros temas relacionado a Frida y protección del mismo puedes seguir el repo:

https://github.com/LucasGinard/Manual-Pentesting-Android

En caso de inconvenientes puedes abrir un issue en el mismo repo para poder ayudarte.


🎁Extra :

Si necesitas matar Frida-server del dispositivo:

Debemos identificar el PID que utiliza del dispositivo debemos ubicarnos en la raíz de nuestro equipo y ejecutar donde estaba el adb.exe:

adb shell ps | findstr frida-server
Enter fullscreen mode Exit fullscreen mode

Nos saldrá el PID a identificar es el primer conjunto de números en este caso es 361 debemos tener en otra terminal el adb corriendo para eliminarlo:

root **361 **1 2241216 50480 0 0 S

Luego debemos ir a la ubicación del adb.exe y ejecutar nuestro dispositivo como superUsuario **y matar el server con **killer NumeroPID:

kill -9 361 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)