The Raspberry Pi models have a Broadcom BCM43438 wireless chipset (2.4GHz). Out of the box (Standard Raspbian OS) it is not possible to enable the Wi-Fi Monitor Mode, even if the chip would support it.
The aim of this tutorial is to show how you can patch the kernel to make the Monitor Mode possible.
You should already have read (and successful carried out) the following tutorials.
Install (or ensure they are installed) following packages.
# update system (optional)
$ sudo apt update -y && sudo apt upgrade -y
# install optional packages (optional)
$ sudo apt install -y wireless-tools build-essential curl
The simplest way is to use the Re4son-Pi-Kernel, here you will find all information about.
# download latest archive
$ curl -L -C - https://re4son-kernel.com/download/re4son-kernel-current/ -o re4son-kernel_current.tar.xz
# unzip archive
$ tar -xJf re4son-kernel_current.tar.xz
# change into extracted folder
$ cd re4son-kernel_*
# run installation
$ sudo ./install.sh
Note: Be patient, the process will take some time. You can also answer all questions with "Y" (yes).
After the successful installation and reboot, you need to create a new interface (already in Monitor Mode).
# create new wireless devices incl. configuration
$ sudo iw phy phy0 interface add mon0 type monitor
# start created interface
$ sudo ifconfig mon0 up
# verify interfaces (optional)
$ iw phy phy0 info
Note: Just create a small bash script, and a service to automate this process.
From now on you can use all known tools, or the Python scripts I have created.
# install needed packages
$ sudo apt install -y python3-pip curl
# install scapy
$ sudo pip3 install scapy
# download Python STA scanner
$ curl -L https://raw.githubusercontent.com/Lupin3000/Raspberry-PI-Tutorials/main/Goodies/PythonStationScan/StationScan.py -o StationScan.py
# set permissions
$ chmod +x StationScan.py
# run STA scanner
$ sudo ./StationScan.py mon0
# download Python AP scanner
$ curl -L https://raw.githubusercontent.com/Lupin3000/Raspberry-PI-Tutorials/main/Goodies/PythonAccessPointScan/AccessPointScan.py -o AccessPointScan.py
# set permissions
$ chmod +x AccessPointScan.py
# run AP scanner
$ sudo ./AccessPointScan.py mon0 --all