Home

Awesome

DHCPwn

Build Status Python Versions PyPI Version

DHCPwn is a tool used for testing DHCP IP exhaustion attacks. It can also be used to sniff local DHCP traffic.

Useful links:

Overview

The DHCP protocol is connectionless and implemented via UDP. These two characteristics allow this attack to be performed. Since there is no actual connection being made between the client and server we can quickly send many spoofed requests.

DHCP servers rely on the senders MAC address to allocate IP addresses. We can easily spoof many requests with different, fake MAC addresses. This will eventually exhaust the server's ability to assign new IP addresses. Depending on the server's method of releasing IP addresses associated with a given MAC address this attack will either be more, or less effective. For example, if a server quickly releases allocations that it doesn't receive responses from, the attack will be less effective.

This attack is typically considered to be a form of DoS.

Installing

$ pip3 install dhcpwn
$ dhcpwn -h

OR

$ git clone https://github.com/mschwager/dhcpwn.git
$ cd dhcpwn
$ pip3 install -r requirements.txt
$ python3 dhcpwn.py -h

Using

Flood:

$ dhcpwn --interface wlan0 flood --count 256

Sniff:

$ dhcpwn --interface wlan0 sniff

Help:

$ dhcpwn -h