Skip to content

WiFi

The WiFi modules use a WiFi interface supporting monitor mode and packet injection in order to:

  • scan the 802.11 spectrum
  • perform deauthentication attacks on connected client stations
  • perform RSN PMKID based clientless attacks on vulnerable access points
  • automatically sniff and save key material either from complete WPA/WPA2 handshakes or PMKID packets.
  • send spoofed management beacons to create fake access points or fake client probes.
  • perform authentication wordlist attacks.

Start 802.11 wireless base stations discovery and handshakes/PMKID capture.

Stop 802.11 wireless base stations discovery.

Attempts to bruteforce WiFi authentication (see bruteforce specific parameters).

Stop previously started bruteforcing.

Clear all access points collected by the WiFi discovery module.

Set 802.11 base station address to filter for.

Remove the 802.11 base station filter.

Send an association request to the selected BSSID in order to receive a RSN PMKID key (use all, * or ff:ff:ff:ff:ff:ff to iterate for every access point).

Start a 802.11 deauth attack, if an access point BSSID is provided, every client will be deauthenticated, otherwise only the selected client (use all, * or ff:ff:ff:ff:ff:ff to deauth everything).

Send a fake client probe with the given station BSSID, searching for ESSID.

Show current wireless stations list (default sorting by RSSI).

Show WPS information about a given station (use all, * or ff:ff:ff:ff:ff:ff to select all).

Comma separated list of channels to hop on.

Enable channel hopping on all supported channels.

Inject fake management beacons in order to create a rogue access point ( requires wifi.recon to run ).

Use this regular expression on the access point name to filter client probes, clear to reset the filter.

Use this regular expression on the station address to filter client probes, clear to reset the filter.

wifi.channel_switch_announce BSSID CHANNEL

Section titled “wifi.channel_switch_announce BSSID CHANNEL”

Start a 802.11 channel hop attack, all client will be forced to change the channel lead to connection down.

ParameterDefaultDescription
wifi.assoc.acquiredfalseSend association to AP’s for which key material was already acquired.
wifi.assoc.openfalseSend association requests to open networks.
wifi.assoc.skipComma separated list of BSSID to skip while sending association requests.
wifi.assoc.silentfalseIf true, messages from wifi.assoc will be suppressed.
wifi.ap.bssid<random mac>BSSID of the fake access point.
wifi.ap.channel1Channel of the fake access point.
wifi.ap.encryptiontrueIf true, the fake access point will use WPA2, otherwise it’ll result as an open AP.
wifi.ap.ssidFreeWifiSSID of the fake access point.
wifi.ap.ttl300Seconds of inactivity for an access points to be considered not in range anymore.
wifi.channel_switch_announce.silentfalseIf true, messages from wifi.channel_switch_announce will be suppressed.
wifi.deauth.acquiredfalseSend wifi deauth packets from AP’s for which key material was already acquired.
wifi.deauth.opentrueSend wifi deauth packets to open networks.
wifi.deauth.skipComma separated list of BSSID to skip while sending deauth packets.
wifi.deauth.silentfalseIf true, messages from wifi.deauth will be suppressed.
wifi.fake_auth.silentfalseIf true, messages from wifi.fake_auth will be suppressed.
wifi.handshakes.aggregatetrueIf true, all handshakes will be saved inside a single file, otherwise a folder with per-network pcap files will be created.
wifi.handshakes.file~/bettercap-wifi-handshakes.pcapFile path of the pcap file to save handshakes to.
wifi.hop.period250If channel hopping is enabled (empty wifi.recon.channel), this is the time in millseconds the algorithm will hop on every channel (it’ll be doubled if both 2.4 and 5.0 bands are available).
wifi.interfaceIf filled, the module will use this interface instead of the one provided by the -iface argument or detected automatically.
wifi.regionBOSet the WiFi region to this value before activating the interface.
wifi.rssi.min-200Minimum WiFi signal strength in dBm.
wifi.show.filterDefines a regular expression filter for wifi.show.
wifi.show.limit0If greater than zero, defines limit for wifi.show.
wifi.show.manufacturerfalseIf true, wifi.show will also show the devices manufacturers.
wifi.show.sortrssi ascDefines sorting field (rssi, bssid, essid, channel, encryption, clients, seen, sent, rcvd) and direction (asc or desc) for wifi.show.
wifi.skip-brokentrueIf true, dot11 packets with an invalid checksum will be skipped.
wifi.source.fileIf set, the wifi module will read from this pcap file instead of the hardware interface.
wifi.sta.ttl300Seconds of inactivity for a client station to be considered not in range or not connected to its access point anymore.
wifi.txpower30Set WiFi transmission power to this value before activating the interface.
ParameterDefaultDescription
wifi.bruteforce.stop_at_firsttrueStop bruteforcing after the first successful attempt.
wifi.bruteforce.targetOne or more comma separated targets to bruteforce as ESSID or BSSID. Leave empty to bruteforce all visibile access points.
wifi.bruteforce.timeout15Timeout in seconds for each association attempt.
wifi.bruteforce.widefalseAttempt a password for each access point before moving to the next one.
wifi.bruteforce.wordlist/usr/share/dict/wordsWordlist file to use for bruteforcing.
wifi.bruteforce.workers1How many parallel workers. WARNING: Some routers will ban multiple concurrent attempts.

Run bettercap using eth0 as the main interface but start the wifi module on wlan0 instead:

Terminal window
sudo bettercap -iface eth0 -eval "set wifi.interface wlan0; wifi.recon on"

Keep deauthing clients from the access point with BSSID DE:AD:BE:EF:DE:AD every five seconds:

Terminal window
set ticker.period 5; set ticker.commands "wifi.deauth DE:AD:BE:EF:DE:AD"; ticker on

Use the ticker and wifi.recon modules to create a WiFi scanner (performing channel hopping on every supported frequency):

Terminal window
set ticker.commands "clear; wifi.show"; wifi.recon on; ticker on

Sort by BSSID and filter for BSSIDs starting with F4:

Terminal window
set wifi.show.sort bssid asc
set wifi.show.filter ^F4
wifi.show

Only recon on channels 1, 2 and 3:

Terminal window
wifi.recon.channel 1,2,3; wifi.recon on

Will send management beacons as the fake access point “Banana” with BSSID DE:AD:BE:EF:DE:AD on channel 5 without encryption:

Terminal window
set wifi.ap.ssid Banana
set wifi.ap.bssid DE:AD:BE:EF:DE:AD
set wifi.ap.channel 5
set wifi.ap.encryption false
wifi.recon on; wifi.ap

Bruteforce using a wordlist:

Terminal window
set wifi.interface en0
set wifi.bruteforce.target TargetRouter
set wifi.bruteforce.wordlist /path/to/your/wordlist.txt
set wifi.bruteforce.stop_at_first true
wifi.bruteforce on