Ir al contenido
GProxy
Registro
Гайды 6 min de lectura 36 vistas

mitmproxy

Explora mitmproxy para interceptar y analizar de forma efectiva el tráfico HTTP/S. Ideal para depuración, pruebas de seguridad y mejora de flujos de trabajo de desarrollo.

Безопасность
mitmproxy

mitmproxy es una herramienta de consola interactiva, interfaz web y biblioteca de Python gratuita y de código abierto, diseñada para interceptar, inspeccionar, modificar y reproducir tráfico HTTP/S. Sirve como un potente proxy man-in-the-middle para desarrolladores, investigadores de seguridad e ingenieros de control de calidad que trabajan con aplicaciones web, APIs y tráfico móvil.

Descripción general de mitmproxy

mitmproxy opera como un servidor proxy, posicionado entre un cliente y un servidor de destino. Todo el tráfico HTTP y HTTPS que fluye a través del proxy puede ser visto, filtrado y manipulado en tiempo real. Su funcionalidad principal permite una inspección profunda de los encabezados, cuerpos y otros atributos de las solicitudes y respuestas. El conjunto de herramientas incluye:

  • mitmproxy: Una interfaz de terminal interactiva para el análisis de tráfico en tiempo real.
  • mitmweb: Una interfaz gráfica de usuario basada en navegador que ofrece una funcionalidad similar a mitmproxy pero accesible a través de un navegador web.
  • mitmdump: Una herramienta de línea de comandos para la modificación programática y el registro de tráfico, adecuada para scripting y automatización.

Características clave

Intercepción SSL/TLS

mitmproxy genera sus propios certificados SSL/TLS sobre la marcha, lo que le permite descifrar e inspeccionar el tráfico HTTPS cifrado. Esto requiere que el cliente confíe en el certificado CA de mitmproxy.

Interfaz interactiva

Tanto mitmproxy como mitmweb proporcionan entornos interactivos para ver y gestionar los flujos de tráfico. Los usuarios pueden filtrar flujos, buscar contenido, editar solicitudes/respuestas y marcar flujos específicos para su posterior análisis.

Modificación de tráfico

Las solicitudes y respuestas pueden modificarse sobre la marcha utilizando la interfaz interactiva o a través de scripts de Python. Esto permite probar casos extremos, inyectar encabezados, alterar datos o simular diferentes respuestas del servidor.

Funcionalidad de reproducción

mitmproxy admite la reproducción de solicitudes de cliente grabadas a un servidor o la reproducción de respuestas de servidor a un cliente. Esto es útil para probar escenarios específicos sin volver a ejecutar acciones del cliente o para simular el comportamiento del servidor.

Scripting y automatización

mitmdump proporciona una API de Python para desarrollar scripts personalizados. Estos scripts pueden inspeccionar, modificar, redirigir o descartar tráfico programáticamente basándose en una lógica definida, facilitando las pruebas automatizadas y la manipulación compleja del tráfico.

Modo de proxy transparente

mitmproxy puede operar en un modo de proxy transparente, donde los clientes no necesitan una configuración de proxy explícita. El tráfico de red se redirige a mitmproxy en la capa de red, a menudo a través de reglas de enrutador o configuraciones de firewall.

Instalación

mitmproxy se puede instalar usando pip:

pip install mitmproxy

Para sistemas operativos específicos, hay binarios precompilados disponibles en el sitio web oficial de mitmproxy, o se puede instalar a través de gestores de paquetes como Homebrew en macOS.

Uso básico

Inicio de mitmproxy

Para iniciar la interfaz de consola interactiva:

mitmproxy

Para iniciar la interfaz web:

mitmweb

Por defecto, mitmproxy escucha en localhost:8080.

Configuración del cliente

Los clientes deben configurarse para usar mitmproxy como su proxy HTTP/S.

Ejemplo de navegador (Firefox):
1. Abra la configuración de Firefox.
2. Navegue a Configuración de red o Configuración de proxy.
3. Seleccione "Configuración manual del proxy".
4. Establezca el Proxy HTTP en 127.0.0.1 y el Puerto en 8080.
5. Establezca el Proxy SSL en 127.0.0.1 y el Puerto en 8080.
6. Asegúrese de que "Usar este servidor proxy para todos los protocolos" esté marcado o configure otros protocolos de manera similar.

Sistema operativo (macOS):
1. Vaya a Configuración del Sistema > Red > Wi-Fi > Detalles.
2. Seleccione "Proxies".
3. Habilite "Proxy web (HTTP)" y "Proxy web seguro (HTTPS)".
4. Establezca el Servidor en 127.0.0.1 y el Puerto en 8080 para ambos.

Instalación del certificado SSL/TLS

Para descifrar el tráfico HTTPS, los clientes deben confiar en el certificado CA de mitmproxy.
1. Con mitmproxy en ejecución, navegue con el navegador de un cliente configurado a http://mitm.it.
2. Descargue e instale el certificado CA apropiado para el sistema operativo o navegador del cliente.
3. Para sistemas como Android o iOS, se requieren pasos de instalación específicos, que a menudo implican descargar el certificado y confiar manualmente en él en la configuración de seguridad.

Uso avanzado

Modificación de solicitudes y respuestas

Desde la interfaz de mitmproxy o mitmweb:
1. Seleccione un flujo.
2. Presione e (editar) para modificar la solicitud o respuesta.
3. Seleccione el componente a editar (por ejemplo, encabezados, cuerpo, URL).
4. Realice los cambios y presione q para guardar y continuar el flujo.

Scripting con mitmdump

Se pueden pasar scripts de Python a mitmdump para automatizar la manipulación del tráfico.

Ejemplo: Modificación de un encabezado de solicitud

modify_header.py:

from mitmproxy import http

def request(flow: http.HTTPFlow):
    if "example.com" in flow.request.pretty_host:
        flow.request.headers["X-Modified-By"] = "mitmproxy-script"
        print(f"Modified header for {flow.request.url}")

Ejecutar con mitmdump:

mitmdump -s modify_header.py

Este script añade un encabezado personalizado X-Modified-By a las solicitudes dirigidas a example.com.

Ejemplo: Modificación del cuerpo de una respuesta

modify_response.py:

from mitmproxy import http

def response(flow: http.HTTPFlow):
    if "api.example.com/data" in flow.request.url and flow.response.content:
        # Asumiendo que la respuesta es JSON
        data = flow.response.json()
        data["status"] = "modified_by_mitmproxy"
        flow.response.set_json(data)
        print(f"Modified response body for {flow.request.url}")

Ejecutar con mitmdump:

mitmdump -s modify_response.py

Este script intercepta las respuestas de api.example.com/data, las analiza como JSON, modifica un campo y envía el JSON modificado de vuelta al cliente.

Reproducción de flujos

mitmproxy permite reproducir flujos HTTP capturados.

Reproducir solicitud de cliente:
1. En mitmproxy o mitmweb, seleccione un flujo.
2. Presione r para reproducir la solicitud del cliente al servidor. Esto reenvía la solicitud exacta sin interacción del cliente.

Reproducir respuesta del servidor:
1. Seleccione un flujo.
2. Presione R (shift+r) para reproducir la respuesta del servidor al cliente. Esto envía la respuesta grabada del servidor de vuelta al cliente, omitiendo la interacción real con el servidor. Útil para probar el comportamiento del lado del cliente con respuestas específicas del servidor.

Casos de uso

  • Desarrollo y depuración de API: Inspeccionar solicitudes y respuestas para comprender el comportamiento de la API, validar formatos de datos y depurar problemas de integración.
  • Pruebas de seguridad: Identificar vulnerabilidades manipulando solicitudes (por ejemplo, inyectando SQL, cargas útiles XSS), probando mecanismos de autenticación y analizando tráfico cifrado.
  • Análisis de aplicaciones móviles: Interceptar y analizar el tráfico de aplicaciones móviles para comprender su comunicación backend, manejo de datos y posibles fallos de seguridad.
  • Ingeniería inversa: Deconstruir protocolos propietarios o comprender cómo las aplicaciones interactúan con servidores remotos observando sus comunicaciones de red.
  • Pruebas automatizadas: Utilizar scripts de mitmdump para simular condiciones de red específicas, simular respuestas de API o realizar comprobaciones automatizadas del comportamiento de la aplicación.

mitmproxy vs. Otras herramientas proxy

Aunque varias herramientas ofrecen intercepción HTTP/S, mitmproxy se diferencia por su naturaleza de código abierto, su potente capacidad de scripting y sus interfaces flexibles.

Característica mitmproxy Burp Suite Community Edition Fiddler (Windows)
Licencia Código abierto (MIT) Propietaria (Niveles gratuito/de pago) Propietaria (Niveles gratuito/de pago)
Capacidad de scripting API de Python (mitmdump) Limitada (Extensiones vía Java/Python/Ruby) FiddlerScript (JScript.NET), Extensiones .NET
Interfaz Consola (mitmproxy), UI web (mitmweb) GUI de escritorio GUI de escritorio
SSL/TLS Intercepción completa Intercepción completa Intercepción completa
Modificación de tráfico
Reproducción Sí (cliente/servidor) Sí (Repeater) Sí (Composer)
Proxy transparente
Público objetivo Desarrolladores, investigadores de seguridad, automatización Testers de penetración, seguridad de aplicaciones web Desarrolladores, testers, seguridad de aplicaciones web
Plataforma Multiplataforma (Linux, macOS, Windows) Multiplataforma (basado en Java) Windows, macOS (vía Fiddler Everywhere)

Esta comparación destaca las fortalezas de mitmproxy en automatización y flexibilidad de código abierto, lo que la convierte en una opción robusta para usuarios técnicos que requieren un control profundo sobre sus flujos de trabajo de análisis de tráfico.

Actualizado: 04.03.2026
Volver a la categoría

Pruebe nuestros proxies

20,000+ proxies en 100+ países del mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.