The UK range 0x400000-0x43FFFF was the entire UK allocation, not just military - this incorrectly flagged civilian airlines like EasyJet (EZY callsign) as military aircraft. Fixed ranges: - Removed broad UK range, kept only RAF sub-range 0x43C000-0x43CFFF - Narrowed France range to actual military 0x3F4000-0x3F7FFF - Fixed Germany to correct Luftwaffe range 0x3D0000-0x3DFFFF - Fixed typo in US range (0xADFFFFF -> 0xADFFFF) 🤖 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.