You are here: Home » Wireless Attacks » Reaver (reaver-wps-fork-t6x)

Reaver (reaver-wps-fork-t6x)

Reaver Description

Reaver has been designed to be a robust and practical attack against Wi-Fi Protected Setup (WPS) registrar PINs in order to recover WPA/WPA2 passphrases. It has been tested against a wide variety of access points and WPS implementations.

The original Reaver implements a online brute force attack against, as described in reaver-wps-fork-t6x is a community forked version, which has included various bug fixes and additional attack method (the offline Pixie Dust attack).

Depending on the target's Access Point (AP), to recover the plain text WPA/WPA2 passphrase the average amount of time for the transitional online brute force method is between 4-10 hours. In practice, it will generally take half this time to guess the correct WPS pin and recover the passphrase. When using the offline attack, if the AP is vulnerable, it may take only a matter of seconds to minutes.


Author: Tactical Network Solutions, Craig Heffner, t6_x, DataHead, Soxrok2212

License: GPLv2

Reaver Help

Required Arguments:
	-i, --interface=<wlan>          Name of the monitor-mode interface to use
	-b, --bssid=<mac>               BSSID of the target AP

Optional Arguments:
	-m, --mac=<mac>                 MAC of the host system
	-e, --essid=<ssid>              ESSID of the target AP
	-c, --channel=<channel>         Set the 802.11 channel for the interface (implies -f)
	-o, --out-file=<file>           Send output to a log file [stdout]
	-s, --session=<file>            Restore a previous session file
	-C, --exec=<command>            Execute the supplied command upon successful pin recovery
	-D, --daemonize                 Daemonize reaver
	-f, --fixed                     Disable channel hopping
	-5, --5ghz                      Use 5GHz 802.11 channels
	-v, --verbose                   Display non-critical warnings (-vv or -vvv for more)
	-q, --quiet                     Only display critical messages
	-h, --help                      Show help

Advanced Options:
	-p, --pin=<wps pin>             Use the specified pin (may be arbitrary string or 4/8 digit WPS pin)
	-d, --delay=<seconds>           Set the delay between pin attempts [1]
	-l, --lock-delay=<seconds>      Set the time to wait if the AP locks WPS pin attempts [60]
	-g, --max-attempts=<num>        Quit after num pin attempts
	-x, --fail-wait=<seconds>       Set the time to sleep after 10 unexpected failures [0]
	-r, --recurring-delay=<x:y>     Sleep for y seconds every x pin attempts
	-t, --timeout=<seconds>         Set the receive timeout period [10]
	-T, --m57-timeout=<seconds>     Set the M5/M7 timeout period [0.40]
	-A, --no-associate              Do not associate with the AP (association must be done by another application)
	-N, --no-nacks                  Do not send NACK messages when out of order packets are received
	-S, --dh-small                  Use small DH keys to improve crack speed
	-L, --ignore-locks              Ignore locked state reported by the target AP
	-E, --eap-terminate             Terminate each WPS session with an EAP FAIL packet
	-n, --nack                      Target AP always sends a NACK [Auto]
	-w, --win7                      Mimic a Windows 7 registrar [False]
	-K, --pixie-dust                Run pixiedust attack

-K or -Z // --pixie-dust

The -K and -Z option perform the offline attack, Pixie Dust (pixiewps), by automatically passing the PKE, PKR, E-Hash1, E-Hash2, E-Nonce and Authkey variables. pixiewps will then try to attack Ralink, Broadcom and Realtek detected chipset.Special note: If you are attacking a Realtek AP, do NOT use small DH Keys (-S) option. User will have to execute reaver with the cracked PIN (option -p) to get the WPA pass-phrase. This is a temporary solution and an option to do a full attack will be implemented soon

-p with arbitrary string // --pin=

It can be used against Access Points that do not follow the WPS checksum on the last digit of the PIN.

See also: Introducing a new way to crack WPS: Option p with an Arbitrary String

Reaver Options

Usually, the only required arguments to Reaver are the interface name and the BSSID of the target AP:

reaver -i wlan0 -b 00:01:02:03:04:05

It is suggested that you run Reaver in verbose mode in order to get more detailed information about the attack as it progresses:

reaver -i wlan0  -b 00:01:02:03:04:05 -vv

The channel and SSID (provided that the SSID is not cloaked) of the target AP will be automatically identified by Reaver, unless explicitly specified on the command line:

reaver -i wlan0 -b 00:01:02:03:04:05 -c 11 -e linksys

Since version 1.3, Reaver implements the small DH key optimization as suggested by Stefan which can speed up the attack speed:

reaver -i wlan0 -b 00:01:02:03:04:05 --dh-small

By default, if the AP switches channels, Reaver will also change its channel accordingly. However, this feature may be disabled by fixing the interface's channel:

reaver -i wlan0 -b 00:01:02:03:04:05 --fixed

When spoofing your MAC address, you must set the desired address to spoof using the ifconfig utility, and additionally tell Reaver what the spoofed address is:

reaver -i wlan0 -b 00:01:02:03:04:05 --mac=AA:BB:CC:DD:EE:FF

The default receive timeout period is 5 seconds. This timeout period can be set manually if necessary (minimum timeout period is 1 second):

reaver -i wlan0 -b 00:01:02:03:04:05 -t 2

The default delay period between pin attempts is 1 second. This value can be increased or decreased to any non-negative integer value. A value of zero means no delay:

reaver -i wlan0 -b 00:01:02:03:04:05 -d 0

Some APs will temporarily lock their WPS state, typically for five minutes or less, when "suspicious" activity is detected. By default when a locked state is detected, Reaver will check the state every 315 seconds (5 minutes and 15 seconds) and not continue brute forcing pins until the WPS state is unlocked.

This check can be increased or decreased to any non-negative integer value:

reaver -i wlan0 -b 00:01:02:03:04:05 --lock-delay=250

The default timeout period for receiving the M5 and M7 WPS response messages is .1 seconds. This timeout period can be set manually if necessary (max timeout period is 1 second):

reaver -i wlan0 -b 00:01:02:03:04:05 -T .5

Some poor WPS implementations will drop a connection on the floor when an invalid pin is supplied instead of responding with a NACK message as the specs dictate. To account for this, if an M5/M7 timeout is reached, it is treated the same as a NACK by default. However, if it is known that the target AP sends NACKS (most do), this feature can be disabled to ensure better reliability. This option is largely useless as Reaver will auto-detect if an AP properly responds with NACKs or not:

reaver -i wlan0 -b 00:01:02:03:04:05 --nack

While most APs don't care, sending an EAP FAIL message to close out a WPS session is sometimes necessary.

By default this feature is disabled, but can be enabled for those APs that need it:

When 10 consecutive unexpected WPS errors are encountered, a warning message will be displayed. Since this may be a sign that the AP is rate limiting pin attempts or simply being overloaded, a sleep can be put in place that will occur whenever these warning messages appear:

reaver -i wlan0 -b 00:01:02:03:04:05 --fail-wait=360

Reaver Usage Example

reaver -i wlan0mon -b 00:90:4C:C1:AC:21 -vvv -K 1

How to install Reaver

The program is pre-installed on Kali Linux.

Installation on Linux (Debian, Mint, Ubuntu)

First, install PixieWPS. Next:

sudo apt-get -y install build-essential libpcap-dev aircrack-ng
git clone
cd reaver-wps-fork-t6x*/
cd src/
sudo make install

Reaver Screenshots

Reaver Tutorials

Related tools