Artículo · Pentesting a Aplicaciones Móviles

Bypass a SSL Pinning en Android

Cristian Palma PCristian Palma P 3 min de lectura

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.

¿Quieres aprender estas técnicas en profundidad?

Continúa tu ruta con Hacking Android.

Cristian Palma P

Escrito por

Cristian Palma P

Ingeniero civil informatico, con aptitudes por la seguridad informatica.

Sigue leyendo

Inyectando código en archivos PE (2)
Pentesting a Aplicaciones Móviles

Inyectando código en archivos PE (2)

Cannibal .

En la primera parte de esta serie de artículos sobre “inyección de código malicioso en archivos PE” vimos los pasos iniciales y con un resultado exitoso de acceso remoto a un equipo víctima a través de un “Reverse Shell”. En esta segunda parte seguiremos avanzando sobre este tema clarificando mejor algunos de los pasos realizados en la primera parte a modo de resumen y también extenderemos el tema para poder llegar a obtener el mismo resultado que en la parte 1, pero esta vez con una aplicación que se ejecuta y muestra un comportamiento errado en pantalla y ver cómo solucionarlo.

Introducción al ransomware en dispositivos móviles
Pentesting a Aplicaciones Móviles

Introducción al ransomware en dispositivos móviles

Omar Jacobo Muñoz Veliz

El ransomware es una de las mayores amenazas que se han extendido en los últimos años y sus consecuencias dejan grandes pérdidas de información y dinero. En este artículo analizaremos una muestra de malware que podría afectar a un 99,2% de los dispositivos móviles que utilizan el sistema operativo Android y que es capaz de cifrar nuestro dispositivo y extorsionarnos para un rescate a cambio de recuperar la información. A lo largo de este artículo, analizaremos cómo evitar las diferentes técnicas que usa el malware y cómo podemos mitigarlas.

Reversing a un apk en android
Pentesting a Aplicaciones Móviles

Reversing a un apk en android

Rafael PeruCrackers

Realizar reversing en una aplicación android es util para las auditorias y para encontrar alguna vulnerabilidad en el código.