Skip to content

A Python tool to detect and visualize Wi-Fi/Bluetooth snoopers and network security alerts from Kismet logs.

License

Notifications You must be signed in to change notification settings

AlienMajik/SnoopR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

                                                                     # SnoopR



xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdxxxxxxxdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxkxxxxxxxxxxxxxxxxx
xxxxxxkkxxxxxkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxkxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddxddddddddddddddoooollllllloooddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkxkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddddolcc:;;;,,,,,,,,,,,,,,;;:cloodddddddddddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxkkkxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxkkkkxkkxxxxxxxxxxxxxxxxxxxxkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdolc:;;,,,,,,''''''''''''''''''',,,;:lodddddddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxkkxxxxxxxxxxxxxxdxxxxxxxxxx
xxxxxxxxxxxxxxxxxkkkkkkkxxxxxxxxxxxxxxxxxxxkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdoc:;;,,,,,,,,,'''''''''...........''''',,;:loddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkxkkkkkxxxxkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoc:;;;,,,,,,,,,,'''''''''................'''',,;:ldddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxkkkkkkkOkkkkkkkkkkkkxkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxdlc:;;;;,,,,,,,,,,,,,,'''''''''''''''''''''''''',,,,;:codddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxkxkxxxxxxxxxxxxxxxxxkkkkkkOOOOkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxdlc:::::;;;;;;,,,,,,,,,,,''''''''''''''',,,,,,,,,,;;;;;;::coddddddddddddddddddddddxxdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kkkkkkkkxxxxxkxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxdddddooooollllllc:::::::::::::;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,;;;;;;;;;;;;;;;:cccccllllooooddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kkkkkkkkkkkkkkxxkxkkxxxxxxkkkkkkkkkkkkkxxxddooooooollccc::::;;;;;;;;;;;;;;,,,,,,,,,,,'''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;:::ccclloooddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kkkkkkkkkkkkkkkkkkkxxxkkkkxxxddddoolcc::;;;;;;;;;,,,,,,,,,;;;;;;;;;;;;::::::::::::::::::::::::::ccccccccccccccccccccccc:::::::::c::::c::cccccc:::::::::::::::::::::::;;;;;;;;;::ccclloddxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kkkkkkkkkkkkkkkkkkxxddollc:::::;;;;;;;;:::::::::::::::::::ccc:ccc::::::::::cccccccccccccccccccccccccllllllllllllcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc:::ccclloodxxxxxxxxxxxxxxxxxxxx
kkkkkkkkkkkkkxdolcc::::::::::::::::::::::::::::::::::cccccccc:::::::::::::::::::ccccccccccccccccccccllllllllllllccccc::::::::::::::::::::ccccccccccccccccccccccccccccccccccccccccccccccccccccccc::cloodxxxxxxxxxxxxxx
kkkkkkkkkkxdollcllllllllllllllllccccccccccccccccccccccccccccccccccccc::::::ccccccccccllllcccccccccclllllllllllllccccc::::::::::::::::cccccccccccccccccllllllllllllllllllllllllllllllllllllllllllllllllloodxxxxxxxxxxx
kkkkkkkkxdddooooooooooooooooooooollllllllllllllllllllllllllllllccccccccccccccccccccllllllcccccccccccccccccccccccc:::::;;;;::::::::::::cccccccccllllllllllllllllllllooooooooooooooooooooooooooodddddddddddddxxxxxxxxxx
kkkkkkkkkddddddddddddddddoooooooooooooooooooooooooooooooollllllllllccccccccccccccclllooolllllccccccccccc:::::::;;;;;;,,,,,,,,,,;;;;;;;:::::cccclllloooooooooooooooooooooooooodddddddddddddddddddddddddddddxxxxxxxxxxx
kkkkkkkkkkxxdddddddddddddddddddddddddooooooooooooooooooooooooooolllccc::::ccccclllloooooooollc:::::ccc::;;;,,,,,'''''''''',,,,,,,,,,,,,,,;;;:::ccllooooooooooooooddddddddddddddddddddddddddddddddddddddxxxxkkkkkkkkkk
kkkkkkkkkkkkkkxxxxxdddddddddddddddddddddddddddddddddddooooooooooolc::::::c::::clllllllllcccc:;;,,',,,,,,'''................'''''''''''',,,,,;;;::clooddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkxxxxxxdddddddddddddddddddddddddddddddddddddolc::;;;;;;;;;::cccllooodddooolllllcccccc::::::;;;;,,,,,,,,'''''''''',,,,,,,,,;;::coddddddddddddddddddddddddddddddddddxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxddddddddddddddddddddddddddlccccllooodddxxxkkO0KXXXXK0Okkxxddddooollllccccc::::;;;;;;,,,,,,,,,,,,,,,,;;;;;:ccodddddddddddddddddddddddxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxddddddollllllooodddxxxkkO00KXXXKK0Okkxxxdddoooollllcccc::::;;;;;;,,,,,,,,,,,,,,,,,;;;;::coddddddxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOkkkkkkkkdlllllooooodddxxxkkOO00000Okkxxddddoooollllllccccc::::;;;;;,,,,,,,,,,,,,,,,,,;;;::coxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkdoooolc:::;;;;;;;;;;;;,,,,,;;::cclodoollllccc:::;;;;;,,,,,;::::::::::;;;;;;;;::lcllokkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxdlc::;;,,,,''''',,,''::clokO0KKXXXXXXXXXXXXXK00Oxddoolcccc::;;;;;;::::ccldxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxdddddoooooodO00KKKKKKKKKKKKKKKKK0Oxdddddddddddddxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
OkkkkOOOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkO0KKKXXXXXXXXXXXXXXKKK0Okkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
OOOOOOOOOOOOkkOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkO00KKKKXXXXXXXXXXKKKK00Okkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
OOOOOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkO000KKKKKKKKKKKKKKKK000Okkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
OOOOOOOOOOOOOOOOOOOOOOOOOkkkOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOO000KKKKKKKKKKKKKK0000OkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkOOOkOOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOO00000KKKKKKKKKK00000OOkkkkkkkkkkkkkkkkkkkkkkkkkkOkkkOOOOOOOOOOOOOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOkOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOO00000000KKKK00000000OOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOOOkOOOkkkkkOkkkOOOOOOOOOOOOOOOOOkOOOOOkOOOkOOOOOOOO  
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkOOOkOkkkkkkkkkkkkkkkkkkkkkkkkkOO00000000000000000000OOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOkkkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkkkkkkkkkOkkkkkkkOkOOkkOOO000000000000000000OOOkkkkkkkkkkkkkkkkkkkkkOkkkkkkOOOOOOOOOOkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkOOOOOOOOOOOOOOOO000000000000000000OOOkkkkkOOOkkkkkkOOOOkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO000000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO00000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO00000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO00000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0OO00000OOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO00000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO000O00000000000
OOOOOO0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0000000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0OOOOOO0000000000000000000000
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0000000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0O00000000000000000000000000000000
000000000000000000OOOOOOOOOOOOOO0OOOO000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO000000000000000000000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0OOOOO000000O0000000000000000000000000000000000000000000
0000000000000000000000000000000O0000000000OO00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0000000000000000000000O0OOOOOOOOOOOOOOOOOOO00OOOOOOO00000OO000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000OO000OOOO000000OOOO0OOOOOOOOO000000000000000000000000OOOOOOOO0OOO000OO000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000OO00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000OO00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

SnoopR is a Python-based tool designed for network security professionals and enthusiasts. It detects Wi-Fi and Bluetooth devices captured by Kismet and also utilizes a GPS adapter to track device locations over time (known as "Snoopers"). The tool provides insights into the movement of these devices and maps Wi-Fi attacks logged by Kismet. Features:

I'm excited to announce the launch of SnoopR live, the latest version of my device detection and mapping tool that now provides live updates while running alongside Kismet! πŸŽ‰

πŸ” Key Features:

Real-Time Monitoring: Visualize devices, snoopers, airplanes and alerts on an interactive map with live updates.
Auto-Refreshing Map: The map auto-refreshes to display the latest data without manual intervention.
Device Movement Detection: Detect potential snoopers based on device movement thresholds.
Drone Detection: Identify known drones by SSID or MAC address prefixes.
Customizable Update Intervals: Adjust how frequently the data refreshes to suit your needs.

🌐 How It Works:

SnoopR live processes data from the Kismet SQLite database in real-time and updates an interactive Folium map that you can view in your web browser. This setup enhances situational awareness by providing a visual representation of the devices detected in your vicinity.

Usage Instructions: First run a virtual environment for each instance (Kismet, SnoopR and http.server)

Run Kismet:

 sudo kismet

Ensure that Kismet is running and capturing data.

Run SnoopR.py:

 python3 SnoopR.py --db-path /path/to/your.kismet --output-map /path/to/map/SnoopR_Map.html --interval 30

Replace /path/to/your.kismet with the path to your Kismet database file. Replace /path/to/map/SnoopR_Map.html with the desired output path for the map. The --interval argument specifies how often (in seconds) the script updates the map. Adjust as needed.

Start a Simple Web Server to Serve the Map:

In the directory containing SnoopR_Map.html, start a web server:

 python3 -m http.server 8000

This will serve files in the directory over HTTP on port 8000.

View the Map:

Open your web browser and navigate to:

 http://localhost:8000/SnoopR_Map.html

The map will auto-refresh every 30 seconds (or the interval you set). You'll see live updates as Kismet collects new data.

Dependencies:

Ensure you have all required Python packages installed:

    pip install folium

Final Notes:

Be mindful of system resources when running the script continuously (dont reduce the auto refresh interval under 10 seconds!).
Adjust the update interval to balance between real-time updates and system performance.
Monitor the snoopr.log file for any errors or warnings during execution.

πŸš€ Exciting Snoopr Updates Are Here! πŸ•΅οΈβ€β™‚οΈβœ¨

We're thrilled to announce the latest enhancements to Snoopr, your go-to tool for comprehensive device monitoring and snooping detection. Check out what's new:

πŸ“ New Snoopr Log

Automatically generates detailed logs after each script run for better tracking and analysis.

πŸš— TPMS Snoopers

Now detects Tire Pressure Monitoring Systems (TPMS) to keep an eye on vehicle-related devices.

✈️ Airplane Snoopers

Introducing Airplane Detection: Snoopr now identifies and monitors airplanes using ADS-B (Automatic Dependent Surveillance-Broadcast) data. Track aircraft movements in real-time and visualize them seamlessly on your interactive map!
Enhanced Mapping: Airplanes are represented with distinct plane icons and blue markers, making it easy to differentiate them from other devices.
Detailed Popups: Click on an airplane marker to view essential information such as flight ID, altitude, speed, and last seen time.

πŸ₯š Easter Egg Default Coordinates

If no valid location data is found, Snoopr gracefully defaults to our hidden Easter egg coordinates! πŸ—ΊοΈπŸ”

πŸ”§ All New Features Include:

Custom Drone Detection: Easily edit/add your own drone SSIDs or MAC address prefixes (OUIs) to stay ahead of new drone models.
Enhanced Map Layers: Choose between Snoopers, Alerts, Devices, and now Airplanes layers for a tailored visualization experience.
Customizable Snooper Detection: Modify the detect_snoopers(device_detections, movement_threshold=0.05) function to suit your specific needs and thresholds.

πŸ“ How to Customize:

Add New Drone SSIDs or MAC Prefixes:
    Open SnoopR.py.
    Locate known_drone_ssids or known_drone_mac_prefixes lists.
    Add your desired SSIDs or MAC prefixes to these lists.

Choose Map Layers:
    In the visualization section, select your preferred layers (Snoopers, Alerts, Devices, Airplanes) to display on the interactive map.

Edit Snooper Detection Threshold:
    Find the detect_snoopers function in SnoopR.py.
    Adjust the movement_threshold parameter to your preferred value.

πŸ”Œ Required Adapter:

You need 2 seperate RTL-SDR Dongles to detect ADSB and TPMS at the same time

Ensure you have a compatible wireless adapter that supports monitor mode and packet injection for optimal Snoopr performance. Recommended:

Compatiable GPS adapter to log coordinates

Requirements

The following Python libraries are required to run SnoopR. They are listed in the requirements.txt file:

folium
pandas
cbor2
jinja2
sqlite3-binary  # Bundled with Python but listed for completeness.
jsonschema
argparse  # Native, included for completeness.
logging  # Part of Python standard library.
math  # Built-in.
collections  # Used for defaultdict operations.

# Optional for SDR integration:
pyrtlsdr  # For RTL-SDR drone detection.
numpy # Required for SDR operations.
scipy # Optional for advanced signal processing.

Installation Guide

βš™οΈ Step-by-Step Guide to Install and Run SnoopR for Planes (ADS-B) and TPMS Detection

Step 1: Hardware Setup

  • RTL-SDR Dongle:

    • Purchase an RTL-SDR dongle (look for RTL2832U-based models).
    • Connect your RTL-SDR to the computer or Raspberry Pi using a powered USB hub if necessary to avoid power issues.
  • Antennas:

    • For ADS-B (Planes): Use a 1090 MHz antenna.
    • For TPMS (Tire Pressure Monitoring Systems): Use a general-purpose VHF/UHF antenna or a TPMS-specific antenna if available.

Step 2: Install Software Dependencies

  1. Install Python and Pip:

    sudo apt update
    sudo apt install python3 python3-pip
  2. Install SDR Tools (RTL-SDR Support):

    sudo apt install rtl-sdr
    

    Test the Installation:

     rtl_test
    
    • If your RTL-SDR is recognized, you’ll see a confirmation message.

Step 3: Set Up RTL_433 for TPMS Detection

-Install RTL_433:

sudo apt install rtl-433
  • Test It by Running:

    rtl_433 -G -f 315000000
    
    • This command scans the 315 MHz band, used by many TPMS sensors.

Follow the steps below to install and use SnoopR: Step-by-Step Installation

First, clone the repository to your local machine:

git clone https://github.com/AlienMajik/SnoopR.git

cd SnoopR

Create a Virtual Environment (Optional but Recommended)

It’s good practice to isolate dependencies in a virtual environment. Create one by running the following:

python3 -m venv env

source env/bin/activate

Install Dependencies

Install the required dependencies from the requirements.txt file:

pip install -r requirements.txt

Run Kismet

Ensure Kismet is running and capturing network traffic by manually(recommended) activating all data sources through kismets GUI by running:

sudo kismet

Or you activate the data sources from the start. Wardrive around in order to see if devices are following you. You can use this command (with appropriate adapter names):

sudo kismet -c wlan1 -c hci0:bluetooth

Running Kismet with Multiple Adapters

Kismet allows capturing traffic from multiple adapters simultaneously by specifying each adapter in the command. Here’s how users can configure multiple Wi-Fi and Bluetooth adapters: Wi-Fi Adapters

You can specify more than one Wi-Fi adapter by listing each one with the -c flag:

sudo kismet -c wlan0 -c wlan1

This will tell Kismet to capture data from both wlan0 and wlan1 Wi-Fi adapters. Bluetooth Adapters

Similarly, for Bluetooth, use the -c flag with the Bluetooth adapter names (for example, hci0 for the first Bluetooth interface):

sudo kismet -c wlan0 -c hci0:bluetooth

You can add multiple Bluetooth adapters like so:

sudo kismet -c wlan0 -c hci0:bluetooth -c hci1:bluetooth

This command captures Wi-Fi traffic on wlan0 and Bluetooth traffic on both hci0 and hci1. Replace wlan1 and hci0 with your actual Wi-Fi and Bluetooth adapter names.

Wardrive While Capturing Data

Ensure Your GPS Device Is Connected: - As you move around, Kismet will log detected devices with their GPS coordinates.

  • Verify Data Collection:
    • Access Kismet’s web interface (usually at [http://localhost:2501]).
    • Confirm you are receiving data from Wi-Fi, Bluetooth, ADS-B, and TPMS sources.

Once Kismet is done capturing traffic close out kismet then run SnoopR to analyze and visualize data:

Run Snoopr:

python3 SnoopR.py --db-path Kismet-YYYYMMDD-HH-MM-SS.kismet --output-map SnoopR_Map.html 

Or automatically select the latest Kismet file:

python3 SnoopR.py --output-map Maps/SnoopR_Map.html

View the Map with:

xdg-open SnoopR_Map.html

After the script finishes processing, an HTML file named SnoopR_Map.html will be created in your working directory. Open this file in any browser or click on the HTML file to view the interactive map with device and alert data.

Usage

Automatically Find the Most Recent .kismet File: SnoopR automatically selects the most recent Kismet capture file in your working directory.

Extract and Analyze Data: The script extracts device information (MAC address, SSID, encryption type, location etc.) and alerts from the .kismet file.

Detect Snoopers: Devices that have been detected in multiple locations are flagged as snoopers.

Alerts for Wi-Fi Attacks: Wi-Fi attacks (such as deauthentication or other suspicious behavior) captured by Kismet are also flagged and marked on the map.

Visualize Devices and Alerts: After processing, the script generates an interactive Openstreetmaps HTML map (SnoopR_Map.html) that marks devices and alerts.

How to Change the Detection Distance/Radius in SnoopR

The SnoopR script uses the haversine formula to calculate the distance between two GPS coordinates in miles. By default, the script is set to detect devices (snoopers) that move more than 0.05 miles (approximately 80 meters). If you wish to increase or decrease this radius to change the sensitivity of the detection, follow these steps:

The easiest way to change the threshold is with this command or you can manually change the script:

python3 SnoopR.py --db-path Kismet-YYYYMMDD-HH-MM-SS.kismet --movement-threshold 0.01 --output-map Custom_SnoopR_Map.html

Locate the detect_snoopers Function: In the SnoopR.py script, find the function definition for detect_snoopers. It will look like this:

def detect_snoopers(device_data, distance_threshold=0.05):  # Distance in miles

Change the distance_threshold Parameter:

To increase the detection radius (detect snoopers over a larger distance), increase the value of the distance_threshold parameter. For example, setting it to 0.1 miles would track devices that have moved approximately 160 meters or more:

def detect_snoopers(device_data, distance_threshold=0.1):  # Increased detection radius

To decrease the detection radius (detect snoopers over a shorter distance), lower the distance_threshold value. Setting it to 0.02 miles would detect devices that have moved 32 meters or more:

def detect_snoopers(device_data, distance_threshold=0.02):  # Decreased detection radius

Save the Script: After modifying the distance_threshold, save the changes to the script.

Recommended Thresholds Based on Scenarios A. Small Indoor Spaces (e.g., Offices, Homes)

Suggested Threshold: 0.01 to 0.03 miles (~53 to 158 feet)
    Rationale: Allows detection of devices moving within confined spaces without being overly sensitive to minor fluctuations.

B. Medium-Sized Areas (e.g., Retail Stores, Warehouses)

Suggested Threshold: 0.03 to 0.07 miles (~158 to 369 feet)
    Rationale: Balances between detecting significant movements and minimizing false positives in moderately sized environments.

C. Large Outdoor Areas (e.g., Campuses, Large Warehouses)

Suggested Threshold: 0.07 to 0.2 miles (~369 to 1056 feet)
    Rationale: Accounts for greater distances between detection points and natural movement ranges of devices.

D. High-Security Environments

Suggested Threshold: 0.005 to 0.02 miles (~26 to 105 feet)
    Rationale: Enhances sensitivity to detect even minimal movements indicative of unauthorized access.

Run SnoopR: Run the script as usual. The snooper detection will now use the new radius for detecting devices.

βš–οΈ Legal Disclaimer Disclaimer of Warranty

Snoopr is provided "as is," without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or contributors be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with Snoopr or the use or other dealings in the software. Limitation of Liability

Under no circumstances shall the authors or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of Snoopr, even if advised of the possibility of such damage. Use at Your Own Risk

The use of Snoopr is entirely at your own risk. Users are responsible for ensuring that their use of the software complies with all applicable local, state, national, and international laws and regulations. The authors do not assume any responsibility or liability for any misuse or illegal activities conducted using Snoopr. Compliance with Laws

This software ("SnoopR.py") is provided for educational and research purposes only. It is the user's responsibility to ensure compliance with all applicable local, state, federal, and international laws and regulations. Unauthorized interception, monitoring, or tracking of communications may violate laws such as the Federal Wiretap Act (18 U.S.C. Β§ 2511) and similar state or international privacy laws. The use of this script to collect or store personal data (e.g., MAC addresses, device locations) without explicit consent may result in legal liability. No Endorsement

Any reference to third-party products, services, or organizations in Snoopr does not constitute an endorsement, recommendation, or favoring by the authors or contributors. Reliance on any information provided by Snoopr is solely at your own risk. Prohibited Uses

Illegal Activities: Do not use this software to monitor encrypted communications or cellular networks. Use of this tool for malicious or illegal purposes is strictly prohibited.

ADS-B Data: Use of ADS-B data may be regulated. Ensure compliance with relevant aviation regulations.

Data Privacy: Avoid sharing collected data in a way that could identify or track individuals without their consent.

Data Privacy

Users must ensure that the use of Snoopr does not infringe on individuals' privacy rights. Collecting or storing personal data (e.g., MAC addresses, device locations) without explicit consent may result in legal liability. Changes to This Disclaimer

The authors reserve the right to modify this disclaimer at any time. It is your responsibility to review this disclaimer periodically for any changes. Your continued use of Snoopr after the posting of changes constitutes your acceptance of such changes.

Always respect privacy and comply with the law when using SnoopR.

Feel free to fork the repository, make changes, and open pull requests if you want to add features or improve the script!

About

A Python tool to detect and visualize Wi-Fi/Bluetooth snoopers and network security alerts from Kismet logs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages