rrhunter: Perl script for detecting Rogue IPv6 Routers

by Black on January 4, 2012

in Security Reconnaissance, Security tools, Wireless

In 2011 it was an officially end of IPv4 and beginning of IPv6. Many organization specially ISP have moved their backbone to IPv6. Very slow but gaining control is IPV6 and for that matter security tools have also being developed rrhunter is one of them.

rrhunter

What makes IPv6 special is “Neighbor discovery” as described in RFC4861. When an IPv6-enabled host connects to a network, it waits for a router advertisement packet but it can also generate some solicitation packets to discover more quickly if IPv6 routers are connected on the same wire. Once received, the router will respond and send the required information to the host to configure its IPv6 stack. One of the information is the network prefix (usually a /64) which will be used to generate IPv6 addresses. Such advertisement or solicitation messages are sent to the special address “ff02::1” which represents all the hosts connected on the wire.

So This is where rrhunter helps As a proof of concept, this Perl script will broadcast RS packets and listen to potential router responses. If the router IP address changed or is not the expected one, if will report the problem.

Example of using rrhunter

# ./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.

As it is written in Perl script we can change it as per our required environment for testing.

Download rrhunter:

rrhunterrrhunter.plhttps://github.com/xme/rrhunter#readme

If you enjoyed this article, you might also like:

{ 0 comments… add one now }

Leave a Comment

* Copy this password:

* Type or paste password here:

Previous post:

Next post: