Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
signalops — All-source intelligence fusion dashboard — WiFi, cellular, CCTV, ADS-B, orbital & SDR feeds unified into a single tactical map. Security research only. | Kitploit
Tools/GitHubGitHub/emrekybs/signalops
OSINT (Open Source Intelligence)ReconnaissanceIoT SecurityVulnerability AnalysisInformation GatheringNetwork SecurityWireless SecurityMobile SecurityThreat IntelligenceCrawlerAI Security
221 month agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
GitHub
emrekybs/signalops

signalops

All-source intelligence fusion dashboard — WiFi, cellular, CCTV, ADS-B, orbital & SDR feeds unified into a single tactical map. Security research only.

View Repository

Signal OPS

A full-spectrum, all-source signal intelligence fusion platform for security research and training. Signal OPS pulls dozens of open collection sources — WiFi/Bluetooth/cell-tower databases, internet-exposure scanners, camera indexes, ADS-B flight feeds, satellite TLE tracking, and SDR/APRS networks — into a single tactical map and Flask API, correlating the RF, cellular, airspace, orbital, and surveillance domains into one real-time operational picture, with optional AI-assisted threat summaries layered on top.


Features

  • Unified RF/OSINT scan — one call fans out to WiFi, Bluetooth, cell-tower, IoT, camera, and aircraft sources in parallel, deduplicates, and scores results.
  • Camera discovery — Shodan, FOFA, BinaryEdge, Windy Webcams, OpenStreetMap surveillance nodes, and Insecam, by coordinates or by country.
  • Cellular intelligence — cell-tower lookups (WiGLE, OpenCellID) with offline MCC/MNC → operator/country resolution and IMSI-catcher / Stingray heuristics.
  • Wireless threat detection — rogue / evil-twin access point detection and Bluetooth tracker (AirTag, Tile, SmartTag…) identification.
  • Airspace monitoring — live ADS-B via adsb.fi and OpenSky, emergency-squawk decoding, drone heuristics, and a GPS-jamming heatmap derived from aircraft NAC-P.
  • Orbital tracking — CelesTrak TLE ingestion with SGP4 propagation, mission classification, and SatNOGS ground-station overlay.
  • SDR & APRS — public KiwiSDR receiver map and APRS.fi station lookups.
  • IP threat intelligence — multi-source aggregation (ipinfo, AbuseIPDB, CriminalIP, LeakIX, ZoomEye) with a lightweight port scan and combined risk scoring.
  • Watchlist & alerts — track specific BSSIDs, SSIDs, IPs, MACs, or ICAO hexes and get hits during scans.
  • AI analysis (optional) — Google Gemini summarizes scan results into assessments and risk levels when a key is provided.

Almost every source is optional. If a key isn't set, that fetcher is skipped gracefully — the free sources (OpenStreetMap, Insecam, ipinfo.io, ADS-B, CelesTrak, KiwiSDR) work with no keys at all.


Screenshots

SIGINT Map — unified multi-source view

The main map fuses WiFi, Bluetooth, cell, camera, and aircraft layers over the same area, with toggleable overlays for OSM cameras, ALPR/Flock networks, and police precincts.

SIGINT Map — satellite view

SIGINT Map — street view with camera / AP / cell markers

Surveillance & CCTV

Surveillance feedCCTV discovery
SurveillanceCCTV

The surveillance list scores each device (e.g. "Suspicion 35/100: Unauthenticated camera") and merges routers, TVs, and exposed cameras from WiGLE, Insecam, and OSM. The CCTV view groups discovered cameras by source with per-camera risk and live/metadata status.

Cell Tower Intelligence & SDR / APRS

Cell tower heatmapSDR / APRS network
Cell towersSDR / APRS

Cell-tower intelligence plots tower density with MCC/MNC operator lookup; the SDR view maps public KiwiSDR receivers and APRS stations with callsign lookup.

Requirements

  • Python 3.9+
  • The Python packages listed below

Core dependencies:

root@kitploit:~
flask
requests
python-dotenv

Recommended (enables full functionality — caching, rate limiting, satellite propagation):

root@kitploit:~
cachetools        # bounded geo-cache (falls back to an unbounded dict if missing)
flask-limiter     # request rate limiting
sgp4              # satellite position propagation for /api/satellites
google-genai      # Gemini AI analysis (only if you use GEMINI_API_KEY)

Install everything:

root@kitploit:~
pip install flask requests python-dotenv cachetools flask-limiter sgp4 google-genai

Setup

1. Clone and enter the project

root@kitploit:~
git https://github.com/emrekybs/signalops.git
unzip signalops-v1.zip

2. (Optional) create a virtual environment

root@kitploit:~
python -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate

3. Install dependencies

root@kitploit:~
pip install -r requirements.txt

If you don't have a requirements.txt, use the pip install line from the Requirements section above.

4. Configure your environment

Copy the example file and fill in the keys you have:

root@kitploit:~
cp .env.example .env

Then open .env and paste in your API keys. Every key is optional — leave any line blank (or delete it) to disable that source. See the next section for what each one does and where to get it.

5. (Optional) add local datasets

For instant, offline camera and precinct lookups, place these under a data/ directory (or point DATA_DIR elsewhere):

root@kitploit:~
data/CAMERAS_WITH_NETWORK_DATA.geojson   # Point features (cameras)
data/police_precincts_usa.geojson        # Polygon features (US precincts)
data/camera_networks.json                # network-sharing metadata
data/tiles/{z}/{x}/{y}.json              # optional tiled camera dataset

If these files are absent, the app automatically falls back to live OpenStreetMap Overpass queries.

6. Run

root@kitploit:~
python app_v2.py

The server starts on http://0.0.0.0:8080. Open http://localhost:8080 in your browser.

Check which providers loaded successfully at any time:

root@kitploit:~
GET /api/status     # active vs. missing keys
GET /api/debug      # per-key boolean + live WiGLE auth test

Environment variables

Create a .env file in the project root. Below is the full list read by the app.

Data-source API keys (all optional)

App configuration

No-key sources (always on)

These need no configuration: OpenStreetMap Overpass, Insecam, EarthCam, ipinfo.io, ADS-B (adsb.fi / OpenSky), CelesTrak TLE, SatNOGS, and KiwiSDR.


.env.example

Save this as .env.example in your repo so others know the format:

root@kitploit:~
# ── Signal OPS environment ──
# Every key is optional. Leave blank to disable that source.

# WiFi / Bluetooth / Cell
WIGLE_API_NAME=
WIGLE_API_TOKEN=
OPENCELLID_API_KEY=

# Internet-exposure scanners
SHODAN_API_KEY=
CENSYS_API_ID=
CENSYS_API_SECRET=
ZOOMEYE_API_KEY=
FOFA_EMAIL=
FOFA_API_KEY=
HUNTERHOW_API_KEY=
NETLAS_API_KEY=
LEAKIX_API_KEY=
CRIMINALIP_API_KEY=
BINARYEDGE_API_KEY=

# Cameras & IP reputation
WINDY_API_KEY=
ABUSEIPDB_API_KEY=

# Aircraft & ham radio
ADSB_API_KEY=
APRS_FI_KEY=

# AI analysis
GEMINI_API_KEY=
GEMINI_MODEL=gemini-2.0-flash

# App config
DATA_DIR=./data
FLASK_SECRET_KEY=

API overview

A selection of the endpoints exposed (see the source for the full set):


Notes & limitations

  • Some providers (e.g. ZoomEye, CriminalIP) may be affected by TLS interference on certain ISPs and are disabled in a couple of scan lists by default — see the inline comments in the source to re-enable them behind a VPN/proxy.
  • Rate limits vary widely between providers; free tiers can be small (WiGLE cell is ~100 queries/day, for example). The app skips or backs off where it can, but you are responsible for staying within each provider's limits.
  • Local datasets are optional but dramatically speed up camera/precinct lookups versus live Overpass queries.

Download Tool
VariableProviderGet a key at
WIGLE_API_NAMEWiGLE (WiFi/BT/cell) — usernamehttps://wigle.net/account
WIGLE_API_TOKENWiGLE — API tokenhttps://wigle.net/account
OPENCELLID_API_KEYOpenCellID (cell towers)https://opencellid.org
SHODAN_API_KEYShodan (exposure / cameras)https://account.shodan.io
CENSYS_API_IDCensys — API IDhttps://search.censys.io/account/api
CENSYS_API_SECRETCensys — API secrethttps://search.censys.io/account/api
ZOOMEYE_API_KEYZoomEyehttps://www.zoomeye.org/profile
FOFA_EMAILFOFA — account emailhttps://fofa.info
FOFA_API_KEYFOFA — API keyhttps://fofa.info
HUNTERHOW_API_KEYHunter.howhttps://hunter.how
NETLAS_API_KEYNetlashttps://netlas.io
LEAKIX_API_KEYLeakIXhttps://leakix.net
CRIMINALIP_API_KEYCriminalIPhttps://www.criminalip.io
BINARYEDGE_API_KEYBinaryEdgehttps://www.binaryedge.io
WINDY_API_KEYWindy Webcamshttps://api.windy.com/keys
ABUSEIPDB_API_KEYAbuseIPDB (IP reputation)https://www.abuseipdb.com/account/api
ADSB_API_KEYadsb.fi (optional; works without)https://adsb.fi
APRS_FI_KEYAPRS.fi (ham radio stations)https://aprs.fi/page/api_key
GEMINI_API_KEYGoogle Gemini (AI analysis)https://aistudio.google.com/apikey
Variable
Default
Description
GEMINI_MODELgemini-2.0-flashGemini model used for analysis
DATA_DIR./dataDirectory for local GeoJSON/JSON datasets
FLASK_SECRET_KEYrandom per runFlask session secret; set a fixed value in production
EndpointPurpose
GET /nearby?lat=&lon=&mode=Unified RF/OSINT scan around a point
GET /api/cctv?lat=&lon= or ?country=Camera discovery by location or country
GET /api/search?type=&query=Search by SSID, IP, location, or country
POST /api/analyzeAI summary of a device list
GET /api/ip-intel?ip=Multi-source IP threat intelligence
GET /api/adsb?lat=&lon=&radius=Live aircraft + emergency detection
GET /api/satellites?categories=Satellite positions (TLE + SGP4)
GET /api/gps-jamming?lat=&lon=GPS-jamming heatmap from ADS-B
GET /api/sdr/kiwisdrPublic KiwiSDR receiver list
GET /api/aprs/stations?lat=&lon=Nearby APRS stations
GET/POST /api/watchlistManage tracked identifiers
POST /api/watchlist/checkCheck a device list against the watchlist
GET /api/status · GET /api/debugProvider health / key diagnostics