Interceptar el tráfico de red es una técnica clave para la auditoría de seguridad y la depuración de aplicaciones web. Una de las herramientas más potentes para este propósito es mitmproxy, una proxy interactivo diseñado para analizar, modificar y manipular el tráfico HTTP y HTTPS en tiempo real. En este artículo, aprenderás cómo configurar e interceptar tráfico HTTP y HTTPS con mitmproxy en Kali Linux.
mitmproxy es una herramienta de tipo *Man-In-The-Middle* (MITM), que actúa como intermediario entre un cliente (como un navegador web o aplicación) y un servidor. A diferencia de otras herramientas de interceptación de tráfico, mitmproxy ofrece una interfaz interactiva, lo que facilita el análisis y modificación del tráfico en tiempo real.
Las principales características de mitmproxy incluyen:
La instalación de mitmproxy en Kali Linux es bastante simple, ya que la herramienta está disponible en los repositorios oficiales.
1. Actualizar los repositorios de Kali Linux:
Es recomendable mantener tu sistema actualizado antes de instalar cualquier paquete. Ejecuta el siguiente comando:
sudo apt update && sudo apt upgrade
2. Instalar mitmproxy:
Ejecuta el siguiente comando para instalar mitmproxy desde los repositorios oficiales de Kali Linux:
sudo apt install mitmproxy
Este comando instalará mitmproxy y otras herramientas relacionadas como mitmdump
y mitmweb
.
3. Verificar la instalación:
Una vez completada la instalación, verifica que mitmproxy esté instalado correctamente ejecutando:
mitmproxy --version
Deberías ver la versión instalada y las dependencias utilizadas.
Para empezar a interceptar tráfico, ejecuta mitmproxy con el siguiente comando:
mitmproxy
Esto iniciará mitmproxy en modo interactivo y configurará un proxy local en el puerto 8080 por defecto. Puedes cambiar el puerto si lo deseas, especificando el parámetro -p
:
mitmproxy -p 8081
El siguiente paso es configurar tu dispositivo para que enrute todo su tráfico a través de mitmproxy. Esto es especialmente útil si deseas interceptar el tráfico de un navegador o una aplicación móvil.
127.0.0.1
si es en la misma máquina) y el puerto que estás utilizando (por defecto, 8080
).
Si estás interceptando tráfico desde otro dispositivo, como un teléfono móvil o una máquina remota, asegúrate de que ambos dispositivos estén en la misma red y utiliza la IP local de tu máquina Kali Linux en lugar de 127.0.0.1
.
Con la configuración del proxy en su lugar, todas las solicitudes HTTP que realices desde el navegador o dispositivo configurado pasarán a través de mitmproxy. En la interfaz de mitmproxy verás las solicitudes y respuestas en tiempo real, lo que te permitirá analizar el contenido.
El tráfico HTTPS está encriptado, lo que significa que mitmproxy no puede leerlo directamente sin primero actuar como intermediario SSL. Para hacer esto, mitmproxy utiliza certificados TLS autofirmados para desencriptar y re-encriptar el tráfico.
Para interceptar tráfico HTTPS, necesitas instalar el certificado de confianza de mitmproxy en el navegador o dispositivo donde estés ejecutando el tráfico. Esto engañará al cliente haciéndole creer que el proxy es un servidor legítimo.
##### Opción 1: Instalar el certificado en el navegador
1. Abre tu navegador y visita la siguiente dirección:
http://mitm.it
2. Selecciona el sistema operativo correspondiente al dispositivo donde estés ejecutando mitmproxy (Windows, macOS, Android, etc.).
3. Descarga e instala el certificado en tu navegador o sistema operativo siguiendo las instrucciones proporcionadas.
##### Opción 2: Instalar el certificado en Android (para interceptar tráfico móvil)
1. Conecta tu dispositivo móvil a la misma red que tu máquina Kali Linux.
2. Configura el proxy en la red Wi-Fi del dispositivo (usando la IP de Kali Linux y el puerto 8080).
3. Visita http://mitm.it
desde el navegador móvil y descarga el certificado para Android.
4. Instala el certificado siguiendo las instrucciones del sistema.
Una vez que el certificado está instalado correctamente, mitmproxy será capaz de interceptar y desencriptar el tráfico HTTPS. Desde la interfaz de mitmproxy, verás tanto las solicitudes como las respuestas HTTPS en texto claro, lo que te permitirá inspeccionar y modificar su contenido.
Mitmproxy no solo te permite visualizar el tráfico, sino también modificarlo en tiempo real. Una vez que interceptas una solicitud, puedes presionar las teclas correspondientes para inspeccionar los encabezados HTTP, el cuerpo de la solicitud o respuesta, y modificar los valores antes de que el paquete sea enviado al servidor o cliente.
Al ejecutar mitmproxy, puedes usar los siguientes atajos de teclado para interactuar con las solicitudes:
h
: Ver la ayuda con todos los comandos disponibles.
Enter
: Inspeccionar la solicitud seleccionada.
Tab
: Cambiar entre solicitud y respuesta.
e
: Editar el cuerpo de la solicitud o respuesta.
a
: Añadir una nueva cabecera a la solicitud o respuesta.
d
: Borrar una cabecera de la solicitud o respuesta.
q
: Salir de mitmproxy.
Estas acciones son particularmente útiles para probar la seguridad de aplicaciones web, manipular datos en tránsito y observar cómo responden los servidores ante solicitudes modificadas.
Mitmproxy no es la única herramienta disponible en su suite. A continuación, te mostramos dos alternativas para escenarios más específicos:
mitmdump -w logfile
El tráfico será registrado en logfile
para su posterior análisis.
mitmweb
Esto abrirá una interfaz gráfica basada en web a la que puedes acceder desde tu navegador.
Es importante resaltar que el uso de herramientas como mitmproxy debe estar estrictamente limitado a auditorías de seguridad con fines legales y éticos, como pruebas de penetración o depuración de aplicaciones web. La interceptación de tráfico sin autorización es ilegal y puede conllevar graves consecuencias.
Mitmproxy es una herramienta extremadamente potente para la interceptación y modificación del tráfico HTTP y HTTPS. Con su capacidad de analizar en tiempo real, modificar paquetes y su versatilidad, es una opción ideal tanto para profesionales de seguridad como para desarrolladores que necesitan depurar aplicaciones web. Configurar mitmproxy en Kali Linux es sencillo, y una vez que tengas instalado el certificado SSL en los dispositivos de destino, podrás interceptar tráfico HTTPS sin problemas.
Ya sea que estés probando la seguridad de una aplicación web, investigando vulnerabilidades o simplemente depurando tu propio código, mitmproxy se convertirá en una herramienta indispensable en tu conjunto de herramientas de red.
Jorge García
Fullstack developer