Aprende todo sobre el ataque ARP Poisoning y protégete

Aprende todo sobre el ataque ARP Poisoning y protégete

Sergio De Luz

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.

Los ataques informáticos en la red pueden ser muy diferentes y tener diversos objetivos. Algunos están diseñados para robar información y contraseñas, otros infectar el sistema para provocar un mal funcionamiento, en ocasiones espiarnos… 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.

Hay que tener en cuenta que este 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. Además, 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.
  • Secuestro de sesiones: Se utilizan para robar identificadores de las sesiones, de forma que se puede garantizar el acceso a los atacantes y los sistemas que estos utilicen.

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

 

Pasos más comunes en los ataques ARP Poisoning

Este tipo de ataques suelen seguir una estructura común, lo cual puede ayudar a identificarlos de forma más sencilla.

  • El atacante utiliza una herramienta ARP, y fija una dirección IP.
  • Se realiza un escaneo de las direcciones MAC e IP, correspondientes al host de la red objetivo.
  • Se elige el destino y procede a enviar los paquetes maliciosos. Estos contienen las direcciones previamente indicadas.
  • Los paquetes suplantan o imitan al equipo objetivo, y falsea los datos para redireccionar el ataque.
  • Se realizan robos de datos o lanzamiento de paquetes de seguimiento.

Este ataque funciona mediante la manipulación de la tabla ARP de una red. La tabla ARP se utiliza para traducir direcciones MAC a direcciones IP, lo que permite a los dispositivos de red comunicarse entre sí.

En un ataque ARP Poisoning, el atacante envía falsos mensajes ARP a los dispositivos de la red. Estos mensajes ARP contienen información falsa que hace que los dispositivos de la red asocien la dirección MAC del atacante con la dirección IP de otro dispositivo de la red, como el router o el servidor. Una vez que la tabla ARP de un dispositivo ha sido comprometida, todo el tráfico que se dirige a la dirección IP del dispositivo comprometido se reenvía al atacante. El atacante puede entonces examinar, manipular o bloquear el tráfico que se dirige a la víctima.

Este se divide en dos etapas: la etapa de envenenamiento y la etapa de escucha. En la etapa de envenenamiento, el atacante envía paquetes ARP falsificados a los dispositivos de la red. Estos paquetes falsificados contienen una dirección MAC falsa que se asocia con una dirección IP válida de otro dispositivo de la red. De esta manera, cuando un dispositivo desea comunicarse con el dispositivo asociado a esa dirección IP, enviará paquetes a la dirección MAC del atacante en lugar del dispositivo real.

En la etapa de escucha, el atacante intercepta el tráfico que fluye entre los dispositivos. El atacante puede examinar el tráfico para obtener información sensible, como credenciales de inicio de sesión o información financiera. También puede manipular el tráfico para lograr sus objetivos. Por ejemplo, puede bloquear el tráfico para impedir que los usuarios accedan a recursos en línea o redirigir el tráfico a sitios web falsos para el robo de información. En todo caso, cada atacante puede establecer diferentes variables en el ataque. De forma que pueden varias en cierto modo.

 

¿Y el ataque MAC Flooding?

Cada uno de los dispositivos que utilizamos para conectarnos a la red tiene una dirección MAC diferente. Esto es necesario para poder ser identificado por el router y, en definitiva, poder conectarnos y navegar por Internet. Es, por decirlo de alguna manera, como un identificador. En total son seis bloques de dos caracteres hexadecimales. También se le conoce como dirección física.

En una red los switches gestionan tablas de direcciones MAC. Esto lo hacen para dirigir el tráfico entre los diferentes puertos de una manera más eficiente. Lo que hace un atacante con esta amenaza es crear una inundación, una solicitud masiva para lograr el colapso de esta tabla que mencionamos.

Con esto logran que, en caso de un ataque exitoso, el switch pase a enviar paquetes que reciba a través de todos sus puertos y así poder interceptar el tráfico. Es lo que se conoce también como saturación de direcciones MAC.

Lo que hace el atacante en este caso es bombardear el switch con una gran cantidad de solicitudes, cada una de ellas con una dirección MAC falsa, con el objetivo de saturar rápidamente esa tabla. Esto significa que van a enviar miles de direcciones falsas en segundos.

Cuando esto ocurre, el switch comienza a redireccionar tráfico a través de todos los puertos y permite utilizar un sniffer para capturar el tráfico. Esto, como vemos, pone en riesgo la privacidad y seguridad. Hay que tener en cuenta que el tamaño máximo de la tabla de direcciones MAC puede variar en función del switch que estemos utilizando. Este se puede evitar al llevar a cabo las siguientes acciones:

  • Limitar los puertos.
  • Asignación estática de direcciones MAC.
  • Deshabilitar puertos que no se usen.
  • Evitar conexiones de otros dispositivos.
 

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 prevenir este ataque

Actualmente podemos encontrar varios métodos, los cuales nos ayudan a prevenir este tipo de ataques. Cabe destacar, que estos pueden ser complementarios, de forma que se pueden utilizar todos juntos. Estos son:

  • Filtrado de paquetes: Estos filtros se encargan de inspeccionar todos los paquetes que se transmiten a través de una determinada red. Son muy útiles contra el ARP, ya que pueden filtrar y bloquear paquetes, que contengan información de una fuente de conflicto.
  • Software de detección: En el mercado podemos encontrar muchos programas que nos ayudan a prevenir estos ataques. Su labor es la de inspeccionar y certificar los datos, previamente a su transmisión. En el caso de que encuentre algo que podría suponer un peligro, lo bloquea.
  • Uso de protocolos criptográficos: Estos protocolos se encargan de reforzar la seguridad en la prevención de estos ataques. Para ello, usan el cifrado de datos, y lo hacen previamente a que sean transmitidos. Del mismo modo, revisan la autentificación cuando son recibidos. Algunos de ellos con TLS, SSH, HTTPS, entre otros.
 

Evitar la suplantación de ARP

Para tratar de evitar este tipo de suplantaciones, podemos llevar a cabo algunas acciones. Estas no es que lo eviten totalmente, pero si lo pondrán mucho más complicado en caso de que se llegue a producir un ataque.

  • Monitorización: Hay muchas herramientas en Internet que nos ayudan a monitorizar y encontrar posibles problemas en la red. Muchas de ellas son gratuitas, incluso de código abierto. Lo más recomendable es utilizar una aplicación que nos permita tener control sobre toda la actividad del tráfico de Ethernet. Esto nos da una noción de lo que ocurre con todos los dispositivos que se encuentran conectados, lo cual también sirve para ver si hay intrusos.
  • Dividir la red: Subdividir la red en diferentes partes puede ser una buena idea, sobre todo para evitar que un posible ataque llegue a toda ella. De este modo, solo afectará a una pequeña parte. En todo caso, este tipo de configuraciones son más complejas y requieres más equipamiento. Lo cual afecta directamente a la inversión económica. Puede ser de utilidad contar con algún router añadido, u otros dispositivos donde se pueda gestionar la seguridad.
  • Protocolos: Hay algunos protocolos que podemos utilizar para estar un poco más seguros. Un ejemplo de ello es Secure Neighbor Discovery, el cual es compatible con los sistemas operativos más conocidos. El problema es que puede ser un poco complejo en algunos casos.
  • Otras protecciones: Mantener la red protegida con todo lo posible, siempre va a ser buena idea. Siempre puede tener alguna brecha de seguridad, pero lo mejor es asegurarse de que esta no esté en nuestra mano. Proteger la red quiere decir, que es necesario proteger el router, y todos y cada uno de los dispositivos que componen la misma. Una de las mejores prácticas, siempre será mantener los dispositivos totalmente actualizados.
 

¿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.

¡Sé el primero en comentar!