Man In The Middle. Cambiando peticiones al vuelo

Man In The Middle. Cambiando peticiones al vuelo

Tiempo estimado de lectura: 6 minutos


Esta conferencia magistral pertenece al Módulo 1 "Redes y arquitecturas" de C1b3rWall Academy 2021.

Qué es un ataque Man In The Middle

Un Man In The Middle consiste en introducirse en la comunicación entre dos equipos para que todo el tráfico pase por el atacante. Esto permite el robo de datos, lectura y modificación de las comunicaciones. 

En esta sesión se realizan modificaciones a las respuestas que reciben las víctimas. La manera de realizar el Man In The Middle es suplantar a alguno de los comunicadores o bien a la puerta de enlace (router) con la que recibiríamos todas las peticiones.

Para suplantar algún comunicador se utilizan las técnicas de ARP PoisoningDNS PoisoningPort StealingDHCP Spoofing, etc.

ARP Poisoning

ARP poisoning es la mas común y la que se ve en el ejemplo de esta ponencia. Un ataque ARP poisoning funciona de la siguiente manera:
  • El atacante hace uso de la herramienta de ARP Spoofing y escanea las direcciones MAC e IP de los hosts de la subred del objetivo.
  • El atacante elige su destino y comienza a enviar paquetes ARP través de la LAN. Estos paquetes contienen la dirección MAC del atacante y la dirección IP de la víctima, con el fin de que la ARP caché de los equipos establezca la relación de esa MAC con esa dirección IP.
  • Si el atacante logró vincular su dirección MAC a una dirección IP auténtica, va a empezar a recibir cualquier dato al que se pueda acceder mediante la dirección IP. A partir de aquí, el atacante puede robar datos o lanzar un ataque más sofisticado.

Ejemplo práctico y recomendaciones

Como ejemplo práctico, se realiza un ataque MITM avanzado en el que se modificarán las respuestas de forma dinámica. Primero se aplica la técnica de ARP poisoning a una víctima mediante la herramienta Arpspoof. Posteriormente, se procede a capturar las peticiones e interactuar con ellas. Para esta parte usaremos la herramienta Mitmproxy. Esta herramienta se puede usar para interceptar, inspeccionar, modificar y reproducir tráfico web. Además, cuenta con una API en Python para desarrollar los scripts y está bien documentado.

Una vez se comienza a capturar peticiones y visualizarlas desde la interfaz de Mitmproxy, se prepara la interacción. Para poder interactuar con las peticiones se debe establecer un filtro, se pulsa la tecla "i" y se escribe una cadena como expresión regular, por ejemplo filter. Esto hará que las peticiones que contengan filter se queden de color rojo esperando la interacción del usuario. Entre todas las funcionalidades están la inspección de la petición con el return, modificación con la "e" y envío con la "a".

Además de la interacción manual, Mitmproxy soporta la ejecución de scripts de Python para automatizar las operaciones de modificación y envío. Mediante varios ejemplos se explican las funciones básicas de la librería de Mitmproxy para Python. Entre ellas están la modificación y los filtros, funciones que se utilizan para un demostración final, en la que se cambia el contenido de un ejecutable descargado por una víctima por un ransomware.

Se ha probado que, de forma sencilla, se pueden modificar incluso archivos descargados y comprometer los dispositivos de los usuarios. Por eso es tan importante conectarse a redes de confianza, utilizar comunicaciones cifradas como el protocolo HTTPS y comprobar la integridad de los archivos descargados.


Ponente: Pablo Plaza Martínez

Pablo es analista de ciberseguridad en el Grupo de Investigación BISITE, miembro de la selección española de ciberseguridad y participante en competiciones CTF a nivel nacional e internacional. Además, es cofundador del blog ironhackers.es