Como hacer bypass al SSL Pinning en Android con Frida y Objection en Windows聽10馃敁

Lucas Ginard - Aug 31 - - Dev Community

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:

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:

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 361
Enter fullscreen mode Exit fullscreen mode
. .
Terabox Video Player