owfuzz: a WiFi protocol fuzzing tool using openwifi.
Openwifi is an open-source WiFi protocol stack based on SDR that is fully compatible with Linux mac80211. It's driver takes advantage of the Linux kernel's supports (mac80211, cfg80211) for WiFi high MAC, so it can provide an interface to the application layer like a common WiFi USB dongle. In The hardware part, CSMA/CA protocol and other functions of WiFi low MAC layer are implemented on FPGA. It supports monitoring and injection of arbitrary WiFi frames,The application layer software can also directly communicate with the openwifi driver/FPGA/RF underlying functions through nl80211, which provides users with great autonomous and controllable ability. Owfuzz is the first to use openwifi platform to implements a WiFi protocol fuzzing test framework, which supports the fuzzing test of all WiFi frames and the interactivity testing of WiFi protocols.
Owfuzz can also use a wireless network card that supports monitor mode and frame injection.
Architecture
Features:
Install dependencies
sudo apt-get install pkg-config libnl-3-dev libnl-genl-3-dev libpcap-dev
Compiling
make
Copy owfuzz and openwifi_owfuzz.sh to openwifi with password openwifi.
scp -r owfuzz openwifi_owfuzz.sh root@192.168.10.122:~/
Login to the board from your PC (PC Ethernet should have IP 192.168.10.1) with password openwifi.
ssh root@192.168.10.122
Install dependencies
sudo apt-get install pkg-config libnl-3-dev libnl-genl-3-dev libpcap-dev
Compiling
cd ~/owfuzz
make
Init openwifi env
./openwifi_owfuzz.sh
Fuzzing Client
sudo ./src/owfuzz -i wlan0 -m ap -c [channel] -t [sta-mac] -b [ap-mac] -s [ap-mac] -T 2 -A WPA2_PSK_TKIP_AES -I [sta-ip]
Fuzzing AP
sudo ./src/owfuzz -i wlan0 -m sta -c [channel] -t [ap-mac] -b [ap-mac] -s [sta-mac] -T 2 -A WPA3 -S [ssid-name] -I [ap-ip]
Interactivity fuzzing
sudo ./src/owfuzz -i wlan0 -m ap -c [channel] -t [sta-mac] -b [ap-mac] -s [ap-mac] -T 1 -A WPA2_PSK_AES
This project is available as open source under the terms of the GPL 3.0 Or later. However, some elements are being licensed under GPL 2-0 or later and BSD 3 license . For accurate information, please check individual files.