jueves, 26 de marzo de 2015

Haciendo DoS SLAAC mediante mensajes RA

Si piensas que IPv6 no tiene ningún funcionamiento en Windows estás muy equivocado y si encima la configuración la tienes por defecto te diré que IPv6 tiene prioridad sobre IPv4. En muchas redes locales IPv6 trabaja más que IPv4 en protocolos como podría ser SMB. Con solo hacer un ipconfig y ver que tenemos una dirección de vinculo local IPv6 que empiece con el famoso fe80:: posiblemente seas vulnerable a diferentes ataques que pueden realizarse sobre este tipo de red.

Hoy os vengo a contar un curioso ataque que probé y dejó mi PC colgado e incluso me tiró de la red local teniendo que volverme a conectar. Es un ataque que hace DoS a través de mensajes RA (Router Advertisement), pero antes de explicaros como es el ataque, os diré para que sirven estos mensajes y como funcionan..

Si queremos configurar el protocolo IPv6 en una red, podemos hacerlo de diferentes formas. Una de ellas es mediante el protocolo NDP (Neighbor Discovery Protocol) que vendría a ser lo mismo que ARP (Address Resolution Protocol) en IPv4 y mensajes RS (Router Solicitation), RA (Router Advertisiment) acompañado del funcionamiento SLAAC (Stateless Address Auto Configurator).

Imaginemos en una red local un equipo que está configurado para obtener el direccionamiento IPv6 de manera automática. Cuando encendemos el PC, este enviará un mensaje RS multidifusión a todos los routers que soporten IPv6 de la red para que le envien un mensaje RA al PC que acabamos de conectar.

Mensaje RS del PC pidiendo mensaje RA del router

Cuando el Router recibe el mensaje RS del PC, este responde con el mensaje RA solicitado anteriormente en el que van el prefijo y la longitud del prefijo de la red. Este mensaje se envía a todos los nodos de la red que sería la dirección IPv6 FF02::1 siendo la dirección link-local del router como la dirección IPv6 de origen.

Mensaje RA del router enviado a todos los nodos con los datos


El PC recibe el mensaje RA con los datos del prefijo y longitud del prefijo para la red local. Con esta información, el PC crea su propia dirección IPv6 a partir del prefijo de red (64 bits) y de una ID de interfaz que podría ser creada con su dirección MAC normalmente, aunque también podría hacerlo números aleatorios creados por el sistema operativo.


Como SLAAC es un proceso sin estado el PC debe verificar que su dirección IPv6 sea única en la red, por lo que envía un mensaje ICMPv6 con su propia dirección como la dirección de destino del mensaje para ver si algún nodo contesta. En caso de no contestarle nadie, la dirección podría utilizarla sin problema, pero si por el contrario alguien contestase, el sistema operativo debería determinar una nueva ID de interfaz para utilizar.


Una vez que ya hemos visto para que sirven los mensajes RS, RA y su funcionamiento vamos hacer DoS a las máquinas que están en la red, en concreto lo que vamos a intentar es envíar miles de paquetes RA a todos los nodos de la red (FF02::1) haciéndonos pasar por un router para que se fabriquen su propia dirección IPv6 y el PC quede colgado finalmente al no poder procesar tanta información consiguiendo así hacer flood de mensajes. Para ello necesitamos una máquina con Kali para poder utilizar la herramienta flood_router6 la cual es muy sencilla de utilizar.

Con kali arrancado lanzaremos el ataque simplemente escribiendo en la terminal
flood_router6 eth0

(Aunque nos diga que la aplicación está en desuso y utilicemos flood_router26 funciona perfectamente. Yo utilicé las dos y conseguí hacer DoS a la máquina).

Lanzando el ataque con la herramienta flood_router6

En el momento que le demos al enter para lanzar el ataque, empezará a enviar tramas a los equipos de la red para que se construyan su propia dirección IPv6 y estos empezarán a consumir recursos del PC quedando así totalmente inaccesibles, por ejemplo sin poder mover prácticamente el ratón, visitar cualquier página y en algunos casos echándonos de la red y por qué no, una vez esté la máquina fuera de la red y vaya a conectarse, realizar un ataque ROGUE DHCP ;-) . Los recursos del PC ascenderían al 100% incluso en algún momento sin poder hacer nada en la máquina como podemos ver en la siguiente imagen.

Consumo de CPU habiendo llegado al 100% imposible de usar

Y si analizamos el tráfico en ese momento podemos ver todas las tramas y el ruido que genera la aplicación a la hora de lanzarse. Como bien dijimos, estos mensajes RA se enviarán en modo multidifusión.

Tráfico capturado a la hora de realizar el ataque

Y por último, os dejaré dos capturas de pantalla de como quedaría nuestro equipo Windows al hacer un ipconfig para consultar las direcciones IPv6 que se llegaron a crear.

Comando ipconfig para consultar las direcciones IPv6

Comando ipconfig para consultar las direcciones IPv6

Este es simplemente uno de los muchos ataques que podríamos realizar al protocolo IPv6, por lo que debemos de concienciarnos de que aunque nosotros no veamos trabajar IPv6 y no hayamos configurado nada, IPv6 posiblemente esté presente en todos los equipos de nuestra casa y muchísimas empresas por defecto lo que lo hace aun más vulnerable.


Un saludo @Joseliyo_Jstnk