Aprende todo sobre el ataque ARP Poisoning y protégete

Los ataques ARP Poisoning o también conocidos como ARP Spoofing, son uno de los ataques Man in the Middle más conocidos y más peligrosos que podemos encontrarnos en las redes cableadas e inalámbricas. Si un ciberdelincuente realiza correctamente este ataque, será capaz de interceptar todas las comunicaciones entre la víctima y la conexión a Internet, además, con técnicas algo más avanzadas, podría incluso modificar el tráfico al vuelo e incluso «levantar» la seguridad del protocolo HTTPS para convertirlo en HTTP y vulnerar nuestra seguridad. Hoy en RedesZone os vamos a explicar qué hace un ataque ARP Poisoning, cómo se hace con la popular distribución Kali Linux y cómo podemos protegernos de este ataque de red.

¿Qué es el protocolo ARP?

El protocolo ARP (Address Resolution Protocol) es uno de los protocolos fundamentales en redes IPv4, sin este protocolo no podríamos obtener dirección IP por DHCP ni tampoco comunicarnos con otros equipos, aunque hayamos puesto una dirección IP privada en nuestro equipo. El protocolo ARP permite que las comunicaciones de red puedan llegar correctamente a su destino, su objetivo es el de traducir las direcciones IP (direcciones lógicas) en una dirección MAC (direcciones físicas) y viceversa. El protocolo ARP se encarga de formar una tabla con la pareja IP-MAC, y que los diferentes equipos de la red local puedan comunicarse entre ellos sin problemas, además, también se encarga de que los equipos puedan comunicarse con el router para acceder a Internet, ya que, el router también tendrá una dirección IP de la LAN y una dirección MAC, donde los diferentes PC y dispositivos enviarán sus tramas para ser gestionadas por el router.

El protocolo ARP solamente existe en redes IPv4, en redes IPv6 este mismo trabajo lo realiza ICMPv6 que incorpora más funciones que en IPv4. Nosotros mismos podemos ver la tabla ARP de nuestro ordenador para ver todos los equipos de la red local con los que actualmente hay comunicación, si abrimos una consola y ponemos el siguiente comando:

arp -a

En la siguiente imagen se pueden ver las direcciones IP privadas (direcciones de Internet) y también las direcciones MAC de todos los dispositivos (Dirección física). Podremos ver todas las tablas ARP de las diferentes tarjetas de red que tengamos, un detalle muy importante, es que podremos quitar o poner parejas de IP-MAC de esta tabla ARP de manera manual.

Todos los equipos mantienen esta tabla ARP a modo de caché, por lo que se irá renovando temporalmente o a medida que aparezcan nuevos equipos con los que queremos comunicarnos, es decir, es una tabla dinámica y va cambiando dependiendo de las comunicaciones que vayamos a realizar. De esta forma, si un determinado equipo no conoce la MAC de una dirección IP, tendrá que enviar un paquete se solicitud ARP, solicitando a otros equipos la dirección MAC correspondiente.

Una de las entradas más importantes de la tabla ARP es la que muestra el router, generalmente la primera dirección IP de la subred. Los ataques ARP Poisoning se centran específicamente en esta entrada, y ahora os explicaremos por qué. El protocolo ARP no fue diseñado con el objetivo de ser seguro, por lo que no verifica en ningún momento que la respuesta a una solicitud ARP realmente provenga de un host legítimo, cualquiera se podría hacer pasar por otro host de forma fácil y rápida, realizando un ataque ARP Poisoning.

En qué consiste el ataque ARP Poisoning

El ataque ARP Poisoning consiste en envenenar la tabla ARP de una víctima, haciéndola creer que el router es el atacante, con el objetivo de que la víctima reenvíe todo su tráfico a este atacante para realizar un sniffing de todas y cada una de las conexiones que realice. De esta forma, un dispositivo víctima podría enviar, sin saberlo, todo su tráfico de red a este atacante, y realizar dos tipos de ataques diferentes:

  • Ataque DoS: si el atacante no reenvía las conexiones al router para salir a Internet, estaremos haciendo una denegación de servicio a la víctima, es decir, le estaremos dejando sin conexión a Internet.
  • Ataque Man in the Middle: si el atacante reenvía las conexiones al router para salir a Internet, estaremos haciendo un ataque MitM, obteniendo todo su tráfico de red para su posterior estudio, además, también se podría modificar al vuelo la información que envíe o reciba la víctima, de hecho, uno de los ataques más peligrosos son los de SSL Stripping, por los que un atacante es capaz de «levantar» el tráfico de HTTPS y convertirlo en HTTP para espiar todas las comunicaciones. El atacante podrá continuar enrutando todas las comunicaciones y obtener toda la información, que es lo más normal, de hecho, podrá robar las cookies de la víctima y hacerse pasar por él sin necesidad de robar cuentas de usuario y contraseñas.

Para poder realizar un ataque ARP Poisoning, es necesario cumplir con ciertos requisitos:

  • El atacante debe estar dentro de la misma red que la víctima, misma red cableada o misma red WiFi.
  • Deberá escanear toda la red local en busca de la dirección IP de la víctima, para posteriormente lanzarle el ataque.
  • Debe hacer uso de diferentes herramientas, con el objetivo de crear un paquete ARP falso y enviarlo a la víctima. Dos herramientas muy conocidas para realizar esta tarea son Arpspoof y también BetterCap, de este último tenéis un completo tutorial en RedesZone.
  • Una vez que se envíe a la víctima los paquetes ARP falsos, creerá que nosotros somos el router. Pero para que la comunicación sea bidireccional también es necesario hacer creer al router que nosotros somos la víctima, por tanto, tendremos que lanzar dos ataques ARP Poisoning, uno a la víctima y otro al router.

Una vez que tanto la víctima como el router hayan recibido los paquetes ARP falsos, se comunicarán con el atacante directamente en lugar de hacerlo entre ellos, y ahora mismo el atacante ya estará en el medio de la comunicación. Ahora el atacante

Cómo hacer un ataque ARP Poisoning con Kali Linux

Lo primero que debemos hacer, en la lista de aplicaciones, es buscar el apartado «9. Sniffing y Spoofing«, ya que es allí donde encontraremos las herramientas necesarias para llevar a cabo este ataque informático. A continuación, abriremos «Ettercap-graphical» y veremos una ventana similar a la siguiente.

Ahora tendremos que introducir la contraseña de super usuario, es decir, la clave de «root», por defecto la clave es «kali».

El siguiente paso es seleccionar los parámetros básicos de Ettercap, podemos dejarlo con los parámetros por defecto, es decir, que empiece a hacer sniffing al inicio, seleccionaremos la tarjeta de red que nosotros queramos, por defecto es eth0. El resto de opciones las dejamos como están, y pulsamos en el botón de la parte superior derecha para aceptar los cambios.

Una vez que hayamos iniciado el programa, tendremos que pinchar sobre la «lupa» que veis en la parte superior izquierda, lo que hará Ettercap es escanear toda la red local a la que estamos conectados en busca de los diferentes dispositivos que hay conectados, y por tanto, alguna víctima a la que atacar.

Aquí deberían salirnos todos los hosts o dispositivos conectados a nuestra red. Sin embargo, en caso de que no salgan todos, podemos realizar una exploración completa de la red simplemente pinchando nuevamente en la «lupa» que tenemos en la parte superior izquierda. Tras unos segundos, la lista de antes se debería actualizar mostrando todos los dispositivos, con sus respectivas IPs y MACs, conectados a nuestra red.

En caso de querer realizar un ataque dirigido contra un solo host, por ejemplo, suplantar la identidad de la puerta de enlace para monitorizar las conexiones de la víctima que nos aparece en la lista de dispositivos, antes de empezar con el ataque debemos establecer los dos objetivos.

Para ello, debajo de la lista de hosts podemos ver tres botones, aunque nosotros prestaremos atención a los dos últimos:

  • Target 1 – Seleccionamos la IP del dispositivo a monitorizar, en este caso, el dispositivo víctima, y pulsamos sobre dicho botón.
  • Target 2 – Pulsamos la IP que queremos suplantar, en este caso, la de la puerta de enlace.

Todo listo. Ahora solo debemos elegir el menú «MITM» de la parte superior y, en él, escoger la opción «ARP Poisoning«.

Nos aparecerá una pequeña ventana de configuración, en la cual debemos asegurarnos de marcar «Sniff Remote Connections«. También debemos dejar desmarcada la opción de «only poison one-way», esta opción no realizará el ARP Poisoning en las dos direcciones sino solamente en una, por tanto, no tenemos comunicación bidireccional. Es muy importante dejar esta opción «only poison one-way» desmarcada, es decir, tal y como está por defecto.

Pulsamos sobre «Ok» y el ataque dará lugar. Ahora ya podemos tener el control sobre el host que hayamos establecido como «Target 1«.

Lo siguiente que debemos hacer es, por ejemplo, ejecutar Wireshark para capturar todos los paquetes de red y analizarlos en busca de información interesante o recurrir a los diferentes plugins que nos ofrece Ettercap, como, por ejemplo, el navegador web remoto, donde nos cargará todas las webs que visite el objetivo. Por ejemplo, nosotros hemos hecho el típico ping a Google, el equipo atacante lo ha capturado todo correctamente.

Estas técnicas solo son para uso privado dentro de nuestra propia red, o en una red en la que tengamos permiso, lógicamente estas técnicas se pueden aplicar para fines ilegales. Si utilizamos estas técnicas para monitorizar los sistemas de otras personas, estaremos cometiendo un delito.

Una vez que ya hemos aprendido cómo podemos hacer este ataque con Kali Linux de forma fácil y rápida, vamos a ver cómo podemos mitigar este ataque.

Detectar y mitigar este ataque para navegar seguro

Este ataque a las redes de datos es muy popular y está al alcance de cualquiera, por este motivo, es muy importante saber detectar si nos están haciendo este ataque, y también cómo podemos mitigar este ataque para que no tenga éxito. En muchos casos, lo único que podremos hacer es cifrar todas nuestras comunicaciones para que, aunque puedan capturar toda la información, no puedan leer absolutamente nada. A continuación, podéis ver todos los detalles para detectar y mitigar este ataque.

¿Cómo puedo detectar que me están haciendo este ataque?

La forma más sencilla para detectar que te están haciendo un ataque ARP Poisoning o ARP Spoofing es comprobar la tabla ARP, con el comando anterior de «arp -a» podremos ver la tabla ARP completa de nuestro dispositivo, en el caso de que tengamos dos direcciones IP con la misma dirección MAC física, eso significa que alguien nos está realizando un ataque Man in the Middle con un ARP Poisoning. Por ejemplo, imaginemos que tenemos la siguiente tabla ARP:

Dirección de Internet   Dirección física

192.168.1.1      00-01-02-03-04-05
192.168.1.2      00-01-02-03-04-AA
192.168.1.3      00-01-02-03-04-05

En este caso se puede ver perfectamente que, tanto el router como el segundo PC tienen exactamente la misma dirección MAC. Esto significa que nos están envenenando la tabla ARP. Existen programas de seguridad que permiten detectar de forma automática si nos están realizando un ataque de estos, continuamente estará comprobando la tabla ARP para encontrar si existe una dirección MAC duplicada, entonces enviará al usuario una alerta.

Medidas para mitigar este ataque

De cara a un usuario, la única medida que puede tomar para mitigar este ataque es usar una VPN, esto garantizará la confidencialidad y autenticidad de todas las conexiones. Debemos recordar que, en ciertos casos, es posible vulnerar las conexiones HTTPS haciendo uso de técnicas SSL Stripping, por tanto, si quieres estar protegido frente a este ataque nuestra recomendación es que uséis VPN de tipo IPsec, OpenVPN o WireGuard, todas ellas nos garantizarán seguridad y privacidad en la red.

Otra medida que podría tomar un usuario es dar de alta una entrada estática en nuestra tabla ARP, sin embargo, esto solamente funcionará si siempre nos conectamos a las mismas redes, de lo contrario, tendríamos que estar dando de alta y de baja la entrada ARP, lo que resulta muy incómodo. Si es un equipo estático como un PC de sobremesa, sí se podría hacer así, sin embargo, es mucho mejor hacerlo a nivel de red por parte del administrador.

En el caso de los administradores de la propia red, actualmente los switches y routers/firewalls disponen de técnicas anti ARP-spoofing, de esta forma, si activamos estas medidas de seguridad evitará que un atacante ataque a otro usuario dentro de nuestra propia red, por tanto, sería una característica muy importante con el objetivo de proteger a sus propios usuarios. También podríamos activar el DHCP Snooping para evitar que un atacante monte su propio servidor DHCP para proporcionar direccionamiento a una víctima en concreto o a varias.

Por último, una vez que hayamos realizado estas medidas de mitigación, nuestra recomendación es que vosotros mismos hagáis este tipo de ataques para comprobar que vuestras defensas son efectivas, es decir, es muy importante que comprobéis vuestra propia seguridad.