rrhunter: script en Perl para "cazar" rogue routers en IPv6

Una de las cosas que hacen especiales a IPv6 es el "descubrimiento de vecinos" o “Neighbor discovery”, tal y como se detalla en la RFC4861. Cuando un host que soporta IPv6 se conecta a una red normalmente espera un paquete de anuncio del router, pero también puede generar algunos paquetes de solicitud para descubrir más rápidamente los routers IPv6 que estén conectados a su misma red. Una vez recibido, el router responde y envía la información necesaria al host para que pueda configurar su pila IPv6. Uno de los datos es el prefijo de red (por lo general un /64), que se utiliza para generar las direcciones IPv6. Dichos anuncios o mensajes de solicitud se envían a la dirección especial "ff02:: 1", que representa a todos los hosts conectados en la red.

Es aquí donde rrhunter nos ayudará como una interesante prueba de concepto. Se trata de un script en Perl que transmite paquetes RS y escucha las respuestas de los routers. Si la dirección IP del router cambia o no es la esperada, es posible la presencia de un router falso o rogue.

Ejemplo de uso:

# ./rrhunter.pl -n fe80::230:48ff:fe27:4e40 -d -i eth1
+++ Debug enabled.
+++ Using interface eth1.
+++ Running with PID 12252.
+++ Expected IPv6 neighbor: fe80::230:48ff:fe27:4e40
+++ Listening on eth1.
+++ Router Solicitation packet sent!
+++ Detected IPv6 neighbor: fe80::230:48ff:fe27:4e40.


Referencia: PenTestIT

Comentarios