Ataques Man In The Middle

From FdIwiki ELP
Jump to: navigation, search

¿ Qué es un ataque Man In The Middle?

Un ataque de hombre en medio consiste en la interceptación y modificación de una comunicación entre dos equipos. Este tipo de ataques es común realizarlo dentro de redes LAN o redes Wifi y es muy peligroso ya que se pueden obtener información sensible de la víctima/s y es difícil identificarlo si no se poseen unos mínimos conocimientos sobre el tema.

¿Por qué es peligroso este tipo de ataques?

Si alguien se interpone entre la comunicación de nuestro ordenador y el router, tendrá a su disposición todos los paquetes de red que se envíen hacia internet y los de vuelta (del router al equipo), estos pueden ser interceptados por el atacante con herramientas que esnifan el trafico de red y por ejemplo capturar nuestras credenciales de acceso a determinadas páginas web, robo de cookies, peticiones DNS, entre otra mucha información sensible.

¿Cómo funciona?

Para entender como funciona el ataque MitM hay que saber como se mandan paquetes en una red y que protocolos intervienen y su funcionamiento. Uno de los protocolos usados a la hora de enviar un paquete por la red es el ARP (Address Resolution Protocol - Protocolo de resolución de direcciones) que se encarga de devolver la dirección física (MAC) de un equipo a partir de una dirección IP. Estos datos quedarán guardados en la máquina en una tabla caché para que cada vez que se quiera mandar un paquete a dicho ordenador no se tenga que volver a realizar otra consulta ARP. El funcionamiento básicamente es que se envía un paquete ARP Request a la dirección de Broadcast (FF:FF:FF:FF:FF:FF), es decir a toda la red ya que todos los equipos procesan los paquetes que lleguen con dicha dirección, y en ese paquete va encapsulada la dirección IP por la que se pregunta, y si alguno de los equipos dentro de la red le corresponde dicha dirección IP entonces contesta con un ARP Reply mandando su dirección física, en caso contrario descarta el paquete. ¿Qué pasaría si pudiéramos mandar paquetes ARP Reply modificados por la red con la dirección física que nosotros queramos? Con esto podríamos engañar a un equipo víctima y hacer que mandara todos sus paquetes por ejemplo en vez del router a nuestra máquina y así poder interceptar todos los datos que envía por la red mediante un sniffer.

Mitm.png

Ejemplo:

Imaginemos la siguiente red con los 4 equipos conectados al router.

Mitmred.png


El "Equipo atacante" quiere interceptar la conexión de "Equipo víctima" para ello el atacante tiene que hacer creer al equipo víctima que él es el router, esto se consigue creando un paquete ARP Request modificado en el cual se pone como dirección IP origen 192.168.1.4, como dirección IP destino 192.168.1.1 que es la que corresponde con el router y en la dirección MAC destino pone la del equipo atacante, es decir la AA:BB:CC:44:55:66, con todo el paquete ya montado lo enviamos por la red para que lo capte el equipo víctima y guarde en su tabla caché los datos falsificados que le hemos mandado quedando así:


Dirección de Internet                         Dirección física
     192.168.1.1                              aa:bb:cc:44:55:66


Con lo cual ahora todos los paquetes que el equipo víctima mande hacia el router, en realidad serán enviados al equipo atacante pudiendo ser capturados con programas como Wireshark

Mitigar estos ataques

Para evitar que nos hagan este tipo de ataques podemos defendernos de diferentes formas:

  • Si estamos en nuestra red de casa:

Crear tabla de rutas ARP estáticas en nuestro equipo con el comando

Windows:

arp -s <192.168.1.1> <AA:BB:CC:11:22:33>

Si este comando no funciona usar:

netsh interface show interface

Arp.png

netsh interface ip add neighbors "Wireless Network Connection" <192.168.1.1> <xx-xx-xx-2A-32-4E>

Para ver las entradas creadas ejecutamos el comando

arp -a 

Linux

$ sudo arp -s <192.168.1.1> <AA:BB:CC:11:22:33>

Para mostrar las entradas estáticas creadas

$ arp -a -n 
  • Si estamos en una red que no es de confianza como por ejemplo la de un centro comercial:

- Usar VPN

- Servidor Proxy con tráfico de datos cifrado

- Túneles SSH

- Dentro del navegador entrar en páginas seguras con cifrado HTTPS

Herramientas útiles

  • Ataque

Ettercap

Sslstrip

Evilgrade

Xerosploit

Cain & Abel

Evil Foca

MitmProxy

mitmAP

  • Android

- dSploit

- zANTI

- Network Spoofer

  • Interceptación de tráfico

Driftnet

Wireshark

Dsniff

Tcpdump

  • Defensa

Dynamic ARP Inspection

PatriotNG

Marmita

DecaffeinatID

ArpWatch

    • Plugins Navegador

HTTPS Everywhere

Force TLS

Herramientas para Android

zAnti

zAnti es una solución interesante que se puede utilizar para probar la seguridad de la red. Ademas presenta informes de cada prueba realizada. Una vez descargado el archivo apk, deberemos copiarlo a nuestro dispositivo móvil.

zAnti es intuitivo sin mucha complejidad nos brinda muchas funciones para realizar test de seguridad. Podemos también intentar realizar ataques buscando el router de una red, de esta manera podremos acceder a todos los dispositivos conectados y utilizar un ataque Man in the Middle para obtener todo el trafico o atacar un determinado dispositivo.

Otra utilidad es auditar la seguridad de un sitio web o un servidor, solo tenemos que ir a la pantalla principal de zAnti, acceder al icono + y añadir un dominio.

Utilizando la opción ataque Man in the Middle podemos realizar diversas tareas y pruebas como :

  • Encontrar y visualizar los sitios web se están navegando desde la red.
  • Determinar que imágenes se están visualizan de una IP.
  • Redireccionar páginas que se visualizan desde protocolos seguros HTTPS a el protocolo HTTP o a otra página.
  • Atacar una web y reemplazar imágenes que se muestran en los navegadores web.
  • Visualizar e interceptar archivos que se descargan desde una ip o en la red.
  • Capturar una clave y usuario cuando se accede a una web y por otra parte tenemos activado zAnti.