/pi_sniffer

The pocket-sized wireless sniffer

Primary LanguageC++OtherNOASSERTION

Pi Sniffer

Pi Sniffer is a Wi-Fi sniffer built on the Raspberry Pi Zero W. While there are many excellent sniffing platforms out there, Pi Sniffer is unique for it's small size, real time display of captured data, and handling of user input.

Current Release Image

You can download an an RPI image of this project from the "Releases" page. If you don't trust that, you can generate your own release by using the image_gen/create_image.sh script.

Project Goals

The goal of this project was to create a Wi-Fi sniffer that I could carry around in my pocket, easily view real time status, decrypt packets on the fly, and change antenna channels as needed. Also, I wanted this project to be cheap (less than $100) and require no soldering.

Hardware

The project was conceived with the goal to avoid any type of soldering. While Pi Sniffer does require the GPIO header on the Raspberry Pi Zero W, you can buy that pre-soldered. So I'm gonna claim no soldering required.

The base install requires:

Additionally, you can configure the device with any of the following add-ons (and still reasonably be called pocket sized):

Software

Download the release image and flash it to an SD card. Stick the SD card into your RPI Zero WH and you should be good to go! By default, SSH should be enabled. Use the default pi:raspberry credentials. The device's hostname is pisniffer so something along the following lines should get you in:

ssh pi@pisniffer.local

Controls

Pi Sniffer isn't unique just due to it's size but it also offers controls. The user can start and stop sniffing. Change channels. Deauth clients. And more. Here are some images showing how to use the controls.

Start, Stop, and Shutdown

To start sniffing hit the #6 button. To stop sniffing hit the #5 button. To shutdown the device hold #5 and #6.

start_stop

Channel Hoppping

To change to a specific channel, rotate to the antenna screen and hit #6. This will cycle you through the available channels plus hopping.

channel_change

Deauth Attack

To deauth a client, find them in the client view and hit #6.

deauth

Lock display

Sometimes it's beneficial to lock the screen and controls. To do so, rotate to the lock screen and hit #6. To unlock you need to hit #5 and push up on the joystick at the same time.

lock

Issues and Pull Requests

Issues and pull requests are welcome. I only ask that you provide enough information to recreate the issue or information about why the pull request should be accepted.