Este artículo está enfocado a entender las bases que soportan un ataque de tipo ARP Spoofing y cómo se confecciona el mismo. Asimismo, analizando las bases del ataque ARP Spoofing, serán expuestas vías de detección, dejando abiertas las puertas para profundizar tanto en la consecución efectiva del ataque vía herramientas como en la búsqueda de soluciones a dicho ataque.
La suplantación mediante el protocolo ARP no es ni mucho menos nueva, pero sigue siendo una técnica efectiva hoy día si no se interponen los controles adecuados.
Este artículo no es de nivel básico de forma que si necesita obtener conocimientos para sacarle el máximo partido es aconsejable visitar [1] [2] y [3].
De forma deliberada he tratado de exponer este artículo con un grado de detalle suficiente como para que se pueda entender cómo se realiza el ataque pero no daré el último paso mostrando la ejecución comando por comando, eso sí, me quedaré muy cerca. Esto sólo persigue el objetivo de despertar la curiosidad del lector y que indague hasta su plena comprensión y capacidad de ejecución.
Igualmente quisiera decir que hay formas automatizadas de llevar a cabo éste ataque que no exigen tocar a tan bajo nivel pero en este artículo así he querido exponerlo para llegar hasta las entrañas del ataque y que se conozca todo desde su raíz.
A lo largo de los puntos siguientes vamos a analizar en qué consiste, cómo se lleva a cabo éste tipo de ataque y también algunas de las alternativas para protegerse del mismo.
El ataque viene a modificar el flujo de los datos enviados desde un PC Víctima que pasa a través de un Gateway para hacer un ataque de tipo MITM (Man in the Middle) consiguiendo que el tráfico de la víctima pase por una máquina Atacante de forma inocua para la víctima. De esta forma, el flujo de tráfico normal para la víctima sería el que se muestra en la siguiente figura:
El sistema Atacante, que se debe encontrar en la misma LAN que la víctima, va a conseguir que el flujo de tráfico anterior se transforme en este otro:
Conseguirá el Atacante por tanto colocarse en medio del tráfico pudiendo examinar todo lo que acontece entre la máquina Víctima y el Gateway.
Hay que tener en cuenta que, a pesar de que las figuras anteriores sólo muestren una dirección del tráfico, se capturará el tráfico en ambas direcciones redirigiéndolo a sus legítimos dueños (Víctima y Gateway) según el caso.
La clave de éste ataque es aprovechar la configuración por defecto de la caché ARP. Cuando se quiere entregar un paquete IP a alguien dentro de una LAN, no se hace a través de su dirección IP sino de su dirección MAC a nivel de trama (en la capa de enlace). Esto supone que se debe traducir esa dirección IP en una dirección MAC y eso es posible entre otras cosas por la existencia del protocolo ARP que construye entradas dinámicas donde se hace corresponder una IP con su MAC asociada dentro de la tabla caché ARP. A través de una ventana de comandos podemos ver la cache ARP.
Esta caché tiene entradas estáticas y dinámicas. Éstas últimas se van añadiendo en función de los paquetes ARP que viajan por la LAN. Esta circunstancia es la que el Atacante va a aprovechar para engañar tanto a la víctima como al Gateway para hacerle creer que él es el extremo adecuado de la comunicación y que le envíe a su MAC lo que va destinado a sendas direcciones IP. Veamos como:
Partimos de la siguiente configuración para Atacante, Víctima y Gateway:
Capturando un paquete ARP de la LAN, mediante un sniffer de red como Wireshark por ejemplo, vamos a tener que modificar los octetos correspondientes en hexadecimal para lanzar paquetes ARP Response contra la Víctima y contra el Gateway (un Router en este caso).
Configuración del paquete hacia la Victima
Configuración del paquete hacia el Gateway
Para obtener la MAC del router es bastante sencillo, lanzamos un PING que nos asegurará que la entrada dínámica ARP para el router estará en la tabla y simplemente ejecutamos un “arp –a” (para sistemas Windows) que nos dará la dirección MAC.
Para que éste ataque sea efectivo e inocuo, el atacante tiene que activar la redirección IP, lo que le permitirá reenviar los paquetes hacia sus legítimos dueños.
Se construyen pues dos paquetes, uno destinado a la víctima y otro al atacante y se envían mediante un bucle de forma continua hacia sus destinatarios. Esto provoca lo que se conoce como envenenamiento ARP en las cachés de ambas máquinas y permite colocar a la máquina Atacante en el medio de la comunicación entre la Víctima y el Gateway (Router en este caso).
Una vez realizado el ataque, la caché de la máquina víctima luce de la siguiente forma:
Como se puede ver, tenemos dos entradas con la misma MAC pero diferente dirección IP de destino y de esta forma tanto lo que vaya para el Gateway como lo que vaya para el atacante irá destinado a la MAC del atacante.
La víctima sigue navegando ajena completamente a esta circunstancia.
Tal y como hemos visto en los apartados anteriores, este ataque se basa en las entradas dinámicas de la caché ARP. La víctima no dispone de una entrada estática en la caché de forma que puede ser engañada por el atacante. La primera solución sencilla es crear una entrada estática en la caché ARP de la máquina víctima donde figuren los datos de la dirección MAC y la IP del Gateway. Sin embargo esta solución no parece práctica en un principio para redes muy grandes puesto que implicaría la configuración de la entrada estática en todo el parque de PCs.
Las soluciones anti-malware detectan en su mayoría este tipo de ataque si es realizado sobre IPv4, el caso de IPv6 ya es otro cantar. Si pensamos en que para mantener a la caché ARP con la entrada falsa hay que estar generando paquetes ARP Response continuamente, este ataque se convierte en algo llamativo a nivel de red de forma que puede ser detectado por soluciones de tipo NIDS/NIPS así como por un HIDS incorporado en cualquier solución antimalware que inspeccione las entradas en la caché ARP en busca de más de una entrada con la misma MAC Address.
Diferentes soluciones comerciales implementan su detección a través de una técnica conocida como DHCP snooping y están diseñadas específicamente para parques de PCs voluminosos.
Las expuestas son sólo las formas de detectarlo que se desprenden del propio funcionamiento del ataque pero hay más, de forma que indagar te hará más sabio.
El laboratorio de pruebas para la redacción de este artículo constó del siguiente software:
Todas las pruebas fueron realizadas en un entrono controlado y sin afectación de terceros.
El autor de este artículo no se hace responsable del uso que se haga del conocimiento que en él se expone. El envenenamiento ARP puede causar denegación de servicio de forma que no se debe probar bajo ningún concepto en redes en producción sin la debida autorización o consentimiento.