
iNTERCEPT, uma plataforma gratuita e de código aberto que reúne as melhores ferramentas de inteligência de sinais em uma única interface acessível.
<p align="center"> <img src="https://raw.githubusercontent.com/smittix/intercept/HEAD/static/images/readme-banner.svg" alt="iNTERCEPT — Plataforma de Inteligência de Sinais" 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="Licença Apache 2.0"> <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg" alt="Plataforma"> </p> <p align="center"> Apoie o desenvolvedor deste projeto de código aberto </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 Inteligência de Sinais</strong><br> Uma interface baseada na web para ferramentas de rádio definido por software. </p> <p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12080/ccf5fc125324afe151202823a136a895449841e2cdd28325dcf6290230cda0d1.png" alt="Captura de tela"> </p> --- ## Recursos - **Decodificação de Pager** - POCSAG/FLEX via rtl_fm + multimon-ng - **Sensores de 433MHz** - Estações meteorológicas, TPMS, dispositivos IoT via rtl_433 - **Analisador Sub-GHz** - Captura de RF e decodificação de protocolos para bandas ISM de 300-928 MHz via HackRF - **Rastreamento de Aeronaves** - ADS-B via dump1090 com mapa em tempo real e radar - **Rastreamento de Embarcações** - Rastreamento de navios AIS com monitoramento de socorro VHF DSC - **Mensagens ACARS** - Mensagens de datalink de aeronaves via acarsdec - **VDL2** - Decodificação de datalink de aeronaves VHF Data Link Mode 2 via dumpvdl2 - **Posto de Escuta** - Scanner de frequência de banda larga com monitoramento de áudio em tempo real - **Satélites Meteorológicos** - Decodificação de imagens NOAA APT e Meteor LRPT via SatDump com agendador automático - **WebSDR** - Escuta remota de HF/ondas curtas via rede KiwiSDR - **ISS SSTV** - Recepção de imagens de TV de varredura lenta da Estação Espacial Internacional - **HF SSTV** - SSTV terrestre em frequências de ondas curtas (80m-10m, VHF, UHF) - **APRS** - Relatórios de posição e telemetria de rádio pacote amador via direwolf - **Rastreamento de Satélites** - Previsão de passagens com gráfico polar e mapa de trajetória no solo - **Medidores de Utilidades** - Leitura de medidores de eletricidade, gás e água via rtlamr - **Histórico ADS-B** - Histórico persistente de aeronaves com painel de relatórios (Postgres opcional) - **Varredura WiFi** - Reconhecimento em modo monitor via aircrack-ng - **Varredura Bluetooth** - Descoberta de dispositivos e detecção de rastreadores (com suporte a Ubertooth) - **BT Locate** - Localização de dispositivos Bluetooth SAR com mapeamento de trilha de sinal marcada por GPS e alertas de proximidade - **WiFi Locate** - Localize pontos de acesso WiFi por BSSID com medidor de sinal em tempo real, estimativa de distância e áudio de proximidade - **GPS** - Rastreamento de posição GPS em tempo real com mapa ao vivo, velocidade, altitude e informações de satélites - **TSCM** - Contravigilância com comparação de linha de base de RF e detecção de ameaças - **Meshtastic** - Integração com rede mesh LoRa - **Clima Espacial** - Dados solares e geomagnéticos em tempo real do NOAA SWPC, NASA SDO e HamQSL (não requer SDR) - **Estações de Espionagem** - Banco de dados de estações de números e redes diplomáticas de HF - **Agentes Remotos** - SIGINT distribuído com nós sensores remotos - **Modo Offline** - Recursos incluídos para implantações isoladas/em campo - **Inteligência de Drones** - Detecção de UAV multi-vetor via ASTM F3411 Remote ID (WiFi/BLE), RF de 433/868 MHz com RTL-SDR e varredura de 2.4/5.8 GHz com HackRF, com mapa de contatos ao vivo e pontuação de risco --- ## Instalação / Debian / Ubuntu / macOS ### Início 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 ``` Na primeira execução, o `setup.sh` inicia um **assistente guiado** que detecta o seu sistema operacional, permite escolher perfis de instalação, configura o ambiente Python e, opcionalmente, define variáveis de ambiente e o PostgreSQL. Nas execuções subsequentes, ele abre um **menu interativo**: ``` 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 produção vs. desenvolvimento:** `start.sh` detecta automaticamente gunicorn + gevent e executa um servidor de produção com greenlets cooperativos — lida com múltiplos clientes SSE/WebSocket sem bloqueio. Recorre ao servidor de desenvolvimento Flask se o gunicorn não estiver instalado. Para desenvolvimento local rápido, você ainda pode usar `sudo -E venv/bin/python intercept.py` diretamente. ### Perfis de Instalação Escolha o que instalar durante o assistente ou pela opção 1 do menu: | # | Perfil | Ferramentas | |---|---------|-------| | 1 | SIGINT Essencial | rtl_sdr, multimon-ng, rtl_433, dump1090, acarsdec, dumpvdl2, ffmpeg, gpsd | | 2 | Marítimo & Rádio | AIS-catcher, direwolf | | 3 | Clima & Espaço | SatDump, radiosonde_auto_rx | | 4 | Segurança RF | aircrack-ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR | | 5 | SIGINT Completo | Todos os acima | | 6 | Personalizado | Lista de verificação por ferramenta | Vários perfis podem ser combinados (por exemplo, insira `1 3` para Essencial + Clima). ### Flags 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:** O Docker requer modo privilegiado para acesso a SDR USB. Os dispositivos SDR são passados através de `/dev/bus/usb`. > **Seus dados:** configurações, usuários, regras de alerta, watchlists e mensagens decodificadas ficam em `./instance` no host, para que sobrevivam ao `--build`. Atualizando a partir de um arquivo compose sem essa montagem? Copie os dados antigos antes de reconstruir: `docker cp intercept:/app/instance ./instance`. Para builds multi-arquitetura (amd64 + arm64 para Raspberry Pi), consulte `build-multiarch.sh` — ele lida com compilação cruzada e push para o registry em uma única etapa. ### Configuração de Ambiente Use o **Environment Configurator** (opção 5 do menu) para definir interativamente qualquer variável `INTERCEPT_*`. As configurações são salvas em um arquivo `.env` que o `start.sh` carrega automaticamente na inicialização. Você também pode criar ou editar o `.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 ``` ### Histórico ADS-B (Opcional) O recurso de histórico ADS-B persiste mensagens de aeronaves no PostgreSQL para análise de longo prazo. **Configuração automatizada (instalação local):** ```bash ./setup.sh --postgres-setup # Or use menu option 3: Database Setup ``` Isso instalará o PostgreSQL se necessário, criará o banco de dados/usuário/tabelas e gravará as configurações de conexão em `.env`. **Docker:** ```bash docker compose --profile history up -d ``` Defina as seguintes variáveis de ambiente (em `.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 armazenar dados do Postgres em armazenamento externo, defina `PGDATA_PATH` (o padrão é `./pgdata`): ```bash PGDATA_PATH=/mnt/usbpi1/intercept/pgdata ``` Em seguida, abra **/adsb/history** para o painel de relatórios. ### Verificação de Integridade do Sistema Verifique se a sua instalação está completa e a funcionar: ```bash ./setup.sh --health-check # Or use menu option 2 ``` Verifica as ferramentas instaladas, dispositivos SDR, disponibilidade de portas, permissões, venv do Python, configuração do `.env` e conectividade com o PostgreSQL. ### Abrir a Interface Após iniciar, abra **http://localhost:5050** no seu navegador. **Não há senha padrão.** Na primeira inicialização, o INTERCEPT gera uma para a conta `admin`, registra-a no log e a grava em `instance/.initial_password`. Faça login com ela, e será solicitado que você defina a sua própria antes que a interface seja desbloqueada. Para escolher a sua própria antecipadamente, defina `INTERCEPT_ADMIN_PASSWORD` antes da primeira inicialização. Consulte [Segurança](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md#authentication) para obter detalhes e entender por que isso substituiu o padrão anterior `admin`/`admin`. --- ## Requisitos de Hardware | Hardware | Finalidade | Preço | |----------|---------|-------| | **RTL-SDR** | Necessário para todos os recursos de SDR | ~$25-35 | | **Adaptador WiFi** | Deve suportar modo promíscuo (monitor) | ~$20-40 | | **Adaptador Bluetooth** | Escaneamento de dispositivos (geralmente integrado) | - | | **GPS** | Qualquer unidade GPS suportada pelo Linux | ~10 | A maioria dos recursos funciona com um dongle RTL-SDR básico (RTL2832U + R820T2). | :exclamation: Não está usando um dispositivo RTL-SDR? | |----------------------------------------------- |O Intercept suporta qualquer dispositivo compatível com o SoapySDR. No entanto, você precisa ter o módulo correto para o seu dispositivo instalado! Por exemplo, se você tiver um dispositivo SDRPlay, precisará instalar o soapysdr-module-sdrplay. | :exclamation: Uso de GPS | |----------------------------------------------- |O gpsd é necessário para localização em tempo real. O Intercept verifica automaticamente se você está executando o gpsd em segundo plano sempre que um mapa é renderizado. --- ## Servidor Discord <p align="center"> <a href="https://discord.gg/EyeksEJmWE">Entre no nosso Discord</a> </p> --- ## Documentação - [Guia de Uso](https://github.com/smittix/intercept/blob/main/docs/USAGE.md) - Instruções detalhadas para cada modo - [Guia de Hardware](https://github.com/smittix/intercept/blob/main/docs/HARDWARE.md) - Hardware SDR, instalação manual e configuração avançada - [Solução de Problemas](https://github.com/smittix/intercept/blob/main/docs/TROUBLESHOOTING.md) - Problemas comuns e soluções - [Agentes Distribuídos](https://github.com/smittix/intercept/blob/main/docs/DISTRIBUTED_AGENTS.md) - Implantação de nós sensores remotos - [Webhooks](https://github.com/smittix/intercept/blob/main/docs/WEBHOOKS.md) - Regras de alerta e integração com webhooks - [Segurança](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md) - Segurança de rede e boas práticas --- ## Aviso Legal Este projeto foi desenvolvido usando IA como parceira de programação, combinando direção humana com implementação assistida por IA. O objetivo: tornar o Software Defined Radio mais acessível, oferecendo uma interface limpa e unificada para ferramentas SDR comuns. **Este software destina-se apenas a fins educacionais e de testes autorizados.** - Use apenas com a devida autorização - Interceptar comunicações sem consentimento pode ser ilegal - Você é responsável pelo cumprimento das leis aplicáveis --- ## Licença Licença Apache 2.0 - consulte [LICENSE](https://github.com/smittix/intercept/blob/main/LICENSE) ## Autor Criado por **smittix** - [GitHub](https://github.com/smittix) ## Agradecimentos [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/)