dBmonster - Track WiFi Devices With Their Recieved Signal Strength
With dBmonster you are able to scan for nearby WiFi devices and track them trough the signal strength (dBm) of their sent packets (sniffed with TShark). These dBm values will be plotted to a graph with matplotlib. It can help you to identify the exact location of nearby WiFi devices (use a directional WiFi antenna for the best results) or to find out how your self made antenna works the best (antenna radiation patterns).
Features on Linux and MacOS
Feature | Linux | MacOS |
---|---|---|
Listing WiFi interfaces | ✅ | ✅ |
Track & scan on 2.4GHz | ✅ | ✅ |
Track & scan on 5GHz | ✅ | ✅ |
Scanning for AP | ✅ | ✅ |
Scanning for STA | ✅ | |
Beep when device found | ❓ | ✅ |
Installation
git clone https://github.com/90N45-d3v/dBmonster
cd dBmonster
# Install required tools (On MacOS without sudo)
sudo python requirements.py
# Start dBmonster
sudo python dBmonster.py
Has been successfully tested on...
Platform | WiFi Adapter |
---|---|
Kali Linux | ALFA AWUS036NHA, DIY Bi-Quad WiFi Antenna |
MacOS Monterey | Internal card 802.11 a/b/g/n/ac (MBP 2019) |
* should work on any MacOS or Debian based system and with every WiFi card that supports monitor-mode
Troubleshooting for MacOS
Normally, you can only enable monitor-mode on the internal wifi card from MacOS with the airport utility from Apple. Somehow, wireshark (or here TShark) can enable it too on MacOS. Cool, but because of the MacOS system and Wireshark’s workaround, there are many issues running dBmonster on MacOS. After some time, it could freeze and/or you have to stop dBmonster/Tshark manually from the CLI with the ps
command. If you want to run it anyway, here are some helpful tips:
Kill dBmonster, if you can't stop it over the GUI
Look if there are any processes, named dBmonster, tshark or python:
sudo ps -U root
Now kill them with the following command:
sudo kill <PID OF PROCESS>
Stop monitor-mode, if it's enabled after running dBmonster
sudo airport <WiFi INTERFACE NAME> sniff
Press control + c after a few seconds
* Please contact me on twitter, if you have anymore problems
Working on...
- Capture signal strength data for offline graphs
- Generate graphs from normal wireshark.pcapng file
- Generate multiple graphs in one coordinate system
Additional information
- If the tracked WiFi device is out of range or doesn't send any packets, the graph stops plotting till there is new data. So don't panic ;)
- dBmonster wasn't tested on all systems... If there are any errors or something is going wrong, contact me.
- If you used dBmonster on a non-listed Platform or WiFi Adapter, please open an issue (with Platform and WiFi Adapter information) and I will add your specification to the README.md