In this tutorial, learn how to use the 802.11 wireless network through the inexpensive ESP8266 Wi-Fi SoC (system on a chip) to release an authentication attack and disconnect any device from the Wi-Fi network. In other words, learn how to build your own Wi-Fi jammer. Doing so ensures that next time someone at your party is annoying you by always being on their phone, you know what to do
Jamming Wi-Fi is made possible by a flaw in the existing 802.11 Wi-Fi standard. The funny thing is that in 2009, the Wi-Fi Alliance actually solved this problem (look for 802.11w), but only a few companies have implemented it into their devices and software.
Ideally, in order to prevent de-authenticated attacks, the client and access point must both support the new and revised 802.11w standard with a Protected Management Frame (PMF). In most cases, the client device will force it to support this standard at the access point.
This project is a good opportunity to learn more about Wi-Fi, microcontrollers, Arduino, and electronics. Please use this tool responsibly — do not use it without letting your friends know that you are going to jam their Wi-Fi!
Getting Started: Notes on the Hardware
- ESP8266 (Node MCU recommended)
- Power Bank (optional, but recommended)
- Micro USB Data cable
Note: I recommend that you purchase USB distribution/development boards because they have 4Mb flash memory and are very easy to use.
How to Set up the Project
- Download and install Arduino.
- Go to File -> Preferences
- Add ESP8266 to the Additional Boards Manager URL’s with this URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Go to Tools -> Board -> Boards Manager
- Search for ESP8266
- Click on version 2.0.0 and install (other versions won’t work, so make sure it is version 2.0.0).
- Open user_interface.h with a text editor from packages > ESP8266 > hardware > ESP8266 > 2.0.0 > tools > sdk > include.
- Scroll down and before #endif add the following lines and save the file:
typedef void (*freedom_outside_cb_t)(uint8 status); int Wi-Fi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb); void Wi-Fi_unregister_send_pkt_freedom_cb(void); int Wi-Fi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);
- Download the zip files from the repository created by spacehuhn and watch the attached video to make your life a little easier.
- Open ESP8266_deauther > ESP8266_deauther.ino in Arduino.
- Select your ESP8266 board from Tools > Board and the right port from Tools > Port.
After uploading, your ESP8266 is ready to block devices.
After the Upload
Start the block by powering up your ESP8266. You can power your ESP8266 with either a power bank or a USB cable connected to your laptop.
On your computer, scan for Wi-Fi networks and connect to the network “pwned” The password is “deauther”. Once connected, open up your browser and go to 192.168.4.1.
Now scan for networks.
Click on “SELECT” for the network you want to jam and go to the tab above labeled “Attacks” From there, click on Deauth “START” Watch the video below to see these steps in action.
Troubleshooting if the Jammer Doesn't Work
If you see 0 pkts / s on the site, it means that an error has occurred. Double check that you have taken the proper steps and that the ESP8266 version you selected in Arduino is 2.0.0! If it can send a packet, but your target does not release its association, the Wi-Fi switch might be using 802.11w standard, meaning you won’t be able to jam the Wi-Fi. Finally, if the network is over 5 GHz Wi-Fi, ESP8266 is not supported and will not be able to jam the Wi-Fi.
Watch the video below to see how to set up and use the project.