
iNTERCEPT, una plataforma gratuita y de código abierto que une las mejores herramientas de inteligencia de señales en una única interfaz accesible.
<p align="center"> <img src="https://raw.githubusercontent.com/smittix/intercept/HEAD/static/images/readme-banner.svg" alt="iNTERCEPT — Plataforma de Inteligencia de Señales" width="100%"> </p> <p align="center"> <img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python 3.9+"> <img src="https://img.shields.io/badge/license-Apache--2.0-green.svg" alt="Apache 2.0 License"> <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg" alt="Platform"> </p> <p align="center"> Apoya al desarrollador de este proyecto de código abierto </p> <p align="center"> <a href="https://www.buymeacoffee.com/smittix" target="_blank"><img src="https://assets.kitploit.com/production/public/readmes/12080/608ca47c77206e90cac89def2d3fa14b17084ebc4a0a8dce231e4f0b3a78be1a.webp" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a> </p> <p align="center"> <strong>Plataforma de Inteligencia de Señales</strong><br> Una interfaz basada en web para herramientas de radio definida por software. </p> <p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12080/ccf5fc125324afe151202823a136a895449841e2cdd28325dcf6290230cda0d1.png" alt="Screenshot"> </p> --- ## Características - **Decodificación de buscapersonas** - POCSAG/FLEX mediante rtl_fm + multimon-ng - **Sensores de 433MHz** - Estaciones meteorológicas, TPMS, dispositivos IoT mediante rtl_433 - **Analizador Sub-GHz** - Captura de RF y decodificación de protocolos para bandas ISM de 300-928 MHz mediante HackRF - **Seguimiento de aeronaves** - ADS-B mediante dump1090 con mapa en tiempo real y radar - **Seguimiento de embarcaciones** - Seguimiento de buques AIS con monitoreo de socorro DSC en VHF - **Mensajería ACARS** - Mensajes de enlace de datos de aeronaves mediante acarsdec - **VDL2** - Decodificación de enlace de datos de aeronaves VHF Data Link Mode 2 mediante dumpvdl2 - **Puesto de escucha** - Escáner de frecuencias de banda ancha con monitoreo de audio en tiempo real - **Satélites meteorológicos** - Decodificación de imágenes NOAA APT y Meteor LRPT mediante SatDump con programador automático - **WebSDR** - Escucha remota de HF/onda corta mediante la red KiwiSDR - **ISS SSTV** - Recepción de imágenes de televisión de barrido lento desde la Estación Espacial Internacional - **HF SSTV** - SSTV terrestre en frecuencias de onda corta (80m-10m, VHF, UHF) - **APRS** - Informes de posición y telemetría de radioaficionados por paquetes mediante direwolf - **Seguimiento de satélites** - Predicción de pasos con gráfico polar y mapa de trayectoria terrestre - **Contadores de servicios** - Lectura de contadores eléctricos, de gas y de agua mediante rtlamr - **Historial ADS-B** - Historial persistente de aeronaves con panel de informes (Postgres opcional) - **Escaneo WiFi** - Reconocimiento en modo monitor mediante aircrack-ng - **Escaneo Bluetooth** - Descubrimiento de dispositivos y detección de rastreadores (con soporte para Ubertooth) - **BT Locate** - Localización de dispositivos Bluetooth SAR con mapeo de rastro de señal etiquetado por GPS y alertas de proximidad - **WiFi Locate** - Localización de puntos de acceso WiFi por BSSID con medidor de señal en tiempo real, estimación de distancia y audio de proximidad - **GPS** - Seguimiento de posición GPS en tiempo real con mapa en vivo, velocidad, altitud e información de satélites - **TSCM** - Contravigilancia con comparación de línea base de RF y detección de amenazas - **Meshtastic** - Integración de red de malla LoRa - **Clima espacial** - Datos solares y geomagnéticos en tiempo real de NOAA SWPC, NASA SDO y HamQSL (no requiere SDR) - **Estaciones espía** - Base de datos de estaciones de números y redes diplomáticas de HF - **Agentes remotos** - SIGINT distribuida con nodos sensores remotos - **Modo sin conexión** - Recursos incluidos para despliegues en campo/aislados de la red - **Inteligencia de drones** - Detección de UAV multivector mediante ASTM F3411 Remote ID (WiFi/BLE), RF de 433/868 MHz con RTL-SDR y escaneo de 2.4/5.8 GHz con HackRF, con mapa de contactos en vivo y puntuación de riesgo --- ## Instalación / Debian / Ubuntu / macOS ### Inicio rápido ```bash git clone https://github.com/smittix/intercept.git cd intercept ./setup.sh # Interactive menu (first run launches setup wizard) sudo ./start.sh ``` En la primera ejecución, `setup.sh` inicia un **asistente guiado** que detecta tu sistema operativo, te permite elegir perfiles de instalación, configura el entorno de Python y, opcionalmente, configura variables de entorno y PostgreSQL. En ejecuciones posteriores, abre un **menú interactivo**: ``` INTERCEPT Setup Menu ════════════════════════════════════════ 1) Install / Add Modules 2) System Health Check 3) Database Setup (ADS-B History) 4) Update Tools 5) Environment Configurator 6) Uninstall / Cleanup 7) View Status 0) Exit ``` > **Servidor de producción vs servidor de desarrollo:** `start.sh` detecta automáticamente gunicorn + gevent y ejecuta un servidor de producción con greenlets cooperativos — maneja múltiples clientes SSE/WebSocket sin bloquearse. Recurre al servidor de desarrollo de Flask si gunicorn no está instalado. Para desarrollo local rápido, aún puedes usar `sudo -E venv/bin/python intercept.py` directamente. ### Perfiles de instalación Elige qué instalar durante el asistente o mediante la opción 1 del menú: | # | Perfil | Herramientas | |---|---------|-------| | 1 | SIGINT básico | rtl_sdr, multimon-ng, rtl_433, dump1090, acarsdec, dumpvdl2, ffmpeg, gpsd | | 2 | Marítimo y radio | AIS-catcher, direwolf | | 3 | Clima y espacio | SatDump, radiosonde_auto_rx | | 4 | Seguridad RF | aircrack-ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR | | 5 | SIGINT completo | Todos los anteriores | | 6 | Personalizado | Lista de verificación por herramienta | Se pueden combinar varios perfiles (p. ej., introduce `1 3` para Básico + Clima). ### Opciones de CLI ```bash ./setup.sh --non-interactive # Headless full install (same as legacy behavior) ./setup.sh --profile=core,weather # Install specific profiles ./setup.sh --health-check # Check system health and exit ./setup.sh --postgres-setup # Run PostgreSQL setup and exit ./setup.sh --menu # Force interactive menu ``` ### Docker ```bash git clone https://github.com/smittix/intercept.git cd intercept docker compose --profile basic up -d --build ``` > **Nota:** Docker requiere el modo privilegiado para el acceso a SDR por USB. Los dispositivos SDR se pasan a través de `/dev/bus/usb`. > **Tus datos:** los ajustes, usuarios, reglas de alerta, listas de vigilancia y mensajes decodificados residen en `./instance` en el host, por lo que sobreviven a `--build`. ¿Actualizas desde un archivo compose sin ese montaje? Copia los datos antiguos antes de reconstruir: `docker cp intercept:/app/instance ./instance`. Para compilaciones multiarquitectura (amd64 + arm64 para Raspberry Pi), consulta `build-multiarch.sh` — gestiona la compilación cruzada y el envío al registro en un solo paso. ### Configuración del entorno Usa el **Configurador de entorno** (opción 5 del menú) para establecer interactivamente cualquier variable `INTERCEPT_*`. Los ajustes se guardan en un archivo `.env` que `start.sh` carga automáticamente al iniciarse. También puedes crear o editar `.env` manualmente: ```bash # .env (auto-loaded by start.sh) INTERCEPT_PORT=5050 INTERCEPT_ADSB_AUTO_START=true INTERCEPT_DEFAULT_LAT=51.5074 INTERCEPT_DEFAULT_LON=-0.1278 ``` ### Historial ADS-B (Opcional) La función de historial ADS-B persiste los mensajes de las aeronaves en PostgreSQL para su análisis a largo plazo. **Configuración automatizada (instalación local):** ```bash ./setup.sh --postgres-setup # Or use menu option 3: Database Setup ``` Esto instalará PostgreSQL si es necesario, creará la base de datos/usuario/tablas y escribirá la configuración de conexión en `.env`. **Docker:** ```bash docker compose --profile history up -d ``` Establezca las siguientes variables de entorno (en `.env`): ```bash INTERCEPT_ADSB_HISTORY_ENABLED=true INTERCEPT_ADSB_DB_HOST=adsb_db INTERCEPT_ADSB_DB_PORT=5432 INTERCEPT_ADSB_DB_NAME=intercept_adsb INTERCEPT_ADSB_DB_USER=intercept INTERCEPT_ADSB_DB_PASSWORD=intercept ``` Para almacenar datos de Postgres en almacenamiento externo, configure `PGDATA_PATH` (por defecto `./pgdata`): ```bash PGDATA_PATH=/mnt/usbpi1/intercept/pgdata ``` Luego abra **/adsb/history** para el panel de informes. ### Comprobación del estado del sistema Verifique que su instalación esté completa y funcionando: ```bash ./setup.sh --health-check # Or use menu option 2 ``` Comprueba las herramientas instaladas, los dispositivos SDR, la disponibilidad de puertos, los permisos, el venv de Python, la configuración de `.env` y la conectividad con PostgreSQL. ### Abrir la interfaz Después de iniciar, abre **http://localhost:5050** en tu navegador. **No hay contraseña predeterminada.** En el primer inicio, INTERCEPT genera una para la cuenta `admin`, la registra en el log y la escribe en `instance/.initial_password`. Inicia sesión con esa contraseña y se te pedirá que establezcas la tuya antes de que se desbloquee la interfaz. Para elegir la tuya de antemano, establece `INTERCEPT_ADMIN_PASSWORD` antes del primer inicio. Consulta [Seguridad](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md#authentication) para más detalles y para saber por qué esto reemplazó el valor predeterminado anterior `admin`/`admin`. --- ## Requisitos de hardware | Hardware | Propósito | Precio | |----------|---------|-------| | **RTL-SDR** | Necesario para todas las funciones SDR | ~$25-35 | | **Adaptador WiFi** | Debe admitir modo promiscuo (monitor) | ~$20-40 | | **Adaptador Bluetooth** | Escaneo de dispositivos (normalmente integrado) | - | | **GPS** | Cualquier unidad GPS compatible con Linux | ~10 | La mayoría de las funciones funcionan con un dongle RTL-SDR básico (RTL2832U + R820T2). | :exclamation: ¿No usas un dispositivo RTL-SDR? | |----------------------------------------------- |Intercept admite cualquier dispositivo compatible con SoapySDR. Sin embargo, ¡debes tener instalado el módulo correcto para tu dispositivo! Por ejemplo, si tienes un dispositivo SDRPlay, necesitarías instalar soapysdr-module-sdrplay. | :exclamation: Uso de GPS | |----------------------------------------------- |gpsd es necesario para la ubicación en tiempo real. Intercept comprueba automáticamente si gpsd se está ejecutando en segundo plano cuando se renderiza cualquier mapa. --- ## Servidor de Discord <p align="center"> <a href="https://discord.gg/EyeksEJmWE">Únete a nuestro Discord</a> </p> --- ## Documentación - [Guía de uso](https://github.com/smittix/intercept/blob/main/docs/USAGE.md) - Instrucciones detalladas para cada modo - [Guía de hardware](https://github.com/smittix/intercept/blob/main/docs/HARDWARE.md) - Hardware SDR, instalación manual y configuración avanzada - [Solución de problemas](https://github.com/smittix/intercept/blob/main/docs/TROUBLESHOOTING.md) - Problemas comunes y soluciones - [Agentes distribuidos](https://github.com/smittix/intercept/blob/main/docs/DISTRIBUTED_AGENTS.md) - Despliegue de nodos sensores remotos - [Webhooks](https://github.com/smittix/intercept/blob/main/docs/WEBHOOKS.md) - Reglas de alerta e integración de webhooks - [Seguridad](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md) - Seguridad de red y buenas prácticas --- ## Descargo de responsabilidad Este proyecto se desarrolló utilizando IA como socio de programación, combinando la dirección humana con la implementación asistida por IA. El objetivo: hacer que la Radio Definida por Software sea más accesible proporcionando una interfaz limpia y unificada para las herramientas SDR comunes. **Este software es solo para fines educativos y de pruebas autorizadas.** - Úsalo solo con la debida autorización - La interceptación de comunicaciones sin consentimiento puede ser ilegal - Eres responsable del cumplimiento de las leyes aplicables --- ## Licencia Licencia Apache 2.0 - consulta [LICENSE](https://github.com/smittix/intercept/blob/main/LICENSE) ## Autor Creado por **smittix** - [GitHub](https://github.com/smittix) ## Agradecimientos [rtl-sdr](https://osmocom.org/projects/rtl-sdr/wiki) | [multimon-ng](https://github.com/EliasOenal/multimon-ng) | [rtl_433](https://github.com/merbanan/rtl_433) | [dump1090](https://github.com/flightaware/dump1090) | [AIS-catcher](https://github.com/jvde-github/AIS-catcher) | [acarsdec](https://github.com/TLeconte/acarsdec) | [direwolf](https://github.com/wb2osz/direwolf) | [rtlamr](https://github.com/bemasher/rtlamr) | [dumpvdl2](https://github.com/szpajder/dumpvdl2) | [aircrack-ng](https://www.aircrack-ng.org/) | [Leaflet.js](https://leafletjs.com/) | [SatDump](https://github.com/SatDump/SatDump) | [Celestrak](https://celestrak.org/) | [Priyom.org](https://priyom.org/)