- Signal Intelligence
+ Signal Intelligence Platform
A sleek, modern web-based front-end for signal intelligence tools.
- Unified interface for pager decoding, 433MHz sensors, WiFi reconnaissance, and Bluetooth scanning.
+ Unified interface for pager decoding, 433MHz sensors, ADS-B aircraft tracking, satellite monitoring, WiFi reconnaissance, and Bluetooth scanning.
## Screenshot
@@ -27,8 +27,10 @@ INTERCEPT is a **web-based front-end** that provides a unified, modern interface
- **rtl_fm + multimon-ng** - For decoding POCSAG and FLEX pager signals
- **rtl_433** - For decoding 433MHz ISM band devices (weather stations, sensors, etc.)
-- **aircrack-ng / kismet** - For WiFi reconnaissance and network analysis
-- **hcitool / bluetoothctl / ubertooth** - For Bluetooth device scanning and tracking
+- **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.
@@ -36,39 +38,126 @@ Instead of running command-line tools manually, INTERCEPT handles the process ma
## Features
-### Pager Decoding
+### π 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
+### π‘ 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
-### WiFi Reconnaissance
+### βοΈ 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 or Kismet
+- **Network scanning** with airodump-ng
- **Channel hopping** or fixed channel monitoring
- **Deauthentication attacks** for authorized testing
-- **Handshake capture** for WPA/WPA2 networks
-- **Channel utilization** visualization (2.4GHz)
+- **Handshake capture** with real-time status and auto-detection
+- **Channel utilization** visualization (2.4GHz and 5GHz)
- **Security overview** chart (WPA3/WPA2/WEP/Open)
- **Real-time radar** display of nearby networks
+- **Client vendor lookup** via OUI database
+- **Proximity alerts** - watch list for specific MAC addresses
-### Bluetooth Scanning
+#### π Drone Detection
+- **Automatic detection** of drones via SSID patterns and manufacturer OUI
+- **Supported brands**: DJI, Parrot, Autel, Skydio, Holy Stone, and many more
+- **Distance estimation** from signal strength
+- **Visual alerts** with triple audio notification
+- **Clickable drone counter** - view all detected drones with details
+
+#### β οΈ Rogue AP Detection
+- **Automatic detection** of same SSID on multiple BSSIDs
+- **Clickable counter** - view which SSIDs triggered alerts
+- **Detailed popup** showing all BSSIDs, channels, and signal strength
+
+#### π Signal History Graph
+- **Real-time line chart** showing signal strength over time
+- **Track any device** - click the π button on any network
+- **Visual movement detection** - see devices approaching or departing
+
+#### πΈοΈ Network Topology Graph
+- **Visual map** of all access points and connected clients
+- **Color-coded nodes** - cyan for APs, green for clients, orange for drones
+- **Auto-updating** as new devices are discovered
+
+#### π‘ Channel Recommendation
+- **Automatic analysis** of channel congestion
+- **Recommends optimal channels** for both 2.4GHz and 5GHz
+- **Considers channel overlap** for accurate 2.4GHz recommendations
+
+#### ποΈ Hidden SSID Revealer
+- **Captures hidden SSIDs** from probe requests
+- **Displays revealed networks** with BSSID mapping
+- **Desktop notifications** when new hidden SSIDs are revealed
+
+#### π Device Correlation
+- **Matches WiFi and Bluetooth devices** with same manufacturer
+- **OUI-based correlation** to identify multi-radio devices
+- **Useful for tracking** devices across protocols
+
+#### π‘ Client Probe Analysis
+- **Track client probe requests** - see what networks devices are looking for
+- **Privacy leak detection** - highlights sensitive network names (home, office, hotel, airport)
+- **Vendor identification** - shows device manufacturer
+- **Sorted by exposure** - most revealing clients shown first
+- **Unique SSID counter** - total unique networks being probed
+
+### π΅ Bluetooth Scanning
- **BLE and Classic** Bluetooth device scanning
-- **Multiple scan modes** - hcitool, bluetoothctl, Ubertooth, Bettercap
+- **Multiple scan modes** - hcitool, bluetoothctl
- **Tracker detection** - AirTag, Tile, Samsung SmartTag, Chipolo
- **Device classification** - phones, audio, wearables, computers
- **Manufacturer lookup** via OUI database
-- **Service enumeration** via SDP
-- **L2CAP ping** for device reachability
- **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)
@@ -82,23 +171,46 @@ Instead of running command-line tools manually, INTERCEPT handles the process ma
- **Disclaimer acceptance** on first use
- **Auto-stop** when switching between modes
+---
+
+## Stats Bar Icons
+
+| Icon | Meaning |
+|------|---------|
+| π | POCSAG messages decoded |
+| π | FLEX messages decoded |
+| π¨ | Total messages received |
+| π‘οΈ | Unique sensors detected |
+| π | Device types found |
+| βοΈ | Aircraft being tracked |
+| π°οΈ | Satellites being monitored |
+| π‘ | WiFi Access Points |
+| π€ | Connected WiFi clients |
+| π€ | Captured handshakes |
+| π | Detected drones (click for details) |
+| β οΈ | Rogue APs (click for details) |
+| π΅ | Bluetooth devices |
+| π | BLE beacons detected |
+
+---
## 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
+- requests (for Celestrak API)
- 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)
-- kismet (optional, alternative WiFi scanner)
-- BlueZ tools - hcitool, bluetoothctl, sdptool, l2ping (for Bluetooth)
-- Ubertooth tools (optional, for advanced BLE sniffing)
-- Bettercap (optional, alternative BLE scanner)
+- BlueZ tools - hcitool, bluetoothctl (for Bluetooth)
## Installation
@@ -175,7 +287,27 @@ brew install aircrack-ng
sudo apt-get install aircrack-ng
```
-### 5. Install Bluetooth tools (optional)
+### 5. Install dump1090 (optional, for ADS-B aircraft tracking)
+
+**macOS (Homebrew):**
+```bash
+brew install dump1090-mutability
+```
+
+**Ubuntu/Debian:**
+```bash
+sudo apt-get install dump1090-mutability
+```
+
+**From source:**
+```bash
+git clone https://github.com/flightaware/dump1090.git
+cd dump1090
+make
+sudo cp dump1090 /usr/local/bin/
+```
+
+### 6. Install Bluetooth tools (optional)
**Ubuntu/Debian:**
```bash
@@ -185,30 +317,62 @@ sudo apt-get install bluez bluetooth
**macOS:**
Bluetooth tools are built-in, though with limited functionality compared to Linux.
-### 6. Install Python dependencies
+### 7. Install Python dependencies
```bash
pip install -r requirements.txt
```
-### 7. Clone and run
+### 8. Clone and run
```bash
-git clone https://github.com/yourusername/intercept.git
+git clone https://github.com/smittix/intercept.git
cd intercept
-python3 intercept.py
+sudo python3 intercept.py
```
Open your browser to `http://localhost:5050`
+> **Note:** Running as root/sudo is recommended for full functionality (monitor mode, raw sockets, etc.)
+
+---
+
## 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
-6. **View Messages** - Decoded messages appear in real-time in the output panel
+
+### 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
@@ -217,23 +381,7 @@ Open your browser to `http://localhost:5050`
- Right-click a preset to remove it
- Click "Reset to Defaults" to restore default frequencies
-### Message Logging
-
-Enable logging in the Logging section to save decoded messages to a file. Messages are saved with timestamp, protocol, address, and content.
-
-## Default Frequencies
-
-### Pager (UK)
-- **153.350 MHz** - UK pager frequency
-- **153.025 MHz** - UK pager frequency
-
-### 433MHz Sensors
-- **433.92 MHz** - EU/UK ISM band (most common)
-- **315.00 MHz** - US ISM band
-- **868.00 MHz** - EU ISM band
-- **915.00 MHz** - US ISM band
-
-You can customize pager presets in the web interface.
+---
## API Endpoints
@@ -249,8 +397,6 @@ You can customize pager presets in the web interface.
| `/status` | GET | Get decoder status |
| `/stream` | GET | SSE stream for pager messages |
| `/stream_sensor` | GET | SSE stream for sensor data |
-| `/logging` | POST | Toggle message logging |
-| `/killall` | POST | Kill all decoder processes |
### WiFi
| Endpoint | Method | Description |
@@ -260,6 +406,8 @@ You can customize pager presets in the web interface.
| `/wifi/scan/start` | POST | Start WiFi scanning |
| `/wifi/scan/stop` | POST | Stop WiFi scanning |
| `/wifi/deauth` | POST | Send deauthentication packets |
+| `/wifi/handshake/capture` | POST | Start handshake capture |
+| `/wifi/handshake/status` | POST | Check handshake capture status |
| `/wifi/networks` | GET | Get discovered networks |
| `/wifi/stream` | GET | SSE stream for WiFi events |
@@ -270,10 +418,29 @@ You can customize pager presets in the web interface.
| `/bt/scan/start` | POST | Start Bluetooth scanning |
| `/bt/scan/stop` | POST | Stop Bluetooth scanning |
| `/bt/enum` | POST | Enumerate device services |
-| `/bt/ping` | POST | L2CAP ping a device |
| `/bt/devices` | GET | Get discovered devices |
| `/bt/stream` | GET | SSE stream for Bluetooth events |
+### Aircraft (ADS-B)
+| Endpoint | Method | Description |
+|----------|--------|-------------|
+| `/adsb/start` | POST | Start ADS-B tracking |
+| `/adsb/stop` | POST | Stop ADS-B tracking |
+| `/adsb/aircraft` | GET | Get tracked aircraft |
+| `/adsb/stream` | GET | SSE stream for aircraft data |
+| `/adsb/tools` | GET | Check ADS-B tool availability |
+
+### Satellite
+| Endpoint | Method | Description |
+|----------|--------|-------------|
+| `/satellite/add` | POST | Add satellite with TLE data |
+| `/satellite/remove` | POST | Remove satellite from tracking |
+| `/satellite/list` | GET | Get tracked satellites |
+| `/satellite/passes` | GET | Get pass predictions |
+| `/satellite/celestrak/` | GET | Fetch satellites from Celestrak |
+
+---
+
## Troubleshooting
### No devices found
@@ -287,10 +454,17 @@ You can customize pager presets in the web interface.
- 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
+---
+
## License
MIT License - see [LICENSE](LICENSE) for details.
@@ -305,12 +479,11 @@ Created by **smittix** - [GitHub](https://github.com/smittix)
- [multimon-ng](https://github.com/EliasOenal/multimon-ng) - Multi-protocol pager decoder
- [rtl_433](https://github.com/merbanan/rtl_433) - 433MHz sensor decoder
- [aircrack-ng](https://www.aircrack-ng.org/) - WiFi security auditing tools
-- [Kismet](https://www.kismetwireless.net/) - Wireless network detector and sniffer
- [BlueZ](http://www.bluez.org/) - Official Linux Bluetooth protocol stack
-- [Ubertooth](https://greatscottgadgets.com/ubertoothone/) - Open source Bluetooth research tool
-- [Bettercap](https://www.bettercap.org/) - Network reconnaissance and MITM framework
- 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.**
@@ -323,5 +496,3 @@ By using INTERCEPT, you acknowledge that:
- The developers assume no liability for misuse of this software
A disclaimer must be accepted when first launching the application.
-
-
diff --git a/intercept.py b/intercept.py
index abeb013..e8ef1d5 100755
--- a/intercept.py
+++ b/intercept.py
@@ -1,6 +1,16 @@
#!/usr/bin/env python3
"""
-Pager Decoder - POCSAG/FLEX decoder using RTL-SDR and multimon-ng
+INTERCEPT - Signal Intelligence Platform
+
+A comprehensive signal intelligence tool featuring:
+- Pager decoding (POCSAG/FLEX)
+- 433MHz sensor monitoring
+- ADS-B aircraft tracking with WarGames-style display
+- Satellite pass prediction and Iridium burst detection
+- WiFi reconnaissance and drone detection
+- Bluetooth scanning
+
+Requires RTL-SDR hardware for RF modes.
"""
import subprocess
@@ -60,6 +70,38 @@ bt_devices = {} # MAC -> device info
bt_beacons = {} # MAC -> beacon info (AirTags, Tiles, iBeacons)
bt_services = {} # MAC -> list of services
+# Aircraft (ADS-B) state
+adsb_process = None
+adsb_queue = queue.Queue()
+adsb_lock = threading.Lock()
+adsb_aircraft = {} # ICAO hex -> aircraft info
+
+# Satellite state
+satellite_process = None
+satellite_queue = queue.Queue()
+satellite_lock = threading.Lock()
+iridium_bursts = [] # List of detected Iridium bursts
+satellite_passes = [] # Predicted satellite passes
+
+# TLE data for satellite tracking (updated periodically)
+TLE_SATELLITES = {
+ 'ISS': ('ISS (ZARYA)',
+ '1 25544U 98067A 24001.00000000 .00000000 00000-0 00000-0 0 0000',
+ '2 25544 51.6400 0.0000 0000000 0.0000 0.0000 15.50000000000000'),
+ 'NOAA-15': ('NOAA 15',
+ '1 25338U 98030A 24001.00000000 .00000-0 00000-0 00000-0 0 0000',
+ '2 25338 98.7300 0.0000 0010000 0.0000 0.0000 14.26000000000000'),
+ 'NOAA-18': ('NOAA 18',
+ '1 28654U 05018A 24001.00000000 .00000-0 00000-0 00000-0 0 0000',
+ '2 28654 98.8800 0.0000 0014000 0.0000 0.0000 14.12000000000000'),
+ 'NOAA-19': ('NOAA 19',
+ '1 33591U 09005A 24001.00000000 .00000-0 00000-0 00000-0 0 0000',
+ '2 33591 99.1900 0.0000 0014000 0.0000 0.0000 14.12000000000000'),
+ 'METEOR-M2': ('METEOR-M 2',
+ '1 40069U 14037A 24001.00000000 .00000-0 00000-0 00000-0 0 0000',
+ '2 40069 98.5400 0.0000 0005000 0.0000 0.0000 14.21000000000000'),
+}
+
# Known beacon prefixes for detection
AIRTAG_PREFIXES = ['4C:00'] # Apple continuity
TILE_PREFIXES = ['C4:E7', 'DC:54', 'E4:B0', 'F8:8A']
@@ -251,6 +293,9 @@ HTML_TEMPLATE = '''
INTERCEPT // Signal Intelligence
+
+
+