Ataque Man In The Middle (MITM)
El ataque Man In The Middle, o en español Hombre en el Medio, consiste en introducirse en la comunicación entre dos equipos para que todo el tráfico pase por nosotros y poder así desencriptar sus datos, contraseñas, etc.
Para este tipo de ataques se necesitan dos máquinas víctima, que bien podría ser el servidor y un equipo de una red empresarial, o bien el router y el equipo de nuestra víctima real, además de nuestro propio equipo. Como no vamos a hackear a nadie realmente, vamos a usar tres equipos o máquinas virtuales. Usaremos un Kali Linux como atacante, ya que dispone de las aplicaciones necesarias para este tipo de ataques y un Windows XP y un Windows 2003 Server ambos con dominio. Estos dos últimos pueden ser sustituidos por cualquier otras máquinas.
Lo primero que vamos a hacer es abrir el Ettercap-graphical en Kali y el WireShark. Este último programa es un potente sniffer de red, muy útil para los que trabajamos administrando redes informáticas, ya sea para ver posibles ataques, o simplemente para tener un mayor control del tráfico de red, e incluso diagnosticar problemas de red por exceso de tráfico.
Para abrirlo vamos a Aplicaciones, Kali Linux, Husmeando, Envenenamiento de redes y ettercal-graphical. El WireShark dispone de una guía de uso en la sección Manuales.
Se abrirá la siguiente pantalla.
En el menú Sniff, pulsamos sobre Unfied sniffing.
Ahora si disponemos de más de una tarjeta de red, o interface de red virtuales, seleccionamos la correspondiente, en mi caso eth1. Debe ser el interface de red que esté configurado con una IP dentro del rango de la víctima, que lógicamente conoceremos o será imposible atacar.
Para saberlo existen miles de aplicaciones, de dispositivos móviles o de ordenador, cualquiera nois servirá, sino podéis acudir a la guía de hackear wifi, donde se muestran los comandos paso a paso para obtener esas IP.
Ahora nos aparecerán nuevos menús. Le damos a Hosts y Scan for hosts para ver que equipos existen en ese rango de IPs.
Una vez finalizado, que no tarda apenas, damos de nuevo al menú Hosts y a Hosts list para que nos muestre que equipos a encontrado.
Encuentra los equipos de la red, mostrando sus IP y sus direcciones MAC de las tarjetas de red de cada equipo. Como véis, la MAC siempre es diferente, no existen dos iguales salvo que cambiemos una virtualizando esa dirección para falsearla. Lógicamente las IP deben ser también diferentes o tendrían problemas de conexión.
En mi caso la IP acabada en 31 es el Servidor y la 15 el Windows XP.
Ahora debemos añadir objetivos, en este caso es muy simple, ya que sólo he levantado dos máquinas virtuales a parte de la atacante. Simplemente marcamos una de las dos víctimas y le damos al botón Add to Target1. Después marcamos la otra víctima y damos al botón Add to target 2.
Ahora vamos a realizar un envenenamiento del protocolo ARP para que las víctimas se crean que soy la otra máquina de su red y me manden a mí su tráfico. Damos al manú Mitm y a Arp poisoning.
Nos saldrá la siguiente pantalla, marcamos la opción Sniff remote connections y aceptamos.
Ahora dejamos nuestro sniffer esnifando el tráfico. Damos a Start y a Start sniffing.
Vamos al XP y ejecutamos el comando arp –a para ver que esté corecto. Esto se hace en Inicio, Ejecutar y escribimos CMD. Nos saldrá la pantalla negra o consola donde vemos la diferencia del uso del comando arp –a antes y después del envenenamiento. La dirección IP acabada en 21 es la atacante, en este caso la Kali Linux. En la primera ejecución vemos que el Kali y el Windows Server tienen diferentes IP y diferentes direcciones MAC. Tras la ejecución del mismo comando tras el envenenamiento ARP, vemos que el Windows XP cree que el Windows Server tiene la dirección MAC del Kali :)
Con esto hacemos que el tráfico dirigido al servidor, o router si fuese el caso, pase por nosotros.
Si vamos al Windows Server y ejecutamos el mismo comando, comprobaremos que todas las MAC serán las del Kali también tras el envenenamiento ARP, en este caso la del Windows XP.
La que muestra con otra MAC es de una tarjeta de conexión a internet, que no necesitamos envenenar, ya que sólo queremos capturar el tráfico entre ambas máquinas.
Vamos ahora al Wireshark y lo ponemos a esnifar.
Lanzamos un ping desde la terminal del Windows XP al Servidor de Windows (comando: ping 192.168.20.31). Vemos como las IP que aparecen sólo son del XP y el Servidor, no aparece el atacante por ningún lado.
Ahora vamos a crear un archivo iptable.sh en la carpeta home o personal del root para permitir que todo el tráfico pase por el Kali, para eso creamos unas rutas en el iptable o firewall por defecto del Kali Linux. Esto también se puede hacer con el comando nano iptables.sh
Le copiamos lo siguiente dentro del archivo iptables.sh que hemos creado. Podemos hacerlo por entorno gráfico o desde línea de comandos con un editor, por ejemplo el Nano con el comando sudo nano iptables.sh desde el directorio donde deseemos crearlo.
Le cambiamos los permisos al archivo creado para evitar problemas desde la terminal de comandos del Kali.
Ejecutamos el archivo creado.
Ahora pasamos al Ettercap.
Añadimos las dos direcciones como target 1 y 2 y hacemos el envenenamiento ARP como antes y volvemos a esnifar como ya hemos hecho.
Hacemos un sslstrip desde la consola de comandos del Kali para que las webs SSL (https) se conviertan en simples http y el Ettercap pueda obtener las contraseñas. Para ello escribimos lo siguiente.
Ahora vamos al Windows XP y entramos por ejemplo a la web de Instagram.
Nos logueamos con un usuario y contraseña ficticia para ver que funcione.
Nos vamos al Ettercap y vemos el enlace del Instagram, usuario y contraseña, en este caso cursoseguridad y Seguridad. Ya lo tenemos :)
Ahora probamos con gmail por ejemplo y vemos que también funciona.
Como vemos se observa en abierto la cuenta de mail y su correspondiente contraseña.
Ahora abrimos el Wireshark y esnifamos de nuevo. Nos mandamos un mail desde el Windows XP a nosotros mismos para probarlo. Nos mostrará muchos paquetes de tráfico.
Para evitar ver otros paquetes que no sean las solicitudes del mail, ponemos en el filtro http.request.method == POST y damos a Apply. Ya sólo nos mostrará el paquete deseado.
Damos botón derecho del ratón sobre ese paquete y en Follow TCP Streem.
Y vemos en el contenido del paquete, quien manda el mail, a donde, el asunto y el contenido del mail, todo ello en rojo, en este caso se lee Prueba de correo como asunto y Hola como contenido, pero subiendo un poco muestra el origen y destino del correo.
Y bueno, así con todo, una vez en medio, ya todo lo que trasmita estará a nuestra merced. Este es con diferencia uno de los métodos más usados por los hackers. Para entrar en la red, suelen aprovechar las vulnerabilidades, principalmente el Wifi, y una vez dentro pueden hacer todo lo que desean, incluso hacerse administradores de los sistemas usando herramientas como MetaSploit.