Researchers demonstrate how IPv6 can easily be used to perform MitM attacks


Many devices simply waiting for router advertisements, good or evil.

When early last year I was doing research for an

article

on IPv6 and security, I was surprised to learn how easy it was to set up an IPv6 tunnel into an IPv4-only environment. I expected this could easily be used in various nefarious ways.

I was reminded of this when I read about a DEFCON

presentation

on using IPv6 to perform a man-in-the-middle attack on an IPv4-connected machine.

I did not attend DEFCON, but the presenters Brent Bandelgar and Scott Behrens provided details in a

blog post

for their company

Neohapsis

as well as in their presentation

slides

. Moreover, they

shared the source code

of the tool they developed on

Github

.

The attack refines the proof of concept of an attack possibility

described in 2011

, by making it also work against

Windows 8

and providing a

bash

script that is supposed to work out-of-the-box. This script will no doubt be popular among penetration testers, but also shows possibilities for those with malicious motives.

For me, the script didn’t work right away, but some minor tweaks got it working, after which the traffic from my wife’s

Windows 7

laptop was flowing through my virtual

Ubuntu

server. And while I didn’t even attempt to read the traffic generated by this ‘husband-in-the-middle’ attack, I could have done. I could also have performed a similar attack in a local

Starbucks

.

The attack makes use of the fact that all modern operating systems support both IPv4 and IPv6 connections. This in itself is a good thing for the migration towards IPv6, as is the fact that the IPv6 connection, if available, takes precedence.

Moreover, operating systems such as

Windows 7

and

8

have DHCPv6, the IPv6-version of DHCP, enabled by default. This means that if they haven’t already got an IPv6 connection, they will obtain one from any DHCPv6 server running on the local network.

This is what the

Neohapsis

researchers do to get machines to connect to their device. As this merely allows them to capture IPv6 traffic in a IPv4-only network, they then use a protocol called

NAT64

to allow their server to route this traffic to the IPv4-Internet.

NAT64 is one of several protocols used to make the migration towards IPv6 easier: it allows IPv6-only networks to connect to IPv4-only services on the Internet.





NAT64 in a rogue set-up, with the NAT64 server on the right.

It works by setting up a DNS server that returns IPv6 addresses in which the IPv4 address is embedded. If a request is made for the AAAA record (IPv6 address) of a domain, the response will be an address in some predefined

/96

IPv6 subnet – that is, a subnet in which all but the final 32 bits are fixed. These 32 bits will be the A record (IPv4 address) for the same domain.

Say, for example, the subnet is

2001:db9:1:ffff::/96

and a request is made for

www.virusbtn.com

, then the response will be

2001:db9:1:ffff::

6dc8:041a


. Indeed,

6dc8:041a

is the hexadecimal representation of

109.200.4.26

, the IPv4 address of

www.virusbtn.com

.

Requests to this IPv6 address will then be routed through the server running NAT64 – in this case, the server set up by the attackers. They are thus able to see all traffic from the now IPv6-connected machine, except that in which the IP address is hard-coded.

Of course, in principle this means they can only read traffic that isn’t encrypted, but that still allows for many possible attacks with serious consequences. At the same time, the fact that the intercepting device runs on the same local network might make performing cryptographic timing attacks such as

Lucky Thirteen

easier.

To see the possibilities for malware that is able to intercept all traffic, one just needs to look at a 2011 variant of the TDSS rootkit which

set up its own IPv4 DHCP server

. In that case, however, the malware had to compete with the real DHCP server, while in this case the fact that IPv6 always takes precedence over IPv4 means there is no such competition.

The simplest way to fend off this kind of attack is to turn off IPv6 on devices that do not need it. This will, of course, hinder the migration towards IPv6 and may not be an option for transportable devices, as these may sometimes find themselves in an environment where IPv6 connectivity is needed.

The researchers also mention

RFC6105

, an informational document published by the

IETF

on how to deal with rogue router advertisements, as a possible defence strategy.

But ultimately, the best way to defend against these kinds of attacks will be to make sure the device always has an IPv6 connection. Attacks such as this one will not work on devices that are already IPv6-connected.

Posted on 12 August 2013 by

Martijn Grooten


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *