¿Alguna vez ha sentido que necesitaba una lupa para el tráfico de su red?
Conozca Mitmproxy.
Esta central de código abierto le permite interceptar, modificar y analizar el tráfico HTTP/1, HTTP/2 y WebSocket. Es perfecto para desarrolladores web, administradores de red y profesionales de la seguridad.
Este artículo cubre todo lo que necesitas saber sobre Mitmproxy (si eres principiante). Proporciona una visión general del servicio, sus pros y sus contras, los pasos de instalación, el uso básico y funciones avanzadas como la configuración SSL/TLS, la automatización con Python y la integración con Docker.

Descargo de responsabilidad: Este material ha sido desarrollado estrictamente con fines informativos. No constituye respaldo de ninguna actividad (incluidas las actividades ilegales), productos o servicios. Usted es el único responsable de cumplir con las leyes aplicables, incluidas las leyes de propiedad intelectual, cuando utilice nuestros servicios o confíe en cualquier información contenida en este documento. No aceptamos ninguna responsabilidad por los daños que surjan del uso de nuestros servicios o la información contenida en este documento de ninguna manera, excepto cuando lo exija explícitamente la ley.
Tabla de contenidos
- Visión general de Mitmproxy
- Lo que es.
- Ventajas e inconvenientes
- Casos de uso de Mitmproxy
- Cómo instalar Mitmproxy (Guía paso a paso)
- Windows
- Linux
- macOS
- Primeros pasos con Mitmproxy
- Iniciar Mitmproxy
- Configure su navegador o dispositivo
- Verificar la configuración
- Cómo utilizar Mitmproxy
- Más cosas que puede hacer con Mitmproxy
- Utilizar la interfaz web
- Utilizar Mitmdump
- Configuración de certificados SSL/TLS
- Automatizar tareas con Python
- Ejecución de Mitmproxy en Docker
- Sección FAQ
- Palabras Finales.
1. Visión general de Mitmproxy
Mitmproxy is an open-source powerful toolset for intercepting, modifying, and analyzing network traffic (specifically HTTP/1, HTTP/2, and WebSockets). It’s an SSL/TLS-capable intercepting proxy. It is perfect for debugging, testing, and security assessments. Está disponible en tres sabores para satisfacer todas sus necesidades:
- Mitmproxy: Una consola interactiva que le permite explorar en detalle la interceptación del tráfico.
- Mitmweb: Una interfaz web fácil de usar que se parece a DevTools de Chrome.
- Mitmdump: Una herramienta de línea de comandos que funciona como tcpdump para scripting y automatización.
¿Qué significa Mitmproxy?
La primera parte de la palabra -> MitM (Man-in-the-Middle) es un término de ciberseguridad que se refiere a un tipo de ataque o técnica. En este caso, un atacante interceptaría en secreto y posiblemente alteraría la comunicación entre dos partes que piensan que se están comunicando directamente entre sí. La otra cara de la palabra "proxy" (o intermediario) se refiere al intermediario entre el cliente y el servidor. Permite interceptar, inspeccionar y modificar el tráfico de red. Mitmproxy utiliza este concepto pero de forma controlada y ética.
Mitmproxy Ventajas y desventajas
Toda herramienta tiene sus más y sus menos, y ésta no es una excepción. En esta sección, nos sumergiremos en las principales ventajas y posibles inconvenientes de su uso. Esto te ayudará a determinar si se adapta perfectamente a tus necesidades.
| Pros | Contras |
| Interceptación y análisis interactivos del tráfico: Captura, modificación y reproducción en tiempo real del tráfico HTTP/HTTPS. | Curva de aprendizaje pronunciada: Requiere conocimientos de redes y certificados. |
| Capacidades SSL/TLS: Genera certificados SSL/TLS para la interceptación segura. | Control por línea de comandos: La dependencia de la CLI puede ser un reto para los usuarios de la GUI. |
| Interfaces duales y filtrado avanzado: CLI e interfaz web (mitmweb) con potentes opciones de filtrado. | Recursos intensivos: Elevadas demandas computacionales para grandes volúmenes de tráfico. |
| Secuencias de comandos, automatización y complementos personalizados: API de Python para scripts y complementos personalizados. | Problemas de compatibilidad: Problemas con determinadas aplicaciones y configuraciones complejas. |
| Soporte multiplataforma: Disponible para Windows, Linux y macOS. | Riesgos de seguridad: Necesita estrictas medidas de seguridad para evitar ataques. |
| Libre y de código abierto: Accesible con apoyo comunitario. | Configuración manual: Configuración compleja para entornos Docker y en la nube. |
¿Para qué lo recomendamos? Ejemplos de uso de Mitmproxy
- Depuración de aplicaciones. Utilice Mitmproxy para capturar y analizar las peticiones y respuestas HTTP. Esto ayuda a localizar respuestas lentas o cargas útiles sobredimensionadas para solucionar retrasos. Interceptar el tráfico para ver qué datos se envían y reciben también ayuda a depurar problemas relacionados con los datos. Además, ayuda a simular varias respuestas del servidor para ver cómo su aplicación maneja los errores.
- Pruebas de penetración. Con Mitmproxy puede capturar y modificar el tráfico HTTP/HTTPS para imitar ataques (por ejemplo, inyección SQL, XSS) e identificar vulnerabilidades. Además, también puede grabar y modificar el tráfico legítimo para comprobar puntos débiles como ataques de repetición y fijación de sesión. En este ámbito, Mitmproxy también ayuda a interceptar el tráfico cifrado para verificar la gestión de certificados, los estándares de cifrado y la seguridad HTTPS en general.
- Medidas de privacidad. Mitmproxy es útil para capturar e inspeccionar el tráfico y asegurarse de que no se filtra información sensible. También se puede utilizar para verificar que el manejo y la transmisión de datos cumplen las normativas de privacidad como GDPR. La gente también lo utiliza para el análisis de servicios de terceros. Analiza el tráfico entre tu aplicación y los servicios de terceros para asegurarte de que no están recopilando datos innecesarios.
2. Cómo instalar Mitmproxy (guía paso a paso)
a. Windows: Guía de instalación paso a paso
- Descarga el instalador: Descargue el instalador de Windows desde sitio web oficial.
- Ejecute el instalador: Ejecute el archivo descargado y siga las instrucciones en pantalla para completar la instalación.

- Verifique la instalación: Abra un símbolo del sistema y escriba mitmproxy, mitmweb o mitmdump para verificar la instalación. Si las herramientas se inician correctamente, significa que la instalación se ha realizado correctamente. Sin embargo, no se captura ningún flujo de tráfico.

b. Linux: Uso de gestores de paquetes e instalación de fuentes
Para instalar Mitmproxy en Linux, puede utilizar gestores de paquetes o instalarlo desde el código fuente.
Uso de gestores de paquetes:
Puede descargar binarios independientes para su distribución específica (visite la página sitio web oficial para encontrar estos binarios) o utilizar los gestores de paquetes respectivos a cada distribución. Ambos métodos proporcionan binarios precompilados que simplifican la instalación de mitmproxy. Aún así, los gestores de paquetes ofrecen gestión de dependencias y actualizaciones automatizadas.
Arch Linux:
|
1 |
sudo pacman -S mitmproxy |
Fedora:
|
1 |
sudo dnf install mitmproxy |
Debian/Ubuntu:
|
1 2 |
sudo apt update sudo apt install mitmproxy |

Instalación de la fuente:
Si lo prefieres, también puedes instalarlo desde el código fuente. Todas las instrucciones están más abajo.
|
1 2 |
git clone https://github.com/mitmproxy/mitmproxy.git cd mitmproxy |
Instalar dependencias y compilar:
|
1 2 |
pip install -r requisitos.txt python configuración.py install |
Uso de pipx para la gestión de paquetes de Python:
Instalar pipx:
|
1 2 |
python -m pip install --user pipx python -m pipx ensurepath |
Instala mitmproxy:
|
1 |
pipx install mitmproxy |
c. macOS: Instalación mediante Homebrew
Requisito previo: Instalar Homebrew: Si no has instalado Homebrew, sigue las instrucciones de Sitio web oficial de Homebrew.
Instalar mitmproxy:
|
1 |
cerveza install mitmproxy |

Verifique la instalación:
Abra un terminal y escriba mitmproxy, mitmweb o mitmdump para verificar la instalación.

Usuarios de Mitmproxy, ¿buscan escalabilidad y rendimiento?
¿Cómo puede ayudar Rapidseedbox?
Manejo de grandes volúmenes de tráfico
Tiempo de actividad garantizado
Alcance global
Anonimato reforzado
---
3. Introducción a Mitmproxy.
Una vez instalado en tu plataforma, es hora de usarlo. En esta sección, aprenderemos la configuración e instalación básicas, los comandos básicos y cómo configurarlo en diferentes dispositivos y navegadores.
Nota: Por defecto, Mitmproxy inicia un Proxy HTTP. También escucha http://localhost:8080.
a. Inicie Mitmproxy:
- (Como se muestra en la sección anterior) Abra un terminal y escriba "mitmproxy" para iniciar la interfaz de línea de comandos. La interfaz mitmproxy debería tener el aspecto de la siguiente captura de pantalla:

- Escriba "mitmweb" para iniciar la interfaz web. Se iniciará automáticamente (como se muestra en la siguiente captura de pantalla).
- Si no se inicia, abra su navegador y vaya a http://localhost:8081.

- Mitmdump: Escriba mitmdump para utilizar la herramienta de línea de comandos para scripts.

¡Problemas!
Si ves la siguiente línea: "[12:10:38.265] ¡La autoridad de certificación mitmproxy ha caducado! haz lo siguiente...
Este mensaje de error indica que la autoridad de certificación (CA) de Mitmproxy ha caducado. Para solucionarlo, elimine los archivos relacionados con la CA de la carpeta .mitmproxy para que se pueda generar una nueva CA. Una vez que elimine los archivos de CA caducados, la herramienta regenerará automáticamente una nueva CA al reiniciar.
Estos son los pasos para resolver este problema:
Eliminar archivos relacionados con CA:
|
1 |
rm -rf ~/.mitmproxy |
Reinicie Mitmproxy:
|
1 |
mitmdump |

b. Configure su navegador o dispositivo.
Para usarlo, configura tu navegador o dispositivo para que todo el tráfico pase por Mitmproxy. Puede configurar el proxy en Google Chrome, Mozilla Firefox, Microsoft Edge o dispositivos como iOS (iPhone / iPad) o Android. Pero ten en cuenta que las configuraciones del proxy cambian de un navegador a otro y de un dispositivo a otro.
Establezca el proxy HTTP:
- Abra la configuración de red de su navegador o dispositivo. ¿No sabe qué es un proxy HTTP? Lea más aquí (Proxy HTTP) y aprenda las diferencias de Los proxies SOCKS5.
- Busque la configuración del proxy (normalmente se encuentra en la configuración avanzada o en la configuración de la conexión).
- Establezca el proxy Web HTTP (1) en http://localhost:8080, o 127.0.0.1:8080 (2), y pulse Aceptar (3).

Instalación de la CA Mitmproxy.
- Abra su navegador y vaya a http://mitm.it. Verá una página que le indicará que instale la Autoridad de Certificación (CA) Mitmproxy.
- Busca tu plataforma correspondiente y descarga el certificado. Si la descarga no se produce... siga las instrucciones que se muestran en ese mismo http://mitm.it página.

- Puede comprobar que el certificado CA de mtimproxy está instalado comprobando los certificados de su sistema.
- Para macOS, vaya a Acceso a llaveros > Certificados. Asegúrate de que el SSL está configurado en "Confiar siempre".

¿No se puede dirigir el tráfico web a través de Mitmproxy?
- Si al abrir la página web (http://mitm.it) ves el siguiente mensaje "Si puedes ver esto, el tráfico no está pasando a través de mitmproxy" significa que tu tráfico web no está siendo interceptado por mitmproxy.
- Lo más probable es que esto se deba a que no has establecido correctamente la configuración del servidor proxy (en tu navegador o dispositivo). Además, asegúrese de que mitmproxy está configurado correctamente y se está ejecutando. Y vuelva a intentarlo.

c. Verificar la configuración.
- Abra el terminal e inicie el servicio con el siguiente comando: 'mitmproxy'
- Una vez que lo inicie (si está correctamente configurado), verá que el terminal recibe flujos HTTP y WSS.

4. Cómo utilizar Mitmproxy.
La interfaz muestra la siguiente información.
- Sección Flujos: La parte principal de la pantalla muestra la lista de flujos HTTP y WebSocket interceptados. Cada fila representa una única solicitud y respuesta HTTP/WebSocket.
- Columnas:
- Hora: Muestra la hora a la que se capturó la petición.
- Protocolo: Indica el protocolo utilizado (por ejemplo, HTTP, WS para WebSocket).
- Método: Método HTTP utilizado (por ejemplo, GET).
- Host y ruta: El host de destino y la ruta de la solicitud.
- Código de estado: El código de estado HTTP devuelto por el servidor.
- Contenido: Muestra si la respuesta tiene contenido o no.
- Duración: Tiempo que tarda en procesarse la petición en milisegundos.
Información detallada sobre el flujo
- Flujo seleccionado: En la parte inferior, verá el número de flujos seleccionados y un pequeño menú
- Flujo: Indica el número de flujos seleccionados.
- Proxy: Muestra la configuración del proxy activo.
- Otras opciones: Puedes usar teclas como o para Opciones, e para Eventos, q para Salir, y varios otros comandos para interactuar con los flujos. (más información a continuación)

- Inspección de un flujo:
- Utilice las teclas de flecha para navegar por la lista de flujos. Verá un símbolo '>>' subiendo y bajando por los flujos.
- Pulse Intro para inspeccionar un flujo específico en detalle. Esto le permitirá ver las cabeceras, el contenido y otra información sobre la solicitud y la respuesta.
- Por ejemplo, seleccionamos el flujo con host mitm.it. En esta sección, verá toda la información sobre la cabecera. Además, puede desplazarse por las pestañas: Solicitud, Respuesta y Otros detalles.

- Filtrado de flujos: Puede filtrar los flujos pulsando f y escribiendo sus criterios de filtrado, como nombres de host específicos o tipos de solicitud.
- Por ejemplo, hemos escrito "mitm.it" utilizando un filtro y ahora sólo podemos ver los hosts de mitm.it.

- Opciones y configuración: Pulsa o para abrir el menú de opciones, donde puedes configurar varias opciones para Mitmproxy. Estas opciones son método, tamaño, tiempo y url.

Opciones del menú inferior de Mitmproxy
- En la interfaz, el menú inferior ofrece varias opciones para interactuar con los flujos capturados y configurar los ajustes de Mitmproxy.

Aquí tienes una explicación detallada de todas las opciones que aparecen en el menú inferior:
- Flujo: Seleccione el flujo resaltado en ese momento para inspeccionarlo en detalle o manipularlo.
- Selecciona: Permite seleccionar varios flujos para operaciones por lotes.
- Ayuda: Acceda a la ayuda y a la documentación para utilizar Mitmproxy.
- q Abandonar: Salir de la sesión.
- r Repetición: Reproducir la petición HTTP seleccionada.
- E Eventos: Ver el registro de eventos de Mitmproxy, que incluye mensajes y errores importantes.
- Exportar: Exporte los flujos seleccionados a un archivo para analizarlos o compartirlos posteriormente.
- Opciones: Abra el menú de opciones para configurar los ajustes.
- d Borrar: Elimina el flujo seleccionado de la lista.
- i Interceptar: Interceptar peticiones para modificarlas o inspeccionarlas antes de reenviarlas al servidor.
- Marca: Marcar flujos para realizar operaciones por lotes, como borrar o exportar.
- Filter: Aplique filtros para ver sólo flujos específicos en función de criterios como el host, el método o el código de estado.
- e Edita: Edite la solicitud o la respuesta del flujo seleccionado.
- b Guardar cuerpo: Guardar el cuerpo del flujo seleccionado en un archivo.
- z Borrar lista: Borrar todos los flujos de la lista.
- Guardar flujos: Guardar todos los flujos capturados en un archivo.
- Cambiar diseño: Cambia entre los distintos modos de diseño de la interfaz.
- Ctrl+F Seguir nuevo: Siga y resalte automáticamente los nuevos flujos a medida que se capturan.
¿Quieres más ayuda con Mitmproxy?
Ver ayuda: Pulse '?' dentro de la interfaz de mitmproxy para obtener ayuda contextual.

¿Y ahora qué?
Ahora, usted está equipado con el conocimiento para empezar a utilizar Mitmproxy. Y, ¿qué es lo siguiente?
- Empieza a capturar: A medida que el tráfico fluye a través de Mitmproxy, verá las peticiones y respuestas HTTP (o WSS) en tiempo real. Utilice la interfaz para inspeccionarlas y modificarlas sobre la marcha.
- Analizar el tráfico: Busque patrones, anomalías o datos específicos en el tráfico capturado. La herramienta permite analizar cada solicitud y respuesta hasta el más mínimo detalle.
5. Más cosas que puede hacer con Mitmproxy
Mitmproxy es más que un simple interceptor de tráfico web; puedes hacer mucho más con esta fantástica herramienta. A continuación se presentan cinco cosas más interesantes que puedes hacer con esta herramienta.
a. Utilice la interfaz web.
Utilice la interfaz integrada basada en web con una interfaz gráfica de usuario para facilitar el análisis y la manipulación del tráfico. ¿Cómo ponerlo en marcha?
- Iniciar mitmweb: mitmweb
- Abre la interfaz web: Vaya a http://localhost:8081 en su navegador.
b. Utilice Mitmdump.
Mitmdump viene con la instalación de Mitmproxy. Se trata de una herramienta de línea de comandos no interactiva diseñada para secuencias de comandos y automatización.
- Iniciar mitmdump: mitmdump
- Guardar el tráfico en un archivo: mitmdump -w outfile
- Filtrar y reproducir el tráfico: mitmdump -nr infile -w outfile "~m post"
c. Configuración de certificados SSL/TLS
Traffic Interception isn’t complete without handling encrypted traffic. Mitmproxy simplifies SSL/TLS certificate setup so you can peek into HTTPS traffic seamlessly. How to do this?
- El servicio crea un certificado CA que utilizará para firmar el tráfico interceptado.
- Vaya a http://mitm.it en su navegador y siga las instrucciones para instalar el certificado CA en su dispositivo.
- Con el certificado CA instalado, Mitmproxy descifrará el tráfico HTTPS, permitiéndole inspeccionar, modificar y analizar comunicaciones seguras igual que el tráfico HTTP sin cifrar.
d. Automatizar tareas con Python
Llevemos su análisis de tráfico al siguiente nivel. La API Python de Mitmproxy le permite automatizar tareas y personalizar la gestión del tráfico.
- Utilice Python para escribir complementos personalizados que amplíen la funcionalidad de la herramienta. Por ejemplo, puedes modificar automáticamente las solicitudes o registrar patrones de tráfico específicos.
- Con la API de Python, tendrá un control total sobre el tráfico interceptado. Modifique las cabeceras, altere las rutas de las solicitudes o incluso bloquee solicitudes específicas basándose en una lógica personalizada.
e. Ejecución de Mitmproxy en Docker
Le alegrará saber que Mimtproxy es compatible con Docker (si prefiere entornos en contenedores). Mitmproxy en Docker se integra bien en los flujos de trabajo de desarrollo modernos.
- Extraiga la imagen Docker: Descarga la imagen oficial desde DockerHub: docker pull mitmproxy/mitmproxy
- Ejecutarlo en un contenedor: docker run -rm -it -p 8080:8080 mitmproxy/mitmproxy
6. Sección FAQ.
1. ¿Cómo puedo interceptar peticiones HTTP/HTTPS utilizando Mitmproxy?
Para interceptar peticiones HTTP/HTTPS, configura tu navegador o dispositivo para usar Mitmproxy como proxy. Inícialo en tu terminal y empezará a capturar todo el tráfico que pase a través de él. A continuación, puede inspeccionar y modificar estas solicitudes sobre la marcha. Más información en las secciones anteriores del post.
2. ¿Puede Mitmproxy gestionar grandes cantidades de tráfico de red?
Sí, Mitmproxy está diseñado para manejar cantidades significativas de tráfico de red. Sin embargo, para volúmenes muy elevados, le recomendamos que se asegure de que su hardware soporta la carga. La herramienta ofrece varias opciones para optimizar el rendimiento y gestionar el tráfico de forma eficiente.
3. ¿Cómo gestiona Mitmproxy los certificados SSL/TLS?
Mitmproxy genera un certificado de Autoridad de Certificación (CA) que debe instalar en su dispositivo. Esto permite a Mitmproxy interceptar y descifrar el tráfico HTTPS. El certificado CA se utiliza para firmar otros certificados sobre la marcha. Esto hace que el tráfico interceptado parezca de confianza para su navegador o aplicación.
4. ¿Es seguro utilizar Mitmproxy?
Mitmproxy es seguro (si lo utiliza correctamente). Como mejor práctica, asegúrese de que el certificado CA generado sólo se utiliza en dispositivos y entornos de confianza. Actualice siempre Mitmproxy a la última versión para beneficiarse de los parches y mejoras de seguridad. Y lo más importante, recuerde siempre que la interceptación de tráfico sólo debe hacerse de forma ética y legal.
5. ¿Se puede utilizar Mitmproxy con diferentes entornos de alojamiento y servidores?
Absolutamente. Mitmproxy es compatible con varios entornos de alojamiento y servidores. Puede configurarlo en servidores locales, entornos en la nube e incluso en contenedores Docker.
6. ¿Cómo puedo ejecutar Mitmproxy en un contenedor Docker?
Para ejecutar Mitmproxy en Docker, extrae la imagen oficial de Mitmproxy de DockerHub con el comando "docker pull mitmproxy/mitmproxy". A continuación, inicia un contenedor con docker run -rm -it -p 8080:8080 mitmproxy/mitmproxy. Esta configuración le permite interceptar el tráfico en un entorno de contenedores. Esto es perfecto para integrarse con los flujos de trabajo DevOps modernos.
7. ¿Cómo puedo utilizar la API Mitmproxy para la manipulación personalizada del tráfico?
Mitmproxy proporciona una potente API Python que le permite escribir scripts personalizados para la manipulación del tráfico. Con esta API, puede automatizar tareas, modificar peticiones y respuestas e implementar lógica compleja. Para empezar, escriba su script y ejecute Mitmproxy con el indicador -s seguido de la ruta de su script.
8. ¿Se puede utilizar Mitmproxy para el web scraping?
Sí, Mitmproxy es una herramienta perfecta para el web scraping. Permite capturar y modificar el tráfico web, facilitando la extracción de datos de páginas web. Al analizar las solicitudes y respuestas HTTP, puede automatizar la recopilación de datos de forma más eficaz.
9. ¿Cuál es el proceso de configuración de TLS/SSL en Mitmproxy?
Para configurar TLS/SSL en Mitmproxy, necesitará iniciar un certificado CA en su dispositivo. Esto permite a Mitmproxy descifrar el tráfico HTTPS. Configure su cliente para que confíe en el certificado CA, garantizando la interceptación segura y sin problemas del tráfico cifrado.
10. ¿Cuáles son algunas alternativas o herramientas similares a Mitmproxy?
Si está explorando alternativas (o herramientas similares) a Mitmproxy, tenga en cuenta lo siguiente:
- Fiddler por su interfaz fácil de usar y sus potentes funciones de depuración de sesiones web.
- Charles Proxy por sus funciones de proxy SSL y limitación del ancho de banda
- Burp Suite para pruebas exhaustivas de seguridad de aplicaciones web.
- OWASP ZAP ofrece herramientas de pruebas de seguridad de código abierto
- Wireshark ofrece un análisis detallado de los protocolos de red
- Proxyman ofrece una moderna interfaz para la depuración del tráfico web
- HTTP Toolkit simplifica la interceptación y depuración del tráfico HTTP(S) con una configuración guiada.
7. Palabras finales.
Hemos explorado 'superficialmente' las características y capacidades de Mitmproxy. Esta guía del artículo realmente cubre sólo la punta del iceberg de lo que esta increíble herramienta puede hacer.
En esta guía, cubrimos los pasos de instalación para diferentes sistemas operativos, la configuración básica y el uso. Además, profundizamos en funcionalidades avanzadas como la interceptación SSL/TLS, la automatización con Python y la integración con Docker.
Esperamos que, con estos conocimientos, saque el máximo partido de Mitmproxy para su análisis y manipulación del tráfico de red.
0Comentarios