top of page

PRUEBA DE CONCEPTO DE UN ATAQUE HOMBRE EN EL MEDIO.

En esta oportunidad se va a realizar una prueba de concepto (PoC) acerca del ataque hombre en el medio representado con sus siglas en inglés MITM. Para ello se va a utilizar un computador anfitrión con kali linux 2019 y una máquina virtual con el sistema operativo Windows 8.1 de 32 bits, en donde se procederá a interceptar el tráfico para poder hacerse de usuarios y contraseñas de los sitios que visite el usuario de windows.

¿Sabes que es un MITM? (en inglés, man-in-the-middle attack, MitM), también conocido como ataque Janus. El atacante es capaz de observar e interceptar mensajes entre dos víctimas sin que las víctimas conozcan que el enlace entre ellos ha sido violado. Este ataque es particularmente significativo en el protocolo original de intercambio de claves de Diffie-Hellman, cuando este se emplea sin autenticación. Hay ciertas situaciones donde es bastante simple, por ejemplo, un atacante dentro del alcance de un punto de acceso wifi sin cifrar, donde este se puede insertar como intermediario.

Antes de nada procederemos a descubrir la IP de la máquina víctima con el siguiente comando:


nmap -sn 192.168.100.0/24

Figura 1. Escaneo de red con nmap

Figura 2. Ip de la máquina víctima


Para este tipo de ataques lo primero que debemos tener en cuenta es que el tráfico de la víctima llegue hacia nosotros mediante los paquetes arp, eso es básicamente como se conoce a un ataque del hombre en el medio. Para entenderlo mejor procederemos a  verificar la tabla arp de la maquina víctima.

Figura 3. Tabla arp de la máquina víctima


¿Sabes que es el protocolo ARP? el protocolo de resolución de direcciones (ARP, del inglés Address Resolution Protocol) es un protocolo de comunicaciones de la capa de red, responsable de encontrar la dirección de hardware (Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP request) a la dirección de difusión de la red (broadcast, MAC = FF FF FF FF FF FF) que contiene la dirección IP por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde

En la figura 3 se puede observar que la tabla ARP está conformada por una dirección IP con su respectiva dirección MAC, no existe direcciones duplicadas hasta el momento, puesto que, mas adelante esta tabla será modificada duplicandose la direccion MAC del atacante para capturar el tráfico de la víctima.


A partir de aquí procedemos a configurar nuestra máquina Kali para permitirle que cuando reciba un paquete lo reenvíe (forwarding) a su destino final. El comando para activar el reenvío de paquetes es el siguiente.


echo 1 > /proc/sys/net/ipv4/ip_foward


Ahora procedemos a activar el hombre en el medio con el siguiente comando


arpspoof -i wlan0 -t 192.168.100.207 192.168.100.1


-i: interfaz

-t: target (192.168.100.207 (máquina víctima)

192.168.100.1: puerta de enlace para escuchar el trafico de internet de la víctima


Figura 4. Inicio del ataque hombre en el medio


En este momento al ejecutar nuevamente el comando arp -a en la máquina víctima, podemos observar en la siguiente figura que una dirección MAC se duplica.

Figura 5. Ataque hombre en el medio


La figura 5 indica claramente que hay un ataque de hombre en el medio ya que si nos damos cuenta la dirección MAC address de la puerta de enlace 192.168.100.1 como de la dirección 192.168.100.215 (atacante) son las mismas, es decir que las dos IP tienen la dirección MAC de la máquina del atacante. Desde este momento todo el tráfico que genere la máquina víctima tendrá que pasar por la máquina del atacante.


Por último necesitamos configurar nuestro firewall para que se redireccione el tráfico que la máquina atacante (kali) recibe mediante el ataque que se esta realizando hacia un servicio que vamos a poner a escuchar.


iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8080

iptables -t nat -A PREROUTING -p udp --destination-port 123 -j REDIRECT --to-port 123


Con estos comandos lo que estamos haciendo es que al recibir un paquete por el puerto ochenta vamos a redireccionarlo a la misma máquina kali al puerto 8080 y también vamos a poner en escucha un servicio (puerto 123) de sincronización de reloj.


Figura 6. Reglas de la tabla NAT en la cadena PREROUTING


A continuación procedemos a montar el servicio que permita alterar el reloj de la máquina víctima que por lo general se actualiza por medio del protocolo ntp (123). Para ello clonamos el siguiente paquete https://github.com/PentesterES/Delorean con el siguiente comando



Figura 7. Activando el servicio de actualización del reloj


Mediante este servicio podremos controlar la sincronización del reloj porque tenemos activado un ataque de hombre en medio. Para comprobar vamos hacer una petición de actualización de la hora mediante internet.

Figura 8. Ventana de actualización de la hora de internet


Figura 9. Envío de actualización de la hora desde kali hacia la víctima


Figura 10. Hora actualizada desde kali hacia la víctima


Como podemos observar en la figura 10 la máquina hizo una solicitud de actualización de hora por internet, entonces como el servicio delorean.py está corriendo en la máquina de kali, ésta automáticamente procede a enviarle la actualización de la hora, pero envía una hora futura. Con esto lo que se pretende es deshabilitar la caducidad de los certificados para poder descifar el tráfico https. Para ello vamos a activar el sslstrip que viene incorporado en nuestro kali linux para que esté a la escucha en el puerto 8080 y que permita descifrar dicho tráfico.


Figura 11. Activación sslstrip en kali


Ahora si procedemos a navegar desde la máquina víctima podemos apreciar que se utiliza http y no https puesto que estamos obligando al servidor a hablar SSL V2 como podemos observar en las siguientes figuras.

Figura 12. Https desactivado en Internet Explorer

Figura 13. Https desactivado en Firefox

Figura 14. Https desactivado en Chrome


Si procedemos a monitorear los cambios del archivo sslstrip.log vamos a poder obtener los usuarios y contraseñas de la máquina víctima. Esto lo hacemos con el siguiente comando


tail -f sslstrip.log


Ahora por ejemplo si ingresamos un correo y contraseña en la página de inicio de sesión de facebook podremos automáticamente capturar esos datos en el archivo sslstrip.log.

Figura 15. Iniciando sesión en Facebook con Https desactivado

Figura 16. Capturando datos en el archivo sslstrip.log


Como podemos observar este tipo de sistemas poseen esta falla de seguridad y están propensos a ser atacados de esta manera por ejemplo al estar conectados en redes wifi abiertas. Ahora lo importante sería saber que podríamos hacer para protegernos ante este tipo de ataque. Para ello debemos tomar en cuenta los siguientes aspectos:

Usar siempre HTTPS: los sitios web ofrecen comunicaciones cifradas a través de SSL, siempre que se visite una página hay que asegurarnos de que la dirección muestre HTTPS en lugar de HTTP, y si no lo hace, escríbelo manualmente.


Activar la verificación de dos pasos: la mayoría de los servicios han comenzado a ofrecer verificación de dos factores para aumentar la seguridad del acceso a las cuentas de usuario.


Usar una red VPN: de esta manera la conexión se cifra entre un cliente VPN y un servidor VPN, estableciéndose a través de un túnel de comunicación seguro.

Comentários


bottom of page