Skip to content

Troubleshooting

soxrok2212 edited this page Jan 31, 2018 · 4 revisions

Troubleshooting

If reaver doesn't work as expected, there can be several possible causes. Before opening issues in this repo and asking easily searchable questions (is:closed), first follow this guide to find the issue yourself.

0.) Fix your build

After updating your git checkout, always run make clean first. If you don't, weird things can and will happen.

1.) Make sure your driver does support injection.

Try injection test of the aircrack-ng suite:

aireplay-ng -9 -a 00:11:22:33:44:55 -e "ESSID_OF_AP" wlan0mon

Where 00:11:22:33:44:55 needs to be replaced with the mac address of the AP, ESSID_OF_AP with the essid (network name) of the network, and wlan0mon with your network card interface name. If that fails, go and look how you can fix the driver. Sometimes there are regressions in the drivers built into the linux version, and updating to a newer kernel can fix the issue. Be sure your card supports monitor mode and injection. Lots of newer 802.11AC cards do not have good support yet.

2.) Analyze the output of verbose mode to find out which step fails.

If you add -vvv to reaver, you get very verbose output which makes it possible to see what reaver is trying to do.

The output will look like this:

...
[+] Trying pin "99999999"
send_packet called from deauthenticate() 80211.c:326
send_packet called from authenticate() 80211.c:357
[+] Sending authentication request
send_packet called from resend_last_packet() send.c:161
send_packet called from resend_last_packet() send.c:161
send_packet called from resend_last_packet() send.c:161
...
[!] WARNING: Receive timeout occurred

Look out for the last message send_packet called from that is not from resend_last_packet. in this case: send_packet called from authenticate.

the first steps reaver does is:

  • deauthenticate
  • authenticate
  • associate
  • send EAPOL Start request.

If you don't progress until you see [+] Sending EAPOL START request, try to associate to the AP using aircrack-ng (go to step 3). If you get there, skip to step 4.

3.) Associate using aircrack-ng

aireplay-ng -1 0 -a 00:11:22:33:44:55 -e "ESSID_OF_AP" -h DE:AD:BE:EF:CA:FE wlan0mon

Where 00:11:22:33:44:55 needs to be replaced with the mac address of the AP, ESSID_OF_AP with the essid (network name) of the network, DE:AD:BE:EF:CA:FE with the mac address of your own network adapter, and wlan0mon with your network card interface name.

If that still doesn't work, you're probably too far away, there is too much congestion on the channel, or there is some kind of mac address filter on the AP.

4.) Further analysis with wireshark

Start wireshark and capture on your monitor interface while you are using reaver. Alternatively you may use tcpdump:

tcpdump -w output.cap -i wlan0mon

imagine you see this output of reaver:

...
[+] Trying pin "99999999"
send_packet called from deauthenticate() 80211.c:326
send_packet called from authenticate() 80211.c:357
[+] Sending authentication request
send_packet called from associate() 80211.c:410
[+] Sending association request
[+] Associated with C8:3A:35:xx:xx:xx (ESSID: Tenda_xxxxxx)
[+] Sending EAPOL START request 
send_packet called from send_eapol_start() send.c:48   
send_packet called from resend_last_packet() send.c:161
send_packet called from resend_last_packet() send.c:161
send_packet called from resend_last_packet() send.c:161
send_packet called from resend_last_packet() send.c:161
send_packet called from resend_last_packet() send.c:161
send_packet called from resend_last_packet() send.c:161
...
send_packet called from resend_last_packet() send.c:161
send_packet called from resend_last_packet() send.c:161
[!] WARNING: Receive timeout occurred

This tells us that reaver tries to send EAPOL message but does not receive a reply. Now look at the packet capture in wireshark. Does the AP send anything to your mac address after the EAPOL packets start?

If so, there may be a real issue with reaver. If not, the router may simply have the functionality disabled OR enabled but not configured.