Noticia Mitmproxy, una herramienta de código abierto para el análisis HTTPS

mitmproxy es un proxy HTTPS interactivo gratuito y de código abierto.


Si en algún momento has tenido la curiosidad de saber como interceptar el tráfico HTTP o conocer como las aplicaciones o servicios responden a los servidores, o modificar el tráfico para investigar cómo funciona algo, te interesará conocer Mitmproxy.

Mitmproxy es una herramienta diseñada para la depuración, pruebas y análisis de tráfico web. Se utiliza principalmente para interceptar, inspeccionar, modificar y reproducir tráfico de protocolos como HTTP/1, HTTP/2, HTTP/3, WebSockets, y otros protegidos por SSL/TLS.

Como tal, se orienta principalmente a la monitorización del tráfico en sistemas corporativos, facilitando la identificación de problemas, como el análisis de la actividad en redes de aplicaciones ocultas.

Para analizar el tráfico HTTPS, Mitmproxy se coloca en un nodo de tránsito, interceptando las solicitudes de los clientes y reenviándolas al servidor de destino. Durante la sesión, establece una conexión HTTPS legítima con el servidor, pero en el lado del cliente crea una conexión simulada utilizando un certificado SSL falso, generado dinámicamente. El tráfico recibido del cliente se redirige al servidor real, y las respuestas del servidor se transmiten de vuelta al cliente.

Mitmproxy puede ser configurardo como un proxy HTTP en el navegador, usarlo como proxy SOCKS5, o incluso como proxy inverso frente a un servidor HTTP. También permite reenviar el tráfico de manera transparente usando reglas de enrutamiento de paquetes o ajustes de filtrado.

Mitmproxy también incluye mitmweb, una interfaz gráfica que permite utilizar las funciones principales de mitmproxy en un entorno visual. El entorno ofrecido es similar a las herramientas de desarrollo de Chrome, pero con características adicionales como la intercepción de solicitudes y la reproducción de tráfico.

mitmweb


Mitmproxy no solo soporta HTTP/2, HTTP/3 y Websockets, sino que también permite manipular el tráfico en tiempo real mediante scripts. Además, ofrece otras herramientas avanzadas como la normalización de paquetes en una secuencia, la generación de certificados TLS para sesiones interceptadas, y la eliminación de encabezados que permiten el almacenamiento en caché del cliente.

Otra de las características destacadas que incluye, es la posibilidad de bloquear ciertas solicitudes con listas de bloqueo, redirigir selectivamente tráfico (incluso devolviendo archivos locales), y modificar el contenido y encabezados mediante expresiones regulares. Además, Mitmproxy proporciona mitmdump, una herramienta de línea de comandos parecida a tcpdump, y una interfaz web llamada mitmweb, para hacer el análisis del tráfico aún más accesible.

Nueva versión de Mitmproxy 11 con soporte para HTTP3​


Actualmente Mitmproxy se encuentra en su versión 11 y la principal novedad de esta versión es la compatibilidad total con HTTP/3, que utiliza el protocolo QUIC como transporte para HTTP/2. Con ello ahora se puede interceptar el tráfico HTTP/3 de manera transparente o usar Mitmproxy como un proxy inverso. Esta funcionalidad ha sido probada en Firefox, Chrome y varias versiones de cURL.

Además de las mejoras en HTTP/3, esta versión también volvió a añadir la compatibilidad con DNS, particularmente para los registros DNS para HTTPS y ECH. En versiones anteriores, Mitmproxy gestionaba las consultas DNS a través de la función getaddrinfo, lo que resultaba práctico, ya que libc se encargaba de todo el proceso de resolución.

Sin embargo, esta API está limitada únicamente a consultas para direcciones IPv4 e IPv6 (registros A/AAAA). Pero con la nueva versión, ahora soporta consultas de registros DNS que no sean A/AAAA, como los registros HTTPSSVC utilizados en ECH para pasar información de claves de cifrado pública. También se ha añadido un modo que permite limpiar las claves ECH de los registros HTTPS en DNS.

Por otra, parte, para mejorar aún más la integración con DNS, Mitmproxy ha migrado a la biblioteca Hickory, escrita en Rust y desarrollada por el proyecto Let’s Encrypt, lo que permite un mejor manejo de DNS sobre TCP. Además, ahora existe una opción para deshabilitar el procesamiento de configuraciones desde /etc/hosts.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Para los interesados en poder instalar Mitmproxy, deben saber que se ofrecen los binarios directamente desde el sitio oficial. Aunque algunas distribuciones ofrecen paquetes de Mitmproxy a través de sus repositorios nativos, estos son mantenidos por la comunidad.

Continúar leyendo...