Hace algunos días tuve la necesidad de analizar algo de tráfico HTTP de uno de mis dispositivos móviles. En el siguiente post explicaré cómo podemos hacerlo usando el proxy de interceptación ZAP que nos provee el proyecto OWASP.

Los motivos por los cuáles necesitamos realizar éste procedimiento pueden ser muy variados, desde hacer una depuración de las peticiones HTTP realizadas por una aplicación que estemos desarrollando, hasta asombrarnos (¡asustarnos!) por la información privada que se están llevando las aplicaciones que tenemos instaladas en nuestro dispositivo o simplemente divertirnos alterando las peticiones HTTP generadas por algunas aplicaciones/juegos y mirar que resultados podemos obtener. Pero el uso final depende de cada uno de ustedes.

Lo que se necesita para lograr que el tráfico HTTP de nuestro dispositivo móvil pase a través de ZAP, sería en términos generales, lo siguiente:

  • Generar un certificado SSL desde ZAP que luego será instalado en el dispositivo móvil.
  • Permitir que ZAP acepte conexiones desde otro host conectado al mismo segmento de red para ser usado como proxy HTTP.
  • Indicar en las configuraciones de red del dispositivo móvil que use como proxy HTTP a ZAP.

Generación e instalación del certificado SSL

Debido a que la mayoría de aplicaciones usan conexiones HTTPS, debemos instalar nuestro propio certificado para no afectar el normal funcionamiento de éstas. Lo anterior se puede realizar de la siguiente manera: Herramientas → Opciones → Certificados SSL Dinámicos. Una vez tengamos listo el certificado procederemos a guardarlo con el nombre root.crt y pasarlo a nuestro dispositivo móvil.

La instalación del certificado la he realizado en un dispositivo Samsung Galaxy Tab 3 Lite. Se realiza en Ajustes → Seguridad → Instalar certificados desde SD. En la opción de Credenciales de confianza en la pestaña Usuario podremos ver nuestro certificado instalado, “OWASP Root CA” en éste caso. Al realizar la instalación de la forma anterior se nos pedirá por seguridad un PIN de protección de nuestra pantalla.

Configuración de OWASP ZAP como proxy HTTP(S)

El único cambio a la configuración por defecto que debemos hacerle a ZAP para permitir que nuestro dispositivo móvil pueda usarlo como proxy, es cambiar la opción: Herramientas → Opciones → Proxy local. En el campo Address ponemos la dirección IP (e.j. 192.168.1.10) asignada a la tarjeta de red que estemos usando para conectarnos al segmento de red al cual se encuentra conectado nuestro dispositivo móvil. Opcionalmente podemos cambiar el puerto por el cual ZAP escuchará las conexiones entrantes.

Por último debemos indicarle a Android que use un proxy HTTP en la conexión inalámbrica que usemos, vamos a: Ajustes → Wi-Fi y en las opciones de la red que estemos usando elegimos Mostrar opciones avanzadas → Ajustes de proxy → Manual. En los campos Nombre de host y puerto establecemos la configuración del paso anterior en ZAP.

De esta manera podremos depurar y analizar el tráfico HTTP proveniente de nuestro dispositivo móvil y divertirnos un buen rato.