
Artículo · Pentesting a Aplicaciones Móviles
Bypass a SSL Pinning en Android
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:
- 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.
- En visitas posteriores, el cliente espera que la misma clave pública esté presente en la cadena de certificados.
- 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.
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:
- Dispositivo móvil con Android, permisos de super usuario y tener instalado Xposed Framework
- 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.
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.
Instalación de Xposed Framework
Posteriormente buscaremos en la pestaña de descargas el módulo llamado:
“SSL Unpinning”
Procederemos a descargar e instalar.
Módulo de Xposed
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.

Escrito por
Cristian Palma PIngeniero civil informatico, con aptitudes por la seguridad informatica.



