Shutterstock 1352239238

Bypass a SSL Pinning en Android


Logo uri spioni mh 1
Cristian Palma P

Introducción

 

Http Public Key Pinning HPKP es una función de seguridad que le dice al cliente web que asocie su Public key específica con un determinado servidor web para disminuir el  riesgo de ataques MITM con certificados falsificados.

 

Esta es una nueva practica que están comenzando a incorporar los desarrolladores dentro de sus proyectos, dentro de las aplicaciones más utilizadas se destaca el http pinning sobre las Apps móviles. De esta manera se evita posibles usuarios con malas intenciones suplanten los certificados y que se le permita observar la trama de las peticiones y modificar los parámetros mediante herramientas como Burp Suite.

 

Esta funciona de la siguiente manera:

 

  1. Tras la primera visita a un sitio web habilitado para HTTPS, el cliente recibe un encabezado HTTP que contiene información sobre la clave pública del certificado del servidor web.
  2. En visitas posteriores, el cliente espera que la misma clave pública esté presente en la cadena de certificados.
  3. Si la clave pública previamente conocida no está presente, entonces el cliente debe mostrar una advertencia o enviar un informe de una falta de coincidencia de clave.

 

 

Funcionamiento del SSL Pinning

 

 

 

Para garantizar la autenticidad de la clave pública de un servidor utilizada en las sesiones de TLS, esta clave pública se envuelve en un certificado X.509 que generalmente está firmado por una autoridad certificadora ( CA ). Los clientes web, como los navegadores, confían en muchas de estas CA, que pueden crear certificados para nombres de dominio arbitrarios. Si un atacante puede comprometer una única CA, pueden realizar ataques MITM en varias conexiones TLS. HPKP puede eludir esta amenaza para el protocolo HTTPS al decirle al cliente qué clave pública pertenece a un determinado servidor web.

 

El siguiente apartado se presentará unas herramientas para realizar el bypass del http pinning en dispositivos móviles, de manera que sirva de apoyo para casos de auditoria mobile.

 

Herramientas que se necesitan:

 

  1. Dispositivo móvil con Android, permisos de super usuario y tener instalado Xposed Framework
  2. Para este ejemplo se utilizara la APK de Uber, debido a que esta app dispone de este método de seguridad.

 

Primero que todo veremos en la siguiente imagen un ejemplo sobre el estado actual de la app cuando intentamos interceptar el tráfico de la app suplantando el CA con el de Burp Suite.

 

 

Trafico de red de la aplicación Uber antes de hacer el bypass
 

 

Como se puede observar la app nos genera un error indicándonos que posiblemente tenemos problemas con la conexión a Internet.

 

Para comenzar, Instalaremos Xposed Framework en el dispositivo.

 
C:\Users\Crisxyz\Downloads\unpinning\xposed_ok.jpg

Instalación de Xposed Framework

 

 

Posteriormente buscaremos en la pestaña de descargas el módulo llamado:

 

“SSL Unpinning”

 

Procederemos a descargar e instalar.

 

 

C:\Users\Crisxyz\Downloads\unpinning\ssl_un.jpg
Descarga del módulo de Xposed
 
C:\Users\Crisxyz\Downloads\unpinning\ssl_un_download.jpg

Módulo de Xposed
Teniendo instalado el módulo, se procede a activar desde la pestaña de módulos y para una instalación más segura, reiniciamos el dispositivo para asegurarnos.
 
C:\Users\Crisxyz\Downloads\unpinning\ssl_check.jpg
Módulos que tenemos en Xposed

Activado el módulo ingresamos e indicaremos cual será nuestra app a realizar el bypass con SSL Unpinning, para este ejemplo seguiremos con la APK de Uber.
 
Aplicación de Uber en el dispositivo

Teniendo activado el módulo sobre de Xposed, ahora podremos observar y modificar la trama de las peticiones entre la Aplicación y el servidor.
 
C:\Users\Crisxyz\AppData\Local\Temp\SNAGHTML470edb.PNG
Trafico de red de la aplicación Uber obtenido del ByPass

 

 

Como podemos observar no es procedimiento complejo de realizar y un gran apoyo para las pruebas de auditoría móvil.



Artículos que te pueden interesar


La inyección de código es la explotación de un error de la computadora causado por el procesamiento de datos no válidos. El atacante usa la inye... Omar Jacobo Muñoz Veliz


Continuar Leyendo

Recientemente he tenido algo de tiempo para dedicarme a escribir un poco sobre algunas investigaciones realizadas, principalmente al ser jugador... José Moreno


Continuar Leyendo

Es una herramienta de escaneo de vulnerabilidades creado por cloudflare basada en nmap. La principal diferencia que existe la observamos en la i... José Moreno


Continuar Leyendo