James Smith 13be9c189e Fix satellite tab to redraw polar plot with trajectory on position update
The polar plot now redraws the pass trajectory before overlaying the
current position indicator, matching the dashboard behavior.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 15:28:37 +00:00
2025-12-24 12:51:34 +00:00
2025-12-22 15:35:03 +00:00
2025-12-19 21:59:14 +00:00

INTERCEPT

Python 3.7+ MIT License Platform Author

Signal Intelligence Platform

A sleek, modern web-based front-end for signal intelligence tools.
Unified interface for pager decoding, 433MHz sensors, ADS-B aircraft tracking, satellite monitoring, WiFi reconnaissance, and Bluetooth scanning.

Screenshot


Quick Start

# Clone and install
git clone https://github.com/smittix/intercept.git
cd intercept
pip install -r requirements.txt

# Run (sudo recommended for full functionality)
sudo python3 intercept.py

Open http://localhost:5050 in your browser. See Installation for external tool setup.


What is INTERCEPT?

INTERCEPT is a web-based front-end that provides a unified, modern interface for signal intelligence tools:

  • rtl_fm + multimon-ng - For decoding POCSAG and FLEX pager signals
  • rtl_433 - For decoding 433MHz ISM band devices (weather stations, sensors, etc.)
  • dump1090 / rtl_adsb - For ADS-B aircraft tracking with real-time map visualization
  • Satellite tracking - Pass prediction and Iridium burst detection using TLE data
  • aircrack-ng - For WiFi reconnaissance and network analysis
  • hcitool / bluetoothctl - For Bluetooth device scanning and tracking

Instead of running command-line tools manually, INTERCEPT handles the process management, output parsing, and presents decoded data in a clean, real-time web interface.


Features

📟 Pager Decoding

  • Real-time decoding of POCSAG (512/1200/2400) and FLEX protocols
  • Customizable frequency presets stored in browser
  • Auto-restart on frequency change while decoding

📡 433MHz Sensor Decoding

  • 200+ device protocols supported via rtl_433
  • Weather stations - temperature, humidity, wind, rain
  • TPMS - Tire pressure monitoring sensors
  • Doorbells, remotes, and IoT devices
  • Smart meters and utility monitors

✈️ ADS-B Aircraft Tracking

  • Real-time aircraft tracking via dump1090 or rtl_adsb
  • Interactive Leaflet map with OpenStreetMap tiles
  • Dark-themed map matching application aesthetic
  • Aircraft details - callsign, altitude, speed, heading, squawk
  • Click aircraft markers for detailed popup information
  • Auto-fit view to show all tracked aircraft
  • Emergency aircraft highlighting in red

🛰️ Satellite Tracking

  • Pass prediction for satellites using TLE data
  • Add satellites via manual TLE entry or Celestrak import
  • Celestrak integration - fetch satellites by category (Amateur, Weather, ISS, Starlink, etc.)
  • Iridium burst detection monitoring
  • Next pass countdown with elevation and duration
  • Multiple satellite tracking simultaneously

📶 WiFi Reconnaissance

  • Monitor mode management via airmon-ng
  • Network scanning with airodump-ng and channel hopping
  • Handshake capture with real-time status and auto-detection
  • Deauthentication attacks for authorized testing
  • Channel utilization visualization (2.4GHz and 5GHz)
  • Security overview chart and real-time radar display
  • Client vendor lookup via OUI database
  • Drone detection - automatic detection via SSID patterns and OUI (DJI, Parrot, Autel, etc.)
  • Rogue AP detection - alerts for same SSID on multiple BSSIDs
  • Signal history graph - track signal strength over time for any device
  • Network topology - visual map of APs and connected clients
  • Channel recommendation - optimal channel suggestions based on congestion
  • Hidden SSID revealer - captures hidden networks from probe requests
  • Client probe analysis - privacy leak detection from probe requests
  • Device correlation - matches WiFi and Bluetooth devices by manufacturer

🔵 Bluetooth Scanning

  • BLE and Classic Bluetooth device scanning
  • Multiple scan modes - hcitool, bluetoothctl
  • Tracker detection - AirTag, Tile, Samsung SmartTag, Chipolo
  • Device classification - phones, audio, wearables, computers
  • Manufacturer lookup via OUI database
  • Proximity radar visualization
  • Device type breakdown chart

🔔 Browser Notifications

  • Desktop notifications for critical events (even when tab is in background)
  • Alerts for: Drone detection, Rogue APs, Handshake capture, Hidden SSID reveals
  • Permission requested on first interaction

Help System

  • Built-in help page accessible via ? button in header
  • Icon legend for all stats bar icons
  • Mode-by-mode guides with tips and instructions
  • Keyboard shortcut: Press Escape to close

🎨 User Interface

  • Collapsible sections - click any header to collapse/expand
  • Icon-based stats bar with tooltips
  • Tabbed mode selector with icons (grouped by SDR/RF and Wireless)
  • Compact, modern design with consistent styling
  • Dark/Light theme toggle - click moon/sun icon in header, preference saved
  • Keyboard shortcuts - F1 or ? to open help

⌨️ Keyboard Shortcuts

Key Action
F1 Open help
? Open help (when not typing)
Escape Close help/modals

General

  • Web-based interface - no desktop app needed
  • Live message streaming via Server-Sent Events (SSE)
  • Audio alerts with mute toggle
  • Message export to CSV/JSON
  • Signal activity meter and waterfall display
  • Message logging to file with timestamps
  • RTL-SDR device detection and selection
  • Configurable gain and PPM correction
  • Device intelligence dashboard with tracking
  • Disclaimer acceptance on first use
  • Auto-stop when switching between modes

Requirements

Hardware

  • RTL-SDR compatible dongle (RTL2832U based)
  • WiFi adapter capable of monitor mode (for WiFi features)
  • Bluetooth adapter (for Bluetooth features)

Software

  • Python 3.7+
  • Flask, skyfield (installed via requirements.txt)
  • rtl-sdr tools (rtl_fm)
  • multimon-ng (for pager decoding)
  • rtl_433 (for 433MHz sensor decoding)
  • dump1090 or rtl_adsb (for ADS-B aircraft tracking)
  • aircrack-ng (for WiFi reconnaissance)
  • BlueZ tools - hcitool, bluetoothctl (for Bluetooth)

Installation

Install external tools

Install the tools for the features you need:

Tool macOS Ubuntu/Debian Purpose
rtl-sdr brew install rtl-sdr sudo apt install rtl-sdr Required for all SDR features
multimon-ng brew install multimon-ng sudo apt install multimon-ng Pager decoding
rtl_433 brew install rtl_433 sudo apt install rtl-433 433MHz sensors
dump1090 brew install dump1090-mutability sudo apt install dump1090-mutability ADS-B aircraft
aircrack-ng brew install aircrack-ng sudo apt install aircrack-ng WiFi reconnaissance
bluez Built-in (limited) sudo apt install bluez bluetooth Bluetooth scanning

Install and run

git clone https://github.com/smittix/intercept.git
cd intercept
pip install -r requirements.txt
sudo python3 intercept.py

Open http://localhost:5050 in your browser.

Note: Running as root/sudo is recommended for full functionality (monitor mode, raw sockets, etc.)

Command-line options

python3 intercept.py --help

  -p, --port PORT    Port to run server on (default: 5050)
  -H, --host HOST    Host to bind to (default: 0.0.0.0)
  -d, --debug        Enable debug mode
  --check-deps       Check dependencies and exit

Usage

Pager Mode

  1. Select Device - Choose your RTL-SDR device from the dropdown
  2. Set Frequency - Enter a frequency in MHz or use a preset
  3. Choose Protocols - Select which protocols to decode (POCSAG/FLEX)
  4. Adjust Settings - Set gain, squelch, and PPM correction as needed
  5. Start Decoding - Click the green "Start Decoding" button

WiFi Mode

  1. Select Interface - Choose a WiFi adapter capable of monitor mode
  2. Enable Monitor Mode - Click "Enable Monitor" (uncheck "Kill processes" to preserve other connections)
  3. Start Scanning - Click "Start Scanning" to begin
  4. View Networks - Networks appear in the output panel with signal strength
  5. Track Devices - Click 📈 on any network to track its signal over time
  6. Capture Handshakes - Click "Capture" on a network to start handshake capture

Bluetooth Mode

  1. Select Interface - Choose your Bluetooth adapter
  2. Choose Mode - Select scan mode (hcitool, bluetoothctl)
  3. Start Scanning - Click "Start Scanning"
  4. View Devices - Devices appear with name, address, and classification

Aircraft Mode

  1. Check Tools - Ensure dump1090 or rtl_adsb is installed
  2. Start Tracking - Click "Start Tracking" to begin ADS-B reception
  3. View Map - Aircraft appear on the interactive Leaflet map
  4. Click Aircraft - Click markers for detailed information (altitude, speed, heading)
  5. Toggle Labels - Use checkboxes to show/hide callsigns and flight levels

Satellite Mode

  1. Add Satellites - Click "Add Satellite" to enter TLE data manually, or use "Celestrak" to fetch by category
  2. Select Category - Choose from Amateur, Weather, ISS, Starlink, GPS, etc.
  3. View Passes - Next pass predictions shown with elevation and duration
  4. Track Multiple - Add multiple satellites to track simultaneously
  5. Iridium Bursts - Monitor for Iridium satellite burst transmissions

Frequency Presets

  • Click a preset button to quickly set a frequency
  • Add custom presets using the input field and "Add" button
  • Right-click a preset to remove it
  • Click "Reset to Defaults" to restore default frequencies

Troubleshooting

No devices found

  • Ensure your RTL-SDR is plugged in
  • Check rtl_test works from command line
  • On Linux, you may need to blacklist the DVB-T driver

No messages appearing

  • Verify the frequency is correct for your area
  • Adjust the gain (try 30-40 dB)
  • Check that pager services are active in your area
  • Ensure antenna is connected

WiFi monitor mode fails

  • Ensure you're running as root/sudo
  • Check your adapter supports monitor mode: iw list | grep monitor
  • Try: airmon-ng check kill to stop interfering processes

Device busy error

  • Click "Kill All Processes" to stop any stale processes
  • Unplug and replug the RTL-SDR device

Configuration

INTERCEPT can be configured via environment variables:

Variable Default Description
INTERCEPT_HOST 0.0.0.0 Server bind address
INTERCEPT_PORT 5050 Server port
INTERCEPT_DEBUG false Enable debug mode
INTERCEPT_LOG_LEVEL WARNING Log level (DEBUG, INFO, WARNING, ERROR)
INTERCEPT_DEFAULT_GAIN 40 Default RTL-SDR gain

Example: INTERCEPT_PORT=8080 sudo python3 intercept.py


License

MIT License - see LICENSE for details.

Author

Created by smittix - GitHub

Acknowledgments


⚠️ Disclaimer

This software is for educational purposes only and intended for use by cybersecurity professionals in controlled environments.

By using INTERCEPT, you acknowledge that:

  • You will only use this tool with proper authorization
  • Intercepting communications without consent may be illegal in your jurisdiction
  • WiFi deauthentication and Bluetooth attacks should only be performed on networks/devices you own or have explicit permission to test
  • You are solely responsible for ensuring compliance with all applicable laws and regulations
  • The developers assume no liability for misuse of this software

A disclaimer must be accepted when first launching the application.

Description
No description provided
Readme Apache-2.0 112 MiB
Languages
Python 45.9%
HTML 22.7%
JavaScript 20.2%
CSS 9.9%
Shell 1.2%
Other 0.1%