All your IPs are belong to us.
Switch branches/tags
Clone or download
Latest commit 77ab92a Jun 4, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit Dec 4, 2015
.travis.yml Remove official support for Python 3.3, it's EOL Jun 4, 2018
LICENSE Initial commit Dec 4, 2015
README.md Added README badges May 18, 2017
dhcpwn.py Correct spelling Jun 4, 2018
requirements-dev.txt Use more lenient flake8 requirement Jun 4, 2018
requirements.txt Update scapy Jun 4, 2018
setup.py Version 1.1.0 release Jun 4, 2018

README.md

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