- Introducción
- ¿Por qué analizar el tráfico con mitmproxy?
- Casos de uso práctico
- Instalación y herramientas
- Configuración como proxy explícito (configuración del cliente)
- Modo proxy transparente (sin configuración manual del cliente)
- Grabar, almacenar y convertir transmisiones
- Scripting y complementos
- Filtros y búsqueda de flujo
- Análisis de TLS y detalles técnicos
- Escalabilidad y rendimiento
- Seguridad operativa y privacidad
- Ejemplos prácticos: móvil, API y repetición
- Integración con otras herramientas (Wireshark, Burp, CI)
- Mejores configuraciones por aplicación
- Notas finales y advertencias legales
- Conclusión y sugerencias prácticas
- Preguntas frecuentes
Introducción
mitmproxy es una herramienta potente y flexible para inspeccionar, manipular y analizar el tráfico. HTTP/HTTPS En entornos de desarrollo, se utiliza para realizar pruebas de seguridad y depurar aplicaciones móviles y web. Esta guía proporciona una implementación paso a paso, ejemplos prácticos y configuraciones comunes (incluidas... proxy transparente), se revisan consejos de seguridad y métodos de escalabilidad.
Este artículo está escrito para administradores de sitios, desarrolladores, DevOps y equipos de seguridad y proporciona ejemplos y comandos ejecutables de Linux.
¿Por qué analizar el tráfico con mitmproxy?
mitmproxy Capacidad de ver solicitudes y respuestas cifradas TLS mediante la instalación de un certificado local (MITM CA) en el cliente; esta característica es excelente para depurar API, analizar el comportamiento de las aplicaciones, realizar pruebas de seguridad y grabar/reproducir tráfico.
El juego incluye herramientas mitmproxy (interactivo), mitmdump (para scripts y backend) y mitmweb (Interfaz web).
Los scripts de Python pueden automatizar el filtrado, el registro y la modificación de la carga útil. Esta herramienta es Estibador, systemd, iptables/nftables Es compatible y se puede utilizar como explícito O proxy transparente Es.
Casos de uso práctico
API y depuración móvil
Para oponerse a problemas de JSON, errores de CORS o autenticación OAuth, puede colocar mitmproxy entre el móvil y el servidor y observar las solicitudes/respuestas.
Método simple: configure el cliente en la dirección IP del servidor mitmproxy (puerto predeterminado) 8080) e instale el certificado CA en el dispositivo.
Pruebas de penetración y evaluación de seguridad (de conformidad con los principios legales)
Para las pruebas de penetración, mitmproxy permite ataques lógicos, controles de fugas de tokens y análisis TLS. Tenga siempre un contrato escrito y permiso. Y evite recopilar datos confidenciales sin permiso.
Grabación y reproducción de tráfico
Para reproducir errores o realizar pruebas de carga, puede utilizar el tráfico capturado con el repetición del servidor Juega para reevaluar el comportamiento del servidor o del cliente.
Instalación y herramientas
Instalación básica en Debian/Ubuntu
Instalar con pip (recomendado para la última versión):
pip3 install mitmproxyInstalación desde un paquete (fácil pero más antiguo):
sudo apt update
sudo apt install mitmproxy
Ejecución rápida
Tres herramientas principales:
mitmproxy — Interfaz interactiva de la consola
mitmdump — Adecuado para grabar scripts y backends
mitmweb — Interfaz web con interfaz gráfica de usuario
Ejemplo de ejecución:
mitmweb --listen-port 8080 --showhost
Ejecutando en Docker
docker run --rm -p 8080:8080 -p 8081:8081 -v $(pwd)/certs:/home/mitmproxy/.mitmproxy mitmproxy/mitmproxy mitmweb --web-host 0.0.0.0
Configuración como proxy explícito (configuración del cliente)
Pasos generales:
Ejecutar mitmproxy:
mitmproxy --listen-port 8080Generar e instalar un certificado CA:
Después de ejecutar mitmproxy, la CA en
~/.mitmproxy/se coloca (archivomitmproxy-ca-cert.pem).En el navegador del cliente o el sistema operativo, vea el certificado como Confianza Instalar (Windows: MMC > Certificados; macOS: Llavero; Android: Configuración > Seguridad > Instalar desde almacenamiento).
Modo proxy transparente (sin configuración manual del cliente)
Para entornos donde no se pueden configurar los ajustes de proxy en el cliente (como dispositivos IoT o redes internas), utilice el transparente Este modo requiere enrutamiento de tráfico con iptables/nftables/TPROXY Y tiene el reenvío de IP habilitado en el kernel.
Habilitación del reenvío de IP
sudo sysctl -w net.ipv4.ip_forward=1
Ejemplo de iptables para redirigir HTTP/HTTPS al puerto 8080
Reenviar los puertos TCP 80 y 443 al puerto 8080 en la misma máquina (para tráfico local):
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8080
Ejecutar mitmproxy en modo transparente
mitmproxy --mode transparent --listen-port 8080Nota: Para el tráfico HTTPS en modo transparente, se debe instalar una CA en los clientes. Para una implementación escalable en el borde de la red, utilice TPROXY + nftables Úselo para preservar la IP original del cliente.
Grabar, almacenar y convertir transmisiones
Grabación con mitmdump
mitmdump -w flows.mitm
Leyendo el archivo grabado
mitmproxy -r flows.mitm
Convertir a HAR/pcap
mitmproxy/mitmdump tienen capacidades de exportación (mitmweb tiene una opción de exportación HAR).
Para pcap, puede ejecutar tcpdump al mismo tiempo y luego analizar Wireshark con pcap:
sudo tcpdump -i eth0 -w capture.pcap port 80 or port 443Si necesita analizar TLS en Wireshark, si tiene control del navegador puede ARCHIVO DE REGISTRO DE LLAVES SSL Habilitar la generación de claves del lado del cliente y pasarlas a Wireshark.
Scripting y complementos
mitmproxy se integra con Python y permite crear complementos. El siguiente ejemplo muestra el registro y la modificación del cuerpo de la respuesta JSON.
from mitmproxy import http
import json
def response(flow: http.HTTPFlow):
if "api.example.com" in flow.request.pretty_host():
# log URL
print(flow.request.url)
# modify JSON response
if "application/json" in flow.response.headers.get("content-type", ""):
data = json.loads(flow.response.get_text())
data["injected"] = True
flow.response.set_text(json.dumps(data))Ejecute el complemento:
mitmdump -s modify_response.py
Filtros y búsqueda de flujo
Ejemplos útiles de filtros:
Mostrar sólo solicitudes a un dominio específico:
~d ejemplo.comMostrar solo respuestas con errores 5xx:
~s 500-599
Ejemplo de ejecución de mitmproxy con configuraciones:
mitmproxy --set stream_large_bodies=2m --showhost
Análisis de TLS y detalles técnicos
mitmproxy puede Hola, cliente TLSSuites de cifrado y SNI y ayudar en el proceso de toma de huellas dactilares.
Para un análisis completo de TLS en entornos de desarrollo, instale la CA y recopile JA3 O Detector UAD Funciona.
Escalabilidad y rendimiento
mitmproxy Se basa en Python y debe ejecutarse en un hardware adecuado o en un clúster para cargas de trabajo pesadas.
Para gran escala: utilice servidores dedicados o instancias en la nube con redes sólidas, como un servidor en la nube con puertos de 10 Gbps.
En entornos de producción que requieran tolerancia a ataques, utilice servidores antivirus.DDoS y Balanceador de Carga. Nuestra empresa está con Más de 85 ubicaciones en todo el mundo Tiene la capacidad de implementarse en puntos de borde, lo que es útil para reducir la latencia en el comercio y los juegos.
Seguridad operativa y privacidad
Solo se realizan análisis en redes con permiso explícito. Registrar el tráfico sin consentimiento legal es un delito.
Almacene la clave privada de CA en el hardware o en un administrador de claves y restrinja el acceso.
Los registros pueden contener datos confidenciales (tokens, cookies); especifique una política de retención y aplíqueles cifrado.
Para entornos sensibles (pagos, tarjetas), reglas PCI/DSS y utilizar herramientas MITM sólo en la fase de prueba.
Si lo utiliza para análisis de trading o juegos, utilice un VPS dedicado para trading o juegos con un SLA adecuado y anti-DDoS.
Ejemplos prácticos: móvil, API y repetición
Depuración de aplicaciones móviles
Ejecute mitmproxy en su computadora portátil:
mitmweb --listen-host 0.0.0.0 --listen-port 8080Conecte la computadora portátil a la misma red Wi-Fi; IP por ejemplo 192.168.1.10.
En la configuración de Wi-Fi de su teléfono, configure Proxy en Manual y configure la IP 192.168.1.10 y puerto 8080 Ponlo.
Instale el certificado mitmproxy en el teléfono.
Ver y filtrar el tráfico en mitmweb.
Grabar y reproducir el tráfico de API para realizar pruebas
Grabación:
mitmdump -w api_flows.mitmTransmisión:
mitmdump --server-replay api_flows.mitm --server-replay-nopop
Integración con otras herramientas (Wireshark, Burp, CI)
Utilice tcpdump para capturar pcap y analizar en Wireshark.
Mitmproxy se puede utilizar como preprocesador de tráfico para Burp o cualquier otro analizador.
En CI/CD: es útil capturar muestras de tráfico con mitmdump y reproducirlas durante las etapas de integración para simular condiciones del mundo real.
Mejores configuraciones por aplicación
Para comerciar: VPS de baja latencia, servidor cercano a la plataforma de intercambio, red con BGP y CDN adecuada. Utilice un VPS dedicado a operaciones para ejecutar mitmproxy en modo de prueba y una herramienta de registro independiente para que no interfiera con el motor de ejecución de operaciones.
Para el juego: VPS para juegos con ping bajo. Nota: solo con proxy mitmproxy. TCP/HTTP soporta; para analizar UDP es necesario utilizar otras herramientas como tcpreplay/Wireshark y sintonizar/tocar Usar.
Para IA/Renderizado: mitmproxy es útil para depurar API de modelos; para un procesamiento de red pesado, utilice un servidor de gráficos (GPU Cloud) y coloque mitmproxy en un servidor de cómputo separado.
Notas finales y advertencias legales
Obtenga siempre el permiso por escrito del propietario o usuario del servicio antes de realizar cualquier análisis.
Los datos como información de tarjetas, contraseñas y tokens deben mantenerse seguros y eliminarse después de su uso.
Para la producción, utilice servidores protegidos y una solución anti-DDoS para evitar abusos.
Conclusión y sugerencias prácticas
El análisis de tráfico con mitmproxy es una herramienta flexible para la depuración, las pruebas de seguridad y el análisis de tráfico. Su sencilla instalación, la compatibilidad con scripts de Python y las funciones de grabación y reproducción la hacen muy útil en desarrollo, control de calidad y algunos escenarios de seguridad.
Para producción y análisis a gran escala, utilice servidores con una red sólida, anti-DDoS e implementación en ubicaciones cercanas a los usuarios.









