Home

Awesome

Build Status Documentation Status Python Version License

<p align="center"><img src="https://wifiphisher.github.io/wifiphisher/wifiphisher.png" /></p>

About

<a href="https://wifiphisher.org">Wifiphisher</a> is a rogue Access Point framework for conducting red team engagements or Wi-Fi security testing. Using Wifiphisher, penetration testers can easily achieve a man-in-the-middle position against wireless clients by performing targeted Wi-Fi association attacks. Wifiphisher can be further used to mount victim-customized web phishing attacks against the connected clients in order to capture credentials (e.g. from third party login pages or WPA/WPA2 Pre-Shared Keys) or infect the victim stations with malwares.

Wifiphisher is...

Sponsors

Wifiphisher is free (as in speech, and as in beer) and will always be. Continuous development of the project would not be possible without our sponsors and supporters:

<a href="https://www.tines.com/?utm_source=oss&utm_medium=sponsorship&utm_campaign=wifiphisher"><p align="center"><a href="https://www.tines.com/?utm_source=oss&utm_medium=sponsorship&utm_campaign=wifiphisher"><img src="https://wifiphisher.github.io/wifiphisher/tines_logo.png" /></a></p></a>

How it works

Wi-Fi phishing consists of two steps:

  1. The first step involves the process of associating with Wi-Fi clients unknowingly, or in other words, obtaining a man-in-the-middle (MITM) position. Wifiphisher uses a number of different techniques to achieve this including:

    • Evil Twin, where Wifiphisher creates a fake wireless network that looks similar to a legitimate network.
    • KARMA, where Wifiphisher masquerades as a public network searched for by nearby Wi-Fi clients.
    • Known Beacons, where Wifiphisher broadcasts a dictionary of common ESSIDs, that the around wireless stations have likely connected to in the past.

    At the same time, Wifiphisher keeps forging “Deauthenticate” or “Disassociate” packets to disrupt existing associations and eventually lure victims using the above techniques.

<p align="center"><img width="70%" src="https://wifiphisher.github.io/wifiphisher/diagram.jpg" /><br /><i>Performing MiTM attack</i></p>
  1. (Optionally) There are a number of different attacks that can be carried out once Wifiphisher grants the penetration tester with a man-in-the-middle position. For example, the tester may perform data sniffing or scan the victim stations for vulnerabilities.

    Using Wifiphisher, advanced web phishing techniques are possible by gathering information from the target environment and victim user. For example, in one of our scenarios, Wifiphisher will extract information from the broadcasted beacon frames and the HTTP User-Agent header to display a web-based imitation of Windows network manager in order to capture the Pre-Shared Key.

<p align="center"><img src="https://wifiphisher.github.io/wifiphisher/ss-webphishing.png" /><br /><i>Fake <a href="https://wifiphisher.org/ps/wifi_connect/">web-based network manager</a></i></p>

Requirements

Following are the requirements for getting the most out of Wifiphisher:

Installation

To install the latest development version type the following commands:

git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies

Alternatively, you can download the latest stable version from the <a href="https://github.com/wifiphisher/wifiphisher/releases">Releases page</a>.

Usage

Run the tool by typing wifiphisher or python bin/wifiphisher (from inside the tool's directory).

By running the tool without any options, it will find the right interfaces and interactively ask the user to pick the ESSID of the target network (out of a list with all the ESSIDs in the around area) as well as a phishing scenario to perform. By default, the tool will perform both Evil Twin and KARMA attacks.


wifiphisher -aI wlan0 -jI wlan4 -p firmware-upgrade --handshake-capture handshake.pcap

Use wlan0 for spawning the rogue Access Point and wlan4 for DoS attacks. Select the target network manually from the list and perform the "Firmware Upgrade" scenario. Verify that the captured Pre-Shared Key is correct by checking it against the handshake in the handshake.pcap file.

Useful for manually selecting the wireless adapters. The <a href="https://wifiphisher.org/ps/firmware-upgrade/">"Firmware Upgrade"</a> scenario is an easy way for obtaining the PSK from a password-protected network.


wifiphisher --essid CONFERENCE_WIFI -p plugin_update -pK s3cr3tp4ssw0rd

Automatically pick the right interfaces. Target the Wi-Fi with ESSID "CONFERENCE_WIFI" and perform the "Plugin Update" scenario. The Evil Twin will be password-protected with PSK "s3cr3tp4ssw0rd".

Useful against networks with disclosed PSKs (e.g. in conferences). The <a href="https://wifiphisher.org/ps/plugin_update/">"Plugin Update"</a> scenario provides an easy way for getting the victims to download malicious executables (e.g. malwares containing a reverse shell payload).


wifiphisher --essid "FREE WI-FI" -p oauth-login -kB

Simply spawn an open Wi-Fi network with ESSID "FREE WI-FI" and perform the "OAuth Login" scenario. Furthermore, mount the "Known Beacons" Wi-Fi automatic association technique.

Useful against victims in public areas. The <a href="https://wifiphisher.org/ps/oauth-login/">"OAuth Login"</a> scenario provides a simple way for capturing credentials from social networks, like Facebook.

Following are all the options along with their descriptions (also available with wifiphisher -h):

Short formLong formExplanation
-h--helpshow this help message and exit
-i INTERFACE--interface INTERFACEManually choose an interface that supports both AP and monitor modes for spawning the rogue AP as well as mounting additional Wi-Fi attacks from Extensions (i.e. deauth). Example: -i wlan1
-eI EXTENSIONSINTERFACE--extensionsinterface EXTENSIONSINTERFACEManually choose an interface that supports monitor mode for running the extensions. Example: -eI wlan1
-aI APINTERFACE--apinterface APINTERFACEManually choose an interface that supports AP mode for spawning an AP. Example: -aI wlan0
-pI INTERFACE--protectinterface INTERFACESpecify one or more interfaces that will have their connection protected from being managed by NetworkManager.
-kN--keepnetworkmanagerDo not kill NetworkManager.
-nE--noextensionsDo not load any extensions.
-e ESSID--essid ESSIDEnter the ESSID of the rogue Access Point. This option will skip Access Point selection phase. Example: --essid 'Free WiFi'
-pPD PHISHING_PAGES_DIRECTORY--phishing-pages-directory PHISHING_PAGES_DIRECTORYSearch for phishing pages in this location
-p PHISHINGSCENARIO--phishingscenario PHISHINGSCENARIOChoose the phishing scenario to run.This option will skip the scenario selection phase. Example: -p firmware_upgrade
-pK PRESHAREDKEY--presharedkey PRESHAREDKEYAdd WPA/WPA2 protection on the rogue Access Point. Example: -pK s3cr3tp4ssw0rd
-qS--quitonsuccessStop the script after successfully retrieving one pair of credentials.
-lC--lure10-captureCapture the BSSIDs of the APs that are discovered during AP selection phase. This option is part of Lure10 attack.
-lE LURE10_EXPLOIT--lure10-exploit LURE10_EXPLOITFool the Windows Location Service of nearby Windows users to believe it is within an area that was previously captured with --lure10-capture. Part of the Lure10 attack.
-iAM--mac-ap-interfaceSpecify the MAC address of the AP interface. Example: -iAM 38:EC:11:00:00:00
-iEM--mac-extensions-interfaceSpecify the MAC address of the extensions interface. Example: -iEM E8:2A:EA:00:00:00
-iNM--no-mac-randomizationDo not change any MAC address.
-hC--handshake-captureCapture of the WPA/WPA2 handshakes for verifying passphrase. Requires cowpatty. Example: -hC capture.pcap
-dE ESSID--deauth-essid ESSIDDeauth all the BSSIDs in the WLAN with that ESSID.
-dC CHANNELS--deauth-channels CHANNELSChannels to deauth. Example: --deauth-channels 1,3,7
--loggingEnable logging. Output will be saved to wifiphisher.log file.
-lP LOGPATH--logpath LOGPATHDetermine the full path of the logfile.
-cP CREDENTIAL_LOG_PATH--credential-log-path CREDENTIAL_LOG_PATHDetermine the full path of the file that will store any captured credentials
-cM--channel-monitorMonitor if the target access point changes the channel.
--payload-pathEnable the payload path. Intended for use with scenarios that serve payloads.
-wP--wps-pbcMonitor if the button on a WPS-PBC Registrar side is pressed.
-wAI--wpspbc-assoc-interfaceThe WLAN interface used for associating to the WPS AccessPoint.
-kB--known-beaconsPerform the known beacons Wi-Fi automatic association technique.
-fH--force-hostapdForce the usage of hostapd installed in the system.
--dnsmasq-conf DNSMASQ_CONFDetermine the full path of dnmasq.conf file.
-dK--disable-karmaDisables KARMA attack.
-pE--phishing-essidDetermine the ESSID you want to use for the phishing page.

Screenshots

<p align="center"><img src="https://wifiphisher.github.io/wifiphisher/ss5.png" /><br /><i>Targeting an access point</i></p> <p align="center"><img src="https://wifiphisher.github.io/wifiphisher/ss2.png" /><br /><i>A successful attack</i></p> <p align="center"><img src="https://wifiphisher.github.io/wifiphisher/ss7.png" /><br /><i>Fake <a href="https://wifiphisher.org/ps/firmware-upgrade/">router configuration page</a></i></p> <p align="center"><img src="https://wifiphisher.github.io/wifiphisher/ss6.png" /><br /><i>Fake <a href="https://wifiphisher.org/ps/oauth-login/">OAuth Login Page</a></i></p> <p align="center"><img src="https://wifiphisher.github.io/wifiphisher/ss4.png" /><br /><i>Fake <a href="https://wifiphisher.org/ps/wifi_connect/">web-based network manager</a></i></p>

Help needed

If you are a Python developer or a web designer you can help us improve Wifiphisher. Feel free to take a look at the <a href="https://github.com/wifiphisher/wifiphisher/issues">bug tracker</a> for some tasks to do.

If you don't know how to code, you can help us by <a href="https://github.com/wifiphisher/wifiphisher/issues">proposing improvements or reporting bugs</a>. Please have a look at the Bug Reporting Guidelines and the <a href="https://wifiphisher.readthedocs.io/en/latest/faq.html">FAQ document</a> beforehand. Note that the tool does not aim to be script-kiddie friendly. Make sure you do understand how the tool works before opening an issue.

Credits

The script is based on an idea from <a href="https://github.com/DanMcInerney">Dan McInerney</a> back in 2015.

A full list of contributors lies <a href="https://github.com/wifiphisher/wifiphisher/graphs/contributors">here</a>.

License

Wifiphisher is licensed under the GPLv3 license. See LICENSE for more information.

Project Status

Wifiphisher's current version is 1.4. You can download the latest release from <a href="https://github.com/wifiphisher/wifiphisher/releases/tag/v1.4">here</a>. Otherwise you can get the latest development version by cloning this repository.

Disclaimer

<b>Note</b>: Be aware of sites pretending to be related with the Wifiphisher Project. They may be delivering malware.

For Wifiphisher news, follow us on <a href="https://www.twitter.com/wifiphisher">Twitter</a> or like us on <a href="https://www.facebook.com/Wifiphisher-129914317622032/">Facebook</a>.