Skip to content

seifreed/android-unpinner

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android Unpinner - Guía Paso a Paso

Esta guía describe cómo utilizar la herramienta Android Unpinner para hacer bypass del certificate pinning en aplicaciones Android, lo que permite interceptar y analizar tráfico HTTPS.

Requisitos Previos

  • Python 3.x instalado
  • Un dispositivo Android o emulador conectado
  • USB Debugging activado en el dispositivo
  • La APK que deseas analizar

Instalación

  1. Clona el repositorio:
$ git clone https://github.com/mitmproxy/android-unpinner.git
$ cd android-unpinner
  1. Instala el paquete en modo desarrollo:
$ pip install -e .

Pasos para hacer Bypass del Certificate Pinning

1. Verifica la conexión con el dispositivo

$ android-unpinner device-info

Este comando mostrará información sobre el dispositivo conectado, incluyendo:

  • Modelo
  • Versión de Android y API level
  • Arquitectura
  • Estado del USB Debugging

2. Analiza la APK para detectar métodos de certificate pinning

$ android-unpinner analyze-apk "ruta/a/tu/aplicacion.apk"

Este comando analizará la APK e identificará los métodos de certificate pinning utilizados, como:

  • OkHttp
  • TrustManager
  • WebView
  • Retrofit
  • Conscrypt
  • JSSE

También recomendará el script de unpinning más adecuado para la aplicación.

3. Instala la APK modificada

Hay dos opciones:

a) Usando el comando completo que hace todo en un paso:

$ android-unpinner all --script universal-unpinner.js "ruta/a/tu/aplicacion.apk"

b) O instalando manualmente la APK modificada si el comando anterior falla:

$ adb install "ruta/a/tu/aplicacion.unpinned.apk"

4. Inicia la aplicación con el script de unpinning

$ android-unpinner start-app --script universal-unpinner.js com.nombre.paquete

Reemplaza com.nombre.paquete con el nombre del paquete de tu aplicación.

5. Configura un proxy para interceptar el tráfico

$ adb shell settings put global http_proxy [TU_IP]:8080

Reemplaza [TU_IP] con la dirección IP de la máquina donde está ejecutándose tu proxy (Burp Suite, OWASP ZAP, mitmproxy, etc.).

6. Verifica que la aplicación esté en ejecución

$ adb shell ps | grep [nombre_paquete]

7. Captura y analiza el tráfico

Ahora puedes usar tu herramienta de proxy (Burp Suite, OWASP ZAP, etc.) para capturar y analizar todo el tráfico HTTPS de la aplicación, ya que el certificate pinning ha sido desactivado.

Troubleshooting

Si frida-server no es accesible

Si encuentras el error "frida-server: inaccessible or not found", sigue estos pasos:

  1. Sube el archivo frida-server al dispositivo:
$ adb push frida-server-[version]-android-[arch] /data/local/tmp/frida-server
  1. Asigna permisos de ejecución:
$ adb shell chmod 755 /data/local/tmp/frida-server
  1. Ejecuta frida-server:
$ adb shell "/data/local/tmp/frida-server &"

Si la instalación de la APK falla

Prueba estos comandos alternativos:

$ adb install "aplicacion.unpinned.apk"

O si necesitas reemplazar una instalación existente:

$ adb install -r "aplicacion.unpinned.apk"

Funciones Adicionales

  • android-unpinner list-packages: Listar todos los paquetes instalados
  • android-unpinner get-apks [package_name] [output_dir]: Descargar APKs del dispositivo
  • android-unpinner list-scripts: Listar scripts de unpinning disponibles

Créditos

Esta guía fue creada por el equipo de hacking como referencia para trabajar con Android Unpinner.

About

Remove Certificate Pinning from APKs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 60.8%
  • Python 39.2%