The orbit track was being added correctly but wasn't visible because the map was zoomed to the pass ground track (a small arc). Now the map fits bounds to include the full orbit track plus observer location after adding the orbit layer. Also removed debug console.log statements. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
INTERCEPT
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
- Select Device - Choose your RTL-SDR device from the dropdown
- Set Frequency - Enter a frequency in MHz or use a preset
- Choose Protocols - Select which protocols to decode (POCSAG/FLEX)
- Adjust Settings - Set gain, squelch, and PPM correction as needed
- Start Decoding - Click the green "Start Decoding" button
WiFi Mode
- Select Interface - Choose a WiFi adapter capable of monitor mode
- Enable Monitor Mode - Click "Enable Monitor" (uncheck "Kill processes" to preserve other connections)
- Start Scanning - Click "Start Scanning" to begin
- View Networks - Networks appear in the output panel with signal strength
- Track Devices - Click 📈 on any network to track its signal over time
- Capture Handshakes - Click "Capture" on a network to start handshake capture
Bluetooth Mode
- Select Interface - Choose your Bluetooth adapter
- Choose Mode - Select scan mode (hcitool, bluetoothctl)
- Start Scanning - Click "Start Scanning"
- View Devices - Devices appear with name, address, and classification
Aircraft Mode
- Check Tools - Ensure dump1090 or rtl_adsb is installed
- Start Tracking - Click "Start Tracking" to begin ADS-B reception
- View Map - Aircraft appear on the interactive Leaflet map
- Click Aircraft - Click markers for detailed information (altitude, speed, heading)
- Toggle Labels - Use checkboxes to show/hide callsigns and flight levels
Satellite Mode
- Add Satellites - Click "Add Satellite" to enter TLE data manually, or use "Celestrak" to fetch by category
- Select Category - Choose from Amateur, Weather, ISS, Starlink, GPS, etc.
- View Passes - Next pass predictions shown with elevation and duration
- Track Multiple - Add multiple satellites to track simultaneously
- 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_testworks 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 killto 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
- rtl-sdr - RTL-SDR drivers
- multimon-ng - Multi-protocol pager decoder
- rtl_433 - 433MHz sensor decoder
- dump1090 - ADS-B decoder for aircraft tracking
- aircrack-ng - WiFi security auditing tools
- BlueZ - Official Linux Bluetooth protocol stack
- Leaflet.js - Interactive maps for aircraft tracking
- OpenStreetMap - Map tile data
- Celestrak - Satellite TLE data
- Inspired by the SpaceX mission control aesthetic
⚠️ 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.