
iNTERCEPT, une plateforme gratuite et open source qui réunit les meilleurs outils de renseignement d'origine électromagnétique dans une interface unique et accessible.
<p align="center"> <img src="https://raw.githubusercontent.com/smittix/intercept/HEAD/static/images/readme-banner.svg" alt="iNTERCEPT — Plateforme de renseignement par signaux" 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="Licence Apache 2.0"> <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg" alt="Plateforme"> </p> <p align="center"> Soutenez le développeur de ce projet open-source </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>Plateforme de renseignement par signaux</strong><br> Une interface web pour les outils de radio logicielle. </p> <p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12080/ccf5fc125324afe151202823a136a895449841e2cdd28325dcf6290230cda0d1.png" alt="Capture d'écran"> </p> --- ## Fonctionnalités - **Décodage de pagers** - POCSAG/FLEX via rtl_fm + multimon-ng - **Capteurs 433 MHz** - Stations météo, TPMS, appareils IoT via rtl_433 - **Analyseur sub-GHz** - Capture RF et décodage de protocoles pour les bandes ISM 300-928 MHz via HackRF - **Suivi d'aéronefs** - ADS-B via dump1090 avec carte et radar en temps réel - **Suivi de navires** - Suivi de navires AIS avec surveillance des détresses VHF DSC - **Messagerie ACARS** - Messages de liaison de données d'aéronefs via acarsdec - **VDL2** - Décodage de liaison de données d'aéronefs VHF Data Link Mode 2 via dumpvdl2 - **Poste d'écoute** - Scanner de fréquences large bande avec écoute audio en temps réel - **Satellites météo** - Décodage d'images NOAA APT et Meteor LRPT via SatDump avec planificateur automatique - **WebSDR** - Écoute HF/ondes courtes à distance via le réseau KiwiSDR - **SSTV ISS** - Réception d'images en télévision à balayage lent depuis la Station spatiale internationale - **SSTV HF** - SSTV terrestre sur fréquences ondes courtes (80m-10m, VHF, UHF) - **APRS** - Rapports de position et télémétrie de radioamateur par paquets via direwolf - **Suivi de satellites** - Prédiction de passages avec diagramme polaire et carte de trace au sol - **Compteurs utilitaires** - Relevé de compteurs électriques, gaz et eau via rtlamr - **Historique ADS-B** - Historique persistant des aéronefs avec tableau de bord de rapports (Postgres en option) - **Analyse WiFi** - Reconnaissance en mode moniteur via aircrack-ng - **Analyse Bluetooth** - Découverte d'appareils et détection de traceurs (avec prise en charge d'Ubertooth) - **Localisation BT** - Localisation d'appareils Bluetooth SAR avec cartographie de piste de signal géolocalisée par GPS et alertes de proximité - **Localisation WiFi** - Localisation de points d'accès WiFi par BSSID avec mesure de signal en temps réel, estimation de distance et audio de proximité - **GPS** - Suivi de position GPS en temps réel avec carte en direct, vitesse, altitude et informations satellites - **TSCM** - Contre-surveillance avec comparaison de référence RF et détection de menaces - **Meshtastic** - Intégration du réseau maillé LoRa - **Météo spatiale** - Données solaires et géomagnétiques en temps réel de NOAA SWPC, NASA SDO et HamQSL (aucun SDR requis) - **Stations espionnes** - Base de données des stations de chiffres et des réseaux diplomatiques HF - **Agents distants** - SIGINT distribué avec nœuds capteurs distants - **Mode hors ligne** - Ressources intégrées pour les déploiements isolés/terrain - **Renseignement sur les drones** - Détection multi-vecteurs d'UAV via ASTM F3411 Remote ID (WiFi/BLE), RF RTL-SDR 433/868 MHz et balayage HackRF 2,4/5,8 GHz avec carte des contacts en direct et notation des risques --- ## Installation / Debian / Ubuntu / macOS ### Démarrage rapide ```bash git clone https://github.com/smittix/intercept.git cd intercept ./setup.sh # Interactive menu (first run launches setup wizard) sudo ./start.sh ``` Lors de la première exécution, `setup.sh` lance un **assistant guidé** qui détecte votre système d'exploitation, vous permet de choisir des profils d'installation, configure l'environnement Python et, en option, configure les variables d'environnement et PostgreSQL. On subsequent runs, it opens an **interactive menu**: ``` 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 ``` > **Serveur de production vs serveur de développement :** `start.sh` détecte automatiquement gunicorn + gevent et exécute un serveur de production avec des greenlets coopératifs — gère plusieurs clients SSE/WebSocket sans blocage. Revient au serveur de développement Flask si gunicorn n'est pas installé. Pour un développement local rapide, vous pouvez toujours utiliser directement `sudo -E venv/bin/python intercept.py`. ### Profils d'installation Choisissez ce qu'il faut installer pendant l'assistant ou via l'option de menu 1 : | # | Profil | Outils | |---|---------|-------| | 1 | Core SIGINT | rtl_sdr, multimon-ng, rtl_433, dump1090, acarsdec, dumpvdl2, ffmpeg, gpsd | | 2 | Maritime & Radio | AIS-catcher, direwolf | | 3 | Weather & Space | SatDump, radiosonde_auto_rx | | 4 | RF Security | aircrack-ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR | | 5 | Full SIGINT | Tous les éléments ci-dessus | | 6 | Custom | Liste de vérification par outil | Plusieurs profils peuvent être combinés (par ex. saisissez `1 3` pour Core + Weather). ### Options 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 ``` > **Remarque :** Docker nécessite le mode privilégié pour l'accès aux SDR USB. Les périphériques SDR sont transmis via `/dev/bus/usb`. > **Vos données :** les paramètres, les utilisateurs, les règles d'alerte, les listes de surveillance et les messages décodés résident dans `./instance` sur l'hôte, afin qu'ils survivent à `--build`. Vous mettez à niveau depuis un fichier compose sans ce montage ? Copiez les anciennes données avant de reconstruire : `docker cp intercept:/app/instance ./instance`. Pour les builds multi-architectures (amd64 + arm64 pour Raspberry Pi), voir `build-multiarch.sh` — il gère la compilation croisée et le push vers le registre en une seule étape. ### Configuration de l'environnement Utilisez le **Configurateur d'environnement** (option de menu 5) pour définir de manière interactive n'importe quelle variable `INTERCEPT_*`. Les paramètres sont enregistrés dans un fichier `.env` que `start.sh` source automatiquement au démarrage. Vous pouvez également créer ou modifier `.env` manuellement : ```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 ``` ### Historique ADS-B (facultatif) La fonctionnalité d'historique ADS-B conserve les messages des aéronefs dans PostgreSQL pour une analyse à long terme. **Configuration automatisée (installation locale) :** ```bash ./setup.sh --postgres-setup # Or use menu option 3: Database Setup ``` Cela installera PostgreSQL si nécessaire, créera la base de données, l'utilisateur et les tables, puis écrira les paramètres de connexion dans `.env`. **Docker :** ```bash docker compose --profile history up -d ``` Définissez les variables d'environnement suivantes (dans `.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 ``` Pour stocker les données Postgres sur un stockage externe, définissez `PGDATA_PATH` (par défaut `./pgdata`) : ```bash PGDATA_PATH=/mnt/usbpi1/intercept/pgdata ``` Ouvrez ensuite **/adsb/history** pour accéder au tableau de bord de reporting. ### Vérification de l'état du système Vérifiez que votre installation est complète et fonctionnelle : ```bash ./setup.sh --health-check # Or use menu option 2 ``` Vérifie les outils installés, les périphériques SDR, la disponibilité des ports, les permissions, le venv Python, la configuration `.env` et la connectivité PostgreSQL. ### Ouvrir l'interface Après le démarrage, ouvrez **http://localhost:5050** dans votre navigateur. **Il n'y a pas de mot de passe par défaut.** Au premier démarrage, INTERCEPT en génère un pour le compte `admin`, le journalise et l'écrit dans `instance/.initial_password`. Connectez-vous avec celui-ci, et il vous sera demandé de définir le vôtre avant que l'interface ne se déverrouille. Pour choisir le vôtre dès le départ, définissez `INTERCEPT_ADMIN_PASSWORD` avant le premier démarrage. Consultez [Sécurité](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md#authentication) pour plus de détails et pour savoir pourquoi cela a remplacé l'ancien mot de passe par défaut `admin`/`admin`. --- ## Configuration matérielle requise | Matériel | Objectif | Prix | |----------|---------|-------| | **RTL-SDR** | Requis pour toutes les fonctionnalités SDR | ~25-35 $ | | **Adaptateur WiFi** | Doit prendre en charge le mode promiscuité (moniteur) | ~20-40 $ | | **Adaptateur Bluetooth** | Analyse des appareils (généralement intégré) | - | | **GPS** | Tout module GPS pris en charge sous Linux | ~10 | La plupart des fonctionnalités fonctionnent avec un dongle RTL-SDR basique (RTL2832U + R820T2). | :exclamation: Vous n'utilisez pas de périphérique RTL-SDR ? | |----------------------------------------------- |Intercept prend en charge tout périphérique compatible avec SoapySDR. Vous devez toutefois avoir installé le bon module pour votre périphérique ! Par exemple, si vous avez un périphérique SDRPlay, vous devrez installer soapysdr-module-sdrplay. | :exclamation: Utilisation du GPS | |----------------------------------------------- |gpsd est nécessaire pour la localisation en temps réel. Intercept vérifie automatiquement si gpsd s'exécute en arrière-plan lorsqu'une carte est affichée. --- ## Serveur Discord <p align="center"> <a href="https://discord.gg/EyeksEJmWE">Rejoignez notre Discord</a> </p> --- ## Documentation - [Guide d'utilisation](https://github.com/smittix/intercept/blob/main/docs/USAGE.md) - Instructions détaillées pour chaque mode - [Guide matériel](https://github.com/smittix/intercept/blob/main/docs/HARDWARE.md) - Matériel SDR, installation manuelle et configuration avancée - [Dépannage](https://github.com/smittix/intercept/blob/main/docs/TROUBLESHOOTING.md) - Problèmes courants et solutions - [Agents distribués](https://github.com/smittix/intercept/blob/main/docs/DISTRIBUTED_AGENTS.md) - Déploiement de nœuds capteurs distants - [Webhooks](https://github.com/smittix/intercept/blob/main/docs/WEBHOOKS.md) - Règles d'alerte et intégration des webhooks - [Sécurité](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md) - Sécurité réseau et bonnes pratiques --- ## Avertissement Ce projet a été développé en utilisant l'IA comme partenaire de programmation, combinant la direction humaine avec une implémentation assistée par IA. L'objectif : rendre la radio logicielle (Software Defined Radio) plus accessible en fournissant une interface propre et unifiée pour les outils SDR courants. **Ce logiciel est destiné uniquement à des fins éducatives et de tests autorisés.** - À utiliser uniquement avec une autorisation appropriée - L'interception de communications sans consentement peut être illégale - Vous êtes responsable du respect des lois applicables --- ## Licence Licence Apache 2.0 - voir [LICENSE](https://github.com/smittix/intercept/blob/main/LICENSE) ## Auteur Créé par **smittix** - [GitHub](https://github.com/smittix) ## Remerciements [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/)