Wifite
This repo is a complete re-write of wifite
, a Python script for auditing wireless networks.
Wifite runs existing wireless-auditing tools for you. Stop memorizing command arguments & switches!
Wifite is compatible with both python2
and python3
.
Wifite is designed to use all known methods for retrieving the password of a wireless access point (router). These methods include:
- WPS: The WPS Pixie-Dust attack
- WPA: The WPA Handshake Capture and offline crack.
- WPA: The PMKID Hash Capture and offline crack.
- WEP: Various known attacks against WEP, including fragmentation, chop-chop, aireplay, etc.
Run wifite, select your targets, and Wifite will automatically start trying to capture or crack the password.
Supported Operating Systems
Wifite is designed specifically for the latest version of Kali Linux. ParrotSec is also supported.
Other pen-testing distributions (such as BackBox) have outdated versions of the tools used by Wifite. Do not expect support unless you are using the latest versions of the Required Tools.
Required Tools
First and foremost, you will need a wireless card capable of "Monitor Mode" and packet injection (see this tutorial for checking if your wireless card is compatible). There are many cheap wireless cards that plug into USB available from online stores.
Second, only the latest versions of these programs are supported and must be installed for Wifite to work properly:
Required:
iwconfig
: For identifying wireless devices already in Monitor Mode.ifconfig
: For starting/stopping wireless devices.Aircrack-ng
suite, includes:airmon-ng
: For enumerating and enabling Monitor Mode on wireless devices.aircrack-ng
: For cracking WEP .cap files and WPA handshake captures.aireplay-ng
: For deauthing access points, replaying capture files, various WEP attacks.airodump-ng
: For target scanning & capture file generation.packetforge-ng
: For forging capture files.
Optional, but Recommended:
tshark
: For detecting WPS networks and inspecting handshake capture files.reaver
: For WPS Pixie-Dust attacks.- Note: Reaver's
wash
tool can be used to detect WPS networks iftshark
is not found.
- Note: Reaver's
bully
: For WPS Pixie-Dust attacks.- Alternative to Reaver. Specify
--bully
to use Bully instead of Reaver. - Bully is also used to fetch PSK if
reaver
cannot after cracking WPS PIN.
- Alternative to Reaver. Specify
coWPAtty
: For detecting handshake captures.pyrit
: For detecting handshake captures.hashcat
: For cracking PMKID hashes.hcxdumptool
: For capturing PMKID hashes.hcxpcaptool
: For converting PMKID packet captures intohashcat
's format.
Run Wifite
git clone https://github.com/derv82/wifite2.git
cd wifite2
python -m wifite
Install Wifite
To install onto your computer (so you can just run wifite
from any terminal), run:
sudo python setup.py install
This will install wifite
to /usr/sbin/wifite
which should be in your terminal path.
Note: Uninstalling is not as easy. The only way to uninstall is to record the files installed by the above command and remove those files:
sudo python setup.py install --record files.txt \
&& cat files.txt | xargs sudo rm \
&& rm -f files.txt
Brief Feature List
- PMKID hash capture (enabled by-default, force with:
--pmkid
) - Reaver (or
-bully
) WPS Pixie-Dust attack (enabled by-default, force with:--wps-only
) - WPA handshake capture (enabled by-default, force with:
--no-wps
) - Validates handshakes against
pyrit
,tshark
,cowpatty
, andaircrack-ng
(when available) - Various WEP attacks (replay, chopchop, fragment, hirte, p0841, caffe-latte)
- Automatically decloaks hidden access points while scanning or attacking.
- Note: Only works when channel is fixed. Use the
-c <channel>
switch. - Disable this via
--no-deauths
switch
- Note: Only works when channel is fixed. Use the
- 5Ghz support for some wireless cards (via
-5
switch).- Note: Some tools don't play well on 5GHz channels (e.g.
aireplay-ng
)
- Note: Some tools don't play well on 5GHz channels (e.g.
- Stores cracked passwords and handshakes to the current directory (
--cracked
)- Includes metadata about the access point.
- Easy to try to crack handshakes or PMKID hashes against a wordlist (
--crack
)
What's new?
Comparing this repo to the "old wifite" @ https://github.com/derv82/wifite
- Less bugs
- Cleaner process management. Does not leave processes running in the background (the old
wifite
was bad about this). - No longer "one monolithic script". Has working unit tests. Pull requests are less-painful!
- Cleaner process management. Does not leave processes running in the background (the old
- Speed
- Target access points are refreshed every second instead of every 5 seconds.
- Accuracy
- Displays realtime Power level of currently-attacked target.
- Displays more information during an attack (e.g. % during WEP chopchop attacks, Pixie-Dust step index, etc)
- Educational
- The
--verbose
option (expandable to-vv
or-vvv
) shows which commands are executed & the output of those commands. - This can help debug why Wifite is not working for you. Or so you can learn how these tools are used.
- The
- More-actively developed.
- Python 3 support.
- Sweet new ASCII banner.
What's gone?
- No more WPS PIN attack, because it can take days on-average.
- However, this feature may be added back into Wiite2 (See #90)
- And the Pixie-Dust attack is still an option.
- Some command-line arguments (
--wept
,--wpst
, and other confusing switches).- You can still access some of these obscure options, try
wifite -h -v
- You can still access some of these obscure options, try
What's not new?
- (Mostly) Backwards compatible with the original
wifite
's arguments. - Same text-based interface everyone knows and loves.
Screenshots
Cracking WPS PIN using reaver
's Pixie-Dust attack, then retrieving WPA PSK using bully
:
Decloaking & cracking a hidden access point (via the WPA Handshake attack):
Cracking a weak WEP password (using the WEP Replay attack):