Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sunsetscan — Audit de sécurité du réseau local avec EOL, CVE, identité des appareils et rapports HTML | Kitploit
Outils/GitHubGitHub/nocoderrandom/sunsetscan
ReconnaissanceScanners de VulnérabilitésSécurité IoTAttaques de Mots de PasseAudit de ConfigurationCollecte d'InformationsSécurité Réseau
GitHubnocoderrandom/sunsetscan

sunsetscan

Audit de sécurité du réseau local avec EOL, CVE, identité des appareils et rapports HTML

Voir le dépôt
37il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Site web
Partager

SunsetScan

Audit de sécurité réseau pour les humains — propulsé par nmap, conçu pour tout le monde.

[Version] Python 3.9+ Platform License: MIT Hardware DB License: CC BY-NC 4.0 Requires: nmap CVE data: OSV.dev

Site web : sunsetscan.com


SunsetScan est un outil d'audit de sécurité réseau local pour les propriétaires de réseaux domestiques et le personnel informatique qui veulent la profondeur de nmap sans apprendre la syntaxe de nmap. Pointez-le sur votre réseau et il trouve chaque appareil actif, identifie les logiciels en cours d'exécution, vérifie les bases de données de vulnérabilités connues et les registres de fin de vie, sonde les interfaces web pour détecter les faiblesses courantes, effectue en option un audit des identifiants par défaut d'usine sans risque de verrouillage, et produit un rapport HTML propre avec des explications en langage clair et des étapes numérotées pour corriger chaque constatation. Il est entièrement en lecture seule et non destructif — rien sur votre réseau n'est jamais modifié.


Prise en charge des plateformes

Pourquoi Linux ? SunsetScan repose sur des sockets bruts (scan ARP, capture passive de paquets), des API spécifiques à Linux (/proc, ip route) et des vérifications de privilèges (os.geteuid()) qui ne sont pas disponibles sur Windows natif. WSL2 fournit un noyau Linux complet et est le moyen recommandé pour les utilisateurs Windows.


Installation

SunsetScan est fourni avec un installateur qui gère les outils système (nmap, masscan, git, python3-venv), crée un environnement virtuel Python local au projet et installe toutes les dépendances Python à l'intérieur. Vous ne serez jamais invité à pip install quoi que ce soit en tant que root — c'est important sur les systèmes Debian/Pi OS modernes, voir Pourquoi un venv ? ci-dessous.

Plateformes de niveau 1 (entièrement testées)

Debian, Ubuntu, Raspberry Pi OS (Bookworm et plus récent), Linux Mint, Pop!_OS.

Plateformes de niveau 2 (au mieux, même script)

Fedora, RHEL, CentOS, Rocky, Alma, Arch, Manjaro, openSUSE, macOS.

Quatre façons de l'installer — choisissez-en une

1. Paquet Debian/Ubuntu

Recommandé pour Debian, Ubuntu, Raspberry Pi OS, Linux Mint et Pop!_OS :```bash curl -LO https://github.com/NoCoderRandom/sunsetscan/releases/download/v2.1.0/sunsetscan_2.1.0-1_all.deb curl -LO https://github.com/NoCoderRandom/sunsetscan/releases/download/v2.1.0/sunsetscan_2.1.0-1_all.deb.sha256 sha256sum -c sunsetscan_2.1.0-1_all.deb.sha256 sudo apt install ./sunsetscan_2.1.0-1_all.deb sunsetscan --version

root@kitploit:~
#### 2. Amorçage en une ligne

Clone le dépôt dans `~/sunsetscan` et lance l'installateur:```bash
curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

Vous voulez l'installer ailleurs ? Définissez INSTALL_DIR :```bash INSTALL_DIR=/opt/sunsetscan curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

root@kitploit:~
> **Une note sur `curl | bash`**: c'est pratique, mais cela signifie exécuter un script que vous n'avez pas lu. Si vous préférez l'inspecter d'abord, utilisez l'option 3 ou 4.

#### 3. Cloner et installer```bash
git clone https://github.com/NoCoderRandom/sunsetscan.git
cd sunsetscan
./install.sh

4. Installation manuelle (contrôle total, quatre commandes)```bash

sudo apt install -y nmap masscan git python3 python3-venv python3-pip libpcap-dev build-essential avahi-utils git clone https://github.com/NoCoderRandom/sunsetscan.git && cd sunsetscan python3 -m venv venv && ./venv/bin/pip install -r requirements.txt ./sunsetscan --version

root@kitploit:~
(Remplacez le gestionnaire de paquets de votre distribution par `apt` — `dnf`, `pacman`, `zypper` ou `brew`. Le paquet avahi est `avahi-tools` sur Fedora/RHEL, `avahi` sur Arch, `avahi-utils` sur openSUSE, et n'est pas nécessaire sur macOS.)

### Après l'installation — première exécution```bash
./sunsetscan --setup                 # download EOL/CVE/credential databases (once)
sudo ./sunsetscan --instant          # ARP-only inventory of your local subnet
sudo ./sunsetscan --full-assessment --target 192.168.1.0/24

Le lanceur ./sunsetscan active automatiquement le venv — vous n'avez jamais besoin d'exécuter source venv/bin/activate. Utilisez sudo pour les scans qui nécessitent des sockets bruts, mais exécutez --setup, --download, et --update-cache en tant qu'utilisateur normal afin que les fichiers de cache restent accessibles en écriture depuis la TUI.

Options d'installation

Relancer ./install.sh est sûr et idempotent — il détecte les composants existants et les réutilise.

Pourquoi un venv ?

Les distributions modernes basées sur Debian (Debian Bookworm, Raspberry Pi OS Bookworm, Ubuntu 23.04+) sont livrées avec l'application de la PEP 668. Cela entraîne l'échec de pip install lorsqu'il est exécuté en tant que root avec le Python du système :``` error: externally-managed-environment × This environment is externally managed

root@kitploit:~
Deux des dépendances de SunsetScan (`pysnmp` v6 en particulier) nécessitent des versions plus récentes que celles fournies par les dépôts apt, donc une installation pure-apt n'est pas possible. La solution de l'installateur est la solution standard : installer les outils système (nmap, masscan, libpcap, avahi-utils) via apt, et placer les dépendances Python de SunsetScan dans un répertoire `./venv` local au projet. Rien au niveau système n'est modifié, donc PEP 668 ne s'applique pas, et désinstaller SunsetScan revient simplement à `rm -rf ~/sunsetscan`.

### Optionnel : garder SunsetScan en arrière-plan

Une évaluation complète d'un sous-réseau /24 sur un Raspberry Pi peut prendre 10 à 30 minutes. Utilisez `tmux` ou `screen` pour que l'analyse survive à une déconnexion SSH :```bash
sudo apt install -y tmux
tmux new -s sunsetscan
sudo ./sunsetscan --full-assessment --target 192.168.1.0/24
# Ctrl+B then D to detach. "tmux attach -t sunsetscan" to come back later.

Mise à jour de SunsetScan```bash

cd ~/sunsetscan git pull ./install.sh # idempotent — picks up any new dependencies

root@kitploit:~
### Désinstallation```bash
rm -rf ~/sunsetscan
sudo rm -f /usr/local/bin/sunsetscan    # only if you used --symlink

WSL2 sur Windows

Windows n'est pas directement pris en charge (SunsetScan nécessite des sockets bruts, /proc et os.geteuid), mais WSL2 fonctionne bien :```powershell wsl --install -d Ubuntu # in PowerShell, as Administrator

root@kitploit:~
Redémarrez, ouvrez **Ubuntu** depuis le menu Démarrer, puis suivez l'installation standard ci-dessus. WSL2 utilise un adaptateur réseau virtuel — transmettez votre sous-réseau réel avec `--target` si l'auto-détection choisit le mauvais.

---

## Démarrage rapide

| Exigence | Minimum | Notes |
|---|---|---|
| **Python** | 3.9+ | 3.12 recommandé |
| **nmap** | Toute version récente | Doit être dans le PATH système |
| **OS** | Linux (natif ou WSL2) | Voir [Support des plateformes](#platform-support) |
| **masscan** | Toute version | Optionnel — découverte de ports plus rapide |
| **avahi-utils** | Toute version | Optionnel — fournit `avahi-browse`, utilisé pour la découverte mDNS fiable des appareils Apple / Bonjour / Sleep-Proxy. Se replie sur le `zeroconf` Python si absent. |
| **git** | Toute version | Optionnel — utilisé pour `--setup` et `--update` |
| **Privilèges** | Utilisateur standard | Root/sudo requis pour les profils FULL, STEALTH, SMB, la détection ARP et la capture passive |

---```bash
# Interactive mode (recommended for first-time users)
sudo python3 sunsetscan.py -i

# Full security assessment with HTML report
sudo python3 sunsetscan.py --full-assessment --target 192.168.1.0/24

# Quick scan of your network
python3 sunsetscan.py --target 192.168.1.0/24

# IoT device scan (cameras, routers, smart devices)
python3 sunsetscan.py --target 192.168.1.0/24 --profile IOT

# Quick device inventory (no security checks)
python3 sunsetscan.py --identify --target 192.168.1.0/24

# Download all data modules for extended detection
python3 sunsetscan.py --download all

Fonctionnalités

Découverte réseau

  • Découvre tous les hôtes actifs via un balayage ping rapide
  • Résout les noms d'hôtes et détecte les adresses MAC avec recherche du fournisseur/fabricant
  • Entrée de cible flexible : CIDR, wildcard, plage IP, liste séparée par des virgules ou nom d'hôte
  • Intégration optionnelle de masscan pour une découverte de ports plus rapide sur les grands réseaux
  • Analyse hybride : capture passive en arrière-plan (mDNS/SSDP/DHCP) combinée à une analyse active

Analyse des ports et services

  • Six profils d'analyse : QUICK, FULL, STEALTH, PING, IOT, SMB
  • Les évaluations complètes découvrent d'abord les hôtes actifs, puis analysent uniquement les services de ces hôtes découverts au lieu de balayer aveuglément chaque adresse du CIDR cible
  • Collecte concurrente des bannières sur tous les ports ouverts (pool de 50 threads)
  • Empreinte du système d'exploitation avec pourcentage de confiance
  • Intégration NSE (Nmap Scripting Engine) pour une détection améliorée des appareils
  • Empreinte HTTP pour identifier routeurs, caméras, appareils NAS, imprimantes et objets connectés (IoT)
  • Repli automatique des privilèges root : les profils FULL/STEALTH se dégradent proprement lorsqu'ils sont exécutés sans sudo
  • Mode sécurisé pour les hôtes à faible consommation, le Wi-Fi, WSL/NAT et les exécutions de validation : limite les workers, ignore les balayages masscan larges de tous les ports, borne les ensembles de ports nmap et applique des délais d'expiration par commande
  • Analyse de sécurité parallèle — toutes les vérifications par hôte (SSL, SSH, FTP, SMB, SNMP, Web) s'exécutent en parallèle entre les hôtes et au sein de chaque hôte à l'aide de pools de threads
  • L'analyse de sécurité de phase 7 se termine en moins de 10 secondes quelle que soit la taille du réseau
  • Vérification de préparation avant analyse — avertit si nmap est manquant, si les bases de données CVE/EOL sont vides, ou si les modules par défaut ne sont pas installés. S'exécute avant chaque analyse, sans bloquer l'analyse.

Contrôles de sécurité

SunsetScan exécute 12 modules de vérification de sécurité lors d'une évaluation complète :

Intelligence des vulnérabilités

  • Corrélation CVE — mappe les versions de services détectées aux CVE connues via OSV.dev
  • Vérification de fin de vie (EOL) logicielle — données locales en cache de cycle de vie pour plus de 150 produits logiciels
  • Vérification du cycle de vie matériel — base de données EOL matérielle étendue de SunsetScan avec 64 245 enregistrements de cycle de vie, 51 452 résumés de modèles et 122 fournisseurs représentés. Elle signale les routeurs, commutateurs, NAS, caméras, imprimantes, points d'accès, équipements industriels/OT et équipements de fournisseurs de services avec un statut non pris en charge confirmé ou des signaux de cycle de vie du fournisseur nécessitant un examen.
  • Profils EOL matériels intelligents — les utilisateurs domestiques obtiennent le plus petit profil par défaut hardware-eol-home, tandis que des profils bureau, entreprise, industriel, fournisseur de services et complet sont disponibles pour des analyses plus larges.
  • Empreinte TLS JA3S — identifie le logiciel serveur à partir des signatures de handshake TLS
  • Entièrement hors ligne pendant les analyses — aucun appel API externe n'est effectué pendant l'analyse. Les sources des modules EOL logiciel, CVE et GitHub ne sont contactées que par --setup, --update-cache et --download. Les analyses fonctionnent sans connexion Internet tant que les caches sont remplis.
  • Actualisation hebdomadaire des CVE, actualisation mensuelle des EOL — contrôlée par vous

Identification des appareils

  • 14 extracteurs de preuves fusionnent l'OUI MAC, l'OS nmap, l'empreinte HTTP, les certificats TLS, les bannières SSH, UPnP, sysDescr SNMP, Wappalyzer, mDNS, les empreintes TLS JA3S, les bannières FTP, les heuristiques de ports et les champs de service nmap en une identité d'appareil unifiée par hôte
  • Identifie le fournisseur, le modèle, la version du firmware et le type d'appareil avec un score de confiance (bonus d'accord lorsque plusieurs sources confirment)
  • Prend en charge plus de 130 alias de fournisseurs pour la normalisation des noms
  • Résultats affichés dans un tableau terminal et dans l'inventaire des appareils du rapport HTML
  • Mode rapide d'inventaire d'actifs : le drapeau --identify ignore les contrôles de sécurité
  • Mappage persistant MAC-identité entre les analyses

Système de données modulaire

SunsetScan inclut des modules de données téléchargeables et des profils EOL matériels qui étendent les capacités de détection :

La base de données du cycle de vie matériel est désormais divisée en profils intelligents téléchargeables : hardware-eol-home est l'installation par défaut, tandis que hardware-eol-full fournit une couverture complète. Le build canonique complet contient actuellement 64 245 enregistrements répartis sur 122 fournisseurs, mais les utilisateurs domestiques n'ont besoin que du plus petit profil domestique.

root@kitploit:~
### Détection des appareils non autorisés
- Enregistrez un instantané de votre réseau comme référence de confiance
- Les analyses futures signalent automatiquement les adresses MAC inconnues absentes de la référence
- Détecte les appareils connus sur des adresses IP inattendues

### Score de risque
Chaque appareil reçoit un score de risque (0-100) basé sur la gravité et le nombre de constatations :

| Score | Niveau |
|---|---|
| 0-10 | Risque minimal |
| 11-30 | Risque faible |
| 31-60 | Risque moyen |
| 61-80 | Risque élevé |
| 81-100 | Risque critique |

### Rapports
- **Rapport HTML professionnel** — tableau de bord de gravité, sections par hôte, cartes de constatations avec explications en langage clair, recommandations priorisées
- **Export JSON** — sortie structurée lisible par machine
- Les rapports sont entièrement autonomes — un seul fichier HTML, aucune dépendance externe
- Les profils restreints comme SMB gardent les hôtes découverts visibles dans le rapport
  même lorsqu'aucun port de service correspondant n'est ouvert
- Les vérifications au niveau du réseau comme DNS, UPnP et les notes de durée d'analyse sont séparées
  des constatations par appareil ; les scores de risque des appareils ne sont affichés que pour les hôtes réels
- Toutes les constatations sont codées par couleur : Critique, Élevée, Moyenne, Faible, Info

### Historique des analyses et comparaisons
- Chaque analyse est automatiquement enregistrée comme instantané JSON compressé au format gzip
- Consultez les analyses passées avec `--history`
- Comparez deux analyses avec `--diff` pour voir les nouveaux hôtes, les ports fermés, les constatations nouvelles/résolues
- Comparez avec une analyse datant de N jours avec `--diff --since N`
- L'historique est conservé 90 jours par défaut

### Interface utilisateur
- **Mode interactif** guidé (`-i`) — menus à plusieurs niveaux pour l'analyse, l'export, les modules
- **Menu à l'ancienne** — se lance lorsque l'outil est exécuté sans arguments
- Mode CLI direct — scriptable et adapté à l'automatisation
- Sortie terminal riche en couleurs avec barres de progression, indicateurs d'attente et panneaux de synthèse

---

## Toutes les options CLI

| Option | Description | Root |
|---|---|---|
| `--target TARGET` | IP, plage CIDR, nom d'hôte ou plage à analyser | Non |
| `--profile PROFILE` | Profil d'analyse : QUICK, FULL, STEALTH, PING, IOT, SMB (défaut : QUICK) | Variable |
| `-i`, `--interactive` | Lancer le mode interactif guidé | Non |
| `--full-assessment` | Évaluation complète + export HTML automatique ; l'audit des identifiants reste facultatif | Non |
| `--identify` | Identification des appareils uniquement (ignorer les vérifications de sécurité) | Non |
| `--nse` | Activer le Nmap Scripting Engine pour une détection améliorée | Non |
| `--check-defaults` | Activer (opt-in) l'audit des identifiants par défaut sans risque de verrouillage (appareils possédés uniquement) | Non |
| `--save-baseline` | Enregistrer l'analyse comme référence d'appareils de confiance pour la détection d'appareils non autorisés | Non |
| `--setup` | Assistant de configuration initiale (dépendances + téléchargement du cache) | Non |
| `--update-cache` | Actualiser manuellement les caches de données CVE et EOL | Non |
| `--cache-status` | Afficher l'âge du cache et le nombre d'entrées, puis quitter | Non |
| `--modules` | Afficher l'état de tous les modules de données téléchargeables | Non |
| `--download MODULE` | Télécharger un module de données (ou "all") | Non |
| `--db SIZE` | Taille de la base de données EOL pour `--setup` : mini, normal, large (défaut : normal) | Non |
| `--history` | Afficher le tableau de l'historique des analyses et quitter | Non |
| `--diff` | Comparer les deux dernières analyses enregistrées et quitter | Non |
| `--since DAYS` | Avec `--diff` : comparer avec une analyse vieille d'au moins N jours | Non |
| `--check-version` | Vérifier sur GitHub si une nouvelle version de SunsetScan est disponible | Non |
| `--update` | Récupérer le dernier code depuis GitHub et réinstaller les dépendances | Non |
| `--verbose` | Activer la journalisation de débogage | Non |
| `--no-color` | Désactiver la sortie en couleurs (utile pour les fichiers journaux) | Non |
| `--quiet` | Masquer les barres de progression (les constatations restent affichées) | Non |
| `--safe-mode` | Forcer une analyse plus douce : nmap borné, utilisation moindre de masscan, moins de travailleurs, sondes lourdes ignorées | Non |
| `--no-safe-mode` | Désactiver le mode sécurisé automatique | Non |
| `--version` | Afficher le numéro de version et quitter | Non |

---

## Profils d'analyse

| Profil | Options nmap | Vitesse | Root | Idéal pour |
|---|---|---|---|---|
| **PING** | `-sn` | ~30s | Non | Trouver rapidement les appareils actifs |
| **QUICK** | `-T4 -F -sV --version-intensity 2` | 1-3 min | Non | Premier aperçu d'un réseau (avec détection de version légère) |
| **FULL** | `-T4 -A -sV -O --osscan-guess` | 5-15 min | Oui | Analyse approfondie d'hôtes spécifiques |
| **STEALTH** | `-sS -T2 -sV` | 10-30 min | Oui | Analyse à faible bruit |
| **IOT** | `-T4 -sV -p 23,80,443,8080,8443,554,1900,5000,5001,7547,49152 --open` | 1-3 min | Non | Caméras, routeurs, objets connectés |
| **SMB** | `-T4 -sV -p 135,139,445,137,138 --script smb-security-mode,smb2-security-mode,smb-vuln-ms17-010 --open` | 1-3 min | Oui | Partages Windows, vérification EternalBlue |

> **Astuce :** FULL et STEALTH reviennent automatiquement à des options non root lorsqu'ils sont exécutés sans sudo. La détection du système d'exploitation sera indisponible, mais l'analyse des ports et la détection des services fonctionnent toujours.

### Sécurité de l'audit des mots de passe par défaut
Le test des mots de passe par défaut n'est jamais activé automatiquement. En mode CLI, ajoutez
`--check-defaults` ; en mode interactif `-i`, choisissez l'audit des mots de passe par défaut lorsqu'il est
proposé. SunsetScan applique alors une politique prudente :

- aucune tentative générique de type « username/password spraying » par défaut
- ne teste que les identifiants correspondant au fournisseur et au modèle/famille détectés
- ignore les appareils avec des défauts uniques de type étiquette/PIN, comme de nombreuses imprimantes HP
- limite les tentatives à 2 par hôte et 1 par service par défaut
- attend 2 secondes entre les tentatives avec identifiants
- s'arrête immédiatement si un appareil renvoie des signaux de verrouillage ou de limitation de débit

La base de données intégrée est volontairement petite et adossée à des sources. Les
modules d'identifiants volumineux téléchargés sont conservés comme données de référence, mais l'audit sécurisé
ne les utilise pas, sauf si `Settings.auth_allow_module_credentials` est explicitement
activé par un développeur.

### Mode sécurisé et exécutions de validation
Le mode sécurisé est automatiquement recommandé sur les hôtes à faible puissance, les hôtes qui ressemblent à
des appareils Pi-hole/passerelle, et sur les sorties Wi-Fi. Il peut aussi être forcé avec :```bash
python3 sunsetscan.py --full-assessment --target 192.168.1.0/24 --safe-mode

En mode sûr, SunsetScan:

  • découvre d'abord les hôtes actifs et ne scanne que ces hôtes lors des évaluations complètes
  • applique le même comportement de scanneur sûr depuis la CLI, l'ancien menu et le mode guidé -i
  • supprime l'empreinte OS des analyses larges
  • maintient les analyses STEALTH/FULL larges bornées par des limites de ports rapides/top ports
  • ignore les balayages masscan de tous les ports pour les profils larges
  • réduit le nombre de workers et ignore les sondes TLS lourdes
  • applique un délai d'expiration par nmap afin qu'un profil ne puisse pas bloquer indéfiniment

Pour les tests de régression assistés par root sur tous les modes, utilisez le collecteur de validation:```bash sudo bash scripts/sudo_network_validation.sh

root@kitploit:~
Par défaut, il teste `192.168.1.0/24` sur PING, QUICK, SMB, STEALTH et
FULL, copie les rapports HTML générés dans le répertoire
de validation, et écrit une archive compressée sous `reports/`. Les rapports, journaux,
pcaps et archives sont ignorés par git et ne doivent pas être commités.

Remplacements utiles :```bash
sudo SUNSETSCAN_TARGETS="192.168.1.0/24" bash scripts/sudo_network_validation.sh
sudo SUNSETSCAN_PROFILES="PING QUICK FULL" bash scripts/sudo_network_validation.sh
sudo SUNSETSCAN_COMMAND_TIMEOUT=1200 bash scripts/sudo_network_validation.sh

Gestion du cache

SunsetScan n'appelle jamais d'API externes lors d'une analyse. Toutes les données sont lues à partir des fichiers de cache locaux dans data/cache/.

root@kitploit:~
Les scans fonctionnent normalement avec un cache obsolète ou manquant — vous pourriez simplement avoir des données CVE obsolètes.

---

## Détection d'appareils non autorisés```bash
# Step 1: Save baseline when all known devices are present
sudo python3 sunsetscan.py --target 192.168.1.0/24 --save-baseline

# Step 2: Future scans automatically compare against baseline
sudo python3 sunsetscan.py --target 192.168.1.0/24
ConstatationGravitéSignification
Appareil inconnu détectéMoyenneMAC absent de la référence — appareil nouveau ou non autorisé
Adresse IP d'appareil modifiéeFaible

Remarque : La référence nécessite root/sudo pour la détection des adresses MAC via nmap.


Rapport HTML

Chaque --full-assessment produit un rapport HTML autonome avec :

  • Tableau de bord des gravités — compteurs de badges (Critical/High/Medium/Low/Info), barre de couleur, statistiques de synthèse
  • Scores de risque — score par appareil de 0 à 100 avec libellé de bande de risque
  • Tableau de toutes les constatations — chaque constatation sur tous les hôtes, trié par gravité
  • Sections par hôte — section dépliable par appareil avec cartes de constatation, tableau des ports ouverts, statut EOL
  • Cartes de constatation — badge de gravité, titre, « Ce qui a été trouvé », « Ce que cela signifie » (en langage clair), « Que faire » (étapes numérotées), preuves, identifiants CVE
  • Recommandations — liste d'actions priorisées

Les rapports s'ouvrent dans n'importe quel navigateur sans nécessiter de connexion Internet.


Identification des appareils

SunsetScan identifie automatiquement les appareils réseau en combinant les preuves provenant de 14 sources différentes. Chaque source apporte un constructeur, un modèle, une version ou un type d'appareil avec un score de confiance. L'algorithme de fusion additionne les sources concordantes (avec des bonus pour l'accord multi-source) et pénalise les preuves contradictoires.

Inventaire rapide des actifs

Pour voir ce qu'il y a sur votre réseau sans exécuter de contrôles de sécurité :```bash python3 sunsetscan.py --identify --target 192.168.1.0/24

root@kitploit:~
Cela exécute un scan de ports avec capture de bannière et affiche un tableau
d'identification des appareils. Aucune analyse de sécurité, aucun rapport — juste un
inventaire rapide.

### Sources de preuves

| Source | Ce qu'il lit | Confiance |
|--------|--------------|------------|
| MAC OUI | Préfixe fournisseur IEEE de l'adresse MAC | 0.40-0.45 |
| nmap OS | Estimation d'empreinte OS | varies |
| HTTP fingerprint | Type d'appareil, modèle, firmware depuis l'interface web | 0.50+ |
| HTTP headers | En-têtes de réponse Server, X-Powered-By | 0.20-0.50 |
| TLS certificate | Champs CN, émetteur, organisation | 0.35 |
| SSH banner | Chaîne d'identification du démon SSH | 0.10-0.70 |
| UPnP | Fabricant, modèle, type d'appareil SSDP | 0.75 |
| SNMP sysDescr | Description système depuis la MIB SNMP | 0.85 |
| Wappalyzer | Chaînes CPE et catégories de technologies | 0.30-0.45 |
| mDNS/Zeroconf | Annonces de types de services | 0.55 |
| JA3S | Base de données d'empreintes de poignée de main TLS | 0.50 |
| FTP banner | Identification du logiciel serveur FTP | 0.25-0.35 |
| Port heuristics | Modèles de combinaisons de ports ouverts | 0.10-0.70 |
| nmap services | Champs produit et version du service | 0.45 |

Les résultats d'identification apparaissent dans :
- Tableau d'inventaire des appareils en terminal (pendant l'analyse et via `--identify`)
- Cartes de topologie du rapport HTML et section d'inventaire des appareils
- Section `device_identities` de l'export JSON
- Option de menu [8] Device Inventory en mode interactif

---

## Niveaux de gravité

| Niveau | Couleur | Plage CVSS | Signification | Quand agir |
|---|---|---|---|---|
| **CRITIQUE** | Rouge | >= 9.0 | Identifiants par défaut, CVE exploitable, SSL 2.0 | Aujourd'hui |
| **ÉLEVÉ** | Orange | 7.0-8.9 | Telnet/FTP ouvert, certificat expiré, TLS 1.0, logiciel EOL | Cette semaine |
| **MOYEN** | Jaune | 4.0-6.9 | Certificat auto-signé, exposition UPnP, appareil non autorisé, HSTS manquant | Planifier un correctif |
| **FAIBLE** | Bleu | < 4.0 | Fin de vie (EOL) proche, X-Frame-Options manquant, adresse IP d'appareil modifiée | Suivre et planifier |
| **INFO** | Gris | - | Appareil identifié, détails du certificat, vérification DNS réussie | Aucune action |

---

## Structure du projet```
sunsetscan/
├── sunsetscan.py                    # Entry point — CLI, scan pipeline, setup wizard
├── requirements.txt               # Python dependencies
├── install.sh                     # Automated installer for Linux/macOS
├── install.bat                    # Automated installer for Windows (basic)
├── README.md                      # This file
│
├── config/
│   └── settings.py                # All constants, timeouts, scan profiles, menu options
│
├── core/
│   ├── scanner.py                 # nmap wrapper (ScanResult, HostInfo, PortInfo)
│   ├── port_scanner.py            # Masscan pipeline + PortScanOrchestrator
│   ├── banner_grabber.py          # Concurrent raw socket banner grabbing
│   ├── http_fingerprinter.py      # HTTP device/firmware fingerprinting
│   ├── nse_scanner.py             # Nmap Scripting Engine integration
│   ├── auth_tester.py             # Default credential testing (HTTP, device-specific)
│   ├── input_parser.py            # Flexible target format parsing
│   ├── network_utils.py           # Subnet detection, IP helpers, WSL detection
│   ├── findings.py                # Finding dataclass, Severity enum, FindingRegistry
│   ├── risk_scorer.py             # Per-device risk scoring (0-100)
│   ├── cache_manager.py           # Unified CVE + EOL cache (data/cache/)
│   ├── cve_checker.py             # CVE lookup + CVECacheBuilder (OSV.dev)
│   ├── ssl_checker.py             # TLS certificate, cipher suite, JA3S fingerprinting
│   ├── ssh_checker.py             # SSH version, algorithms, KEXINIT analysis
│   ├── smb_checker.py             # SMBv1, EternalBlue, shares, NTLM disclosure
│   ├── ftp_checker.py             # Anonymous FTP, STARTTLS
│   ├── snmp_checker.py            # SNMP community strings, sysDescr (pysnmp v4+v7)
│   ├── web_checker.py             # HTTP headers, admin panels, Wappalyzer
│   ├── dns_checker.py             # DNS hijack and rebinding detection
│   ├── upnp_checker.py            # SSDP discovery, UPnP risk assessment
│   ├── mdns_checker.py            # mDNS/Zeroconf device discovery
│   ├── arp_checker.py             # ARP spoofing detection
│   ├── device_identifier.py       # 14-source device identification engine
│   ├── identity_fusion.py         # Multi-source identity fusion and scoring
│   ├── oui_lookup.py              # IEEE OUI MAC vendor resolution
│   ├── device_map.py              # Persistent MAC→identity mapping
│   ├── passive_sniffer.py         # Background mDNS/SSDP/DHCP packet capture
│   ├── packet_parsers.py          # Protocol-specific packet parsing
│   ├── instant_scan.py            # ARP sweep + passive capture quick scan
│   ├── hybrid_scanner.py          # Passive+active scan orchestrator
│   ├── baseline.py                # Rogue device baseline comparison
│   ├── hardware_eol.py            # Downloaded hardware lifecycle database lookup
│   ├── scan_history.py            # Scan snapshot persistence and diffing
│   ├── module_manager.py          # Downloadable data module system
│   └── update_manager.py          # Version check and self-update
│
├── eol/
│   ├── checker.py                 # EOL API queries and version comparison
│   ├── cache.py                   # Per-product JSON cache
│   └── product_map.py             # 150+ software name -> lifecycle cache slug mappings
│
├── ui/
│   ├── menu.py                    # Old-style numbered menu (no-args mode)
│   ├── display.py                 # Rich terminal tables, progress bars, banners
│   ├── export.py                  # JSON and HTML report generation
│   ├── interactive_controller.py  # Interactive mode (-i) with multi-level menus
│   └── templates/
│       └── report.html.j2         # Jinja2 HTML report template
│
└── data/
    ├── default_credentials.json   # Factory-default credentials database
    ├── device_map.json            # Persistent MAC→identity map
    ├── baseline.json              # Saved device baseline (--save-baseline)
    ├── cache/
    │   ├── cve_cache.json         # CVE data keyed by product:version
    │   ├── <product>.json         # EOL data keyed by product slug
    │   ├── hardware_eol/          # Downloaded hardware lifecycle database
    │   └── cache_meta.json        # Cache update timestamps
    ├── history/                   # Gzip scan snapshots (auto-saved)
    └── modules/                   # Downloaded data modules

Dépannage

nmap introuvable```bash

Debian/Ubuntu

sudo apt install nmap

Fedora

sudo dnf install nmap

Arch

sudo pacman -S nmap

macOS

brew install nmap

root@kitploit:~
**Permission refusée / détection d'OS ne fonctionne pas**

Les profils FULL, STEALTH et SMB nécessitent des privilèges élevés. Sans root, ces profils reviennent automatiquement aux flags non-root (détection d'OS et scan SYN désactivés, mais le scan de ports/versions fonctionne toujours).```bash
# For full capabilities:
sudo python3 sunsetscan.py --target 192.168.1.0/24 --profile FULL

WSL2 suggère un mauvais réseau (172.x.x.x)

Sur WSL2, SunsetScan détecte l'adaptateur virtuel et revient à 192.168.1.0/24. Si votre réseau domestique utilise un sous-réseau différent, spécifiez-le avec --target :```bash python3 sunsetscan.py --target 192.168.0.0/24

root@kitploit:~
**Avertissements de cache au début de l'analyse**```
WARNING: CVE data is 12 days old — run: python sunsetscan.py --update-cache

Les scans fonctionnent correctement avec des données obsolètes. Exécutez --update-cache pour actualiser.

Permission refusée lors du téléchargement des modules

Si les téléchargements de modules échouent avec Permission denied: .../data/cache/..., le cache a probablement été créé par sudo. Corrigez la propriété une fois, puis exécutez la configuration et les téléchargements de modules en tant qu'utilisateur normal :```bash cd ~/sunsetscan sudo chown -R "$USER:$USER" data/cache ./sunsetscan --download all

root@kitploit:~
**Les vérifications SNMP ne fonctionnent pas**

SunsetScan prend en charge à la fois pysnmp v4 (synchrone) et v7 (asynchrone). Si vous voyez des erreurs d'importation, mettez à jour pysnmp :```bash
pip install --upgrade pysnmp

Avertissement — Utilisation autorisée uniquement

SunsetScan est un outil d'audit de sécurité destiné à être utilisé sur des réseaux et des appareils que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester.

Exécuter des scans réseau contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation de tester peut être illégal, quelle que soit votre intention. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.

SunsetScan est entièrement non destructif et en lecture seule. Il n'exploite pas de vulnérabilités, n'envoie pas de charges utiles (payloads) et ne modifie aucune configuration sur aucun appareil scanné. Le test d'identifiants --check-defaults est facultatif, limité, différé, orienté modèle exact et s'arrête sur les signaux de verrouillage/limitation de débit ; ce n'est pas une fonction de force brute.


Licence

Le dépôt SunsetScan et le code de l'application sont sous licence MIT — Copyright 2024 SunsetScan Contributors.

Seuls les artefacts de la base de données de fin de vie (EOL) du matériel SunsetScan sous data/hardware_eol/ sont sous licence séparée : cette base de données est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale 4.0 International (CC BY-NC 4.0). Voir data/hardware_eol/LICENSE.md.


Remerciements

  • nmap — moteur de scan
  • python-nmap — interface Python pour nmap
  • OSV.dev — base de données de vulnérabilités
  • Rich — formatage de terminal
  • Jinja2 — gabarits de rapport HTML
  • cryptography — inspection de certificats TLS
  • scapy — capture de paquets bruts et scan ARP
  • danielmiessler/SecLists — listes d'identifiants et SNMP
  • ihebski/DefaultCreds-cheat-sheet — identifiants constructeur
  • enthec/webappanalyzer — détection de technologies web
  • salesforce/ja3 — empreinte TLS
  • many-passwords — identifiants de caméras/DVR
Télécharger l’outil
PlateformeNiveau de prise en chargeNotes
Linux (Debian, Ubuntu, Fedora, Arch, etc.)Prise en charge complèteMeilleure expérience — toutes les fonctionnalités fonctionnent nativement
WSL2 (Windows Subsystem for Linux)Prise en charge complèteMoyen recommandé pour exécuter sur les machines Windows
macOSPartielleL'analyse de base fonctionne ; certaines fonctionnalités (ARP, capture passive) peuvent nécessiter une configuration supplémentaire
Windows (CMD/PowerShell natif)Non prise en chargeSockets bruts manquants, os.geteuid(), /proc, ip route et termios — utilisez WSL2 à la place
OptionEffet
(aucune option)Installation par défaut : paquets système + venv + dépendances Python + auto-test
--forceSupprime et reconstruit le venv à partir de zéro (à utiliser après une mise à niveau de Python)
--symlinkInstalle également /usr/local/bin/sunsetscan afin que vous puissiez exécuter sunsetscan depuis n'importe où
--no-systemIgnore l'étape apt/dnf/etc (à utiliser si vos outils système sont déjà installés)
--helpAffiche toutes les options
VérificateurCe qu'il trouve
SSL/TLSCertificats expirés/auto-signés, chiffrements faibles, TLS 1.0/1.1, SSL 2.0/3.0, petites clés RSA
SSHÉchange de clés faible, chiffrements/MAC faibles, SSHv1, petites clés hôte, analyse brute de KEXINIT
SMBSMBv1, EternalBlue (MS17-010), partages anonymes, signature SMB désactivée, divulgation NTLM
FTPConnexion anonyme, identifiants en clair, STARTTLS manquant
SNMPChaînes de communauté par défaut (public/private), SNMPv1, extraction sysDescr
WebEn-têtes de sécurité manquants, formulaires de connexion en HTTP, listage de répertoires, panneaux d'administration exposés
DNSDétection de détournement DNS (comparaison avec Cloudflare 1.1.1.1)
UPnPDécouverte SSDP, exposition du mappage de port WAN sur les routeurs
mDNSDécouverte d'appareils Zeroconf/Bonjour, détecte les hôtes qui échappent aux analyses de ports
ARPDétection d'empoisonnement ARP, suivi des changements d'adresse MAC (nécessite root)
Identifiants par défautAudit optionnel des identifiants d'usine par défaut utilisant des correspondances exactes d'appareil/modèle, tentatives limitées et délais
Protocoles non sécurisésTelnet, FTP, TFTP, rsh, rlogin, rexec signalés par gravité
ModuleSourceCe qu'il ajoute
credentials-minidanielmiessler/SecListsTop 50 des identifiants par défaut (données de référence téléchargeables ; non utilisées par l'audit sûr sauf activation explicite dans les paramètres)
credentials-fullihebski/DefaultCreds-cheat-sheetPlus de 2860 identifiants spécifiques aux fournisseurs (données de référence téléchargeables ; non utilisées par l'audit sûr sauf activation explicite dans les paramètres)
wappalyzer-minienthec/webappanalyzerTop 500 des technologies Web (par défaut)
wappalyzer-fullenthec/webappanalyzerLes 7515 technologies Web
ja3-signaturessalesforce/ja3Base de données d'empreintes TLS
snmp-communitydanielmiessler/SecListsChaînes de communauté SNMP étendues
camera-credentialsmany-passwords/many-passwordsIdentifiants par défaut pour caméras IP/DVR/NVR (données de référence téléchargeables ; non utilisées par l'audit sûr sauf activation explicite dans les paramètres)
mac-ouiIEEE Standards AssociationBase de données des fournisseurs de préfixes MAC (par défaut)
hardware-eol-homeNoCoderRandom/sunsetscanProfil de cycle de vie/EOL matériel domestique/SOHO (par défaut ; licence de base de données : CC BY-NC 4.0)
hardware-eol-officeNoCoderRandom/sunsetscanProfil de cycle de vie/EOL matériel domestique et petit bureau
hardware-eol-enterpriseNoCoderRandom/sunsetscanProfil de cycle de vie/EOL matériel domestique, bureau et entreprise/campus/datacenter
hardware-eol-industrialNoCoderRandom/sunsetscanProfil de cycle de vie/EOL matériel domestique, bureau et industriel/OT
hardware-eol-service-providerNoCoderRandom/sunsetscanProfil de cycle de vie/EOL matériel domestique, bureau, entreprise et fournisseur de services
hardware-eol-fullNoCoderRandom/sunsetscanProfil complet de cycle de vie/EOL matériel smart-pack
hardware-eolNoCoderRandom/sunsetscanModule de compatibilité Legacy pour cycle de vie/EOL matériel complet fractionné
sunsetscan --modules # Show module status
sunsetscan --download all # Download all modules, using the full hardware EOL smart profile
sunsetscan --download ja3-signatures # Download one data module
sunsetscan --download hardware-eol-home # Download a smaller hardware EOL profile
sunsetscan --download hardware-eol-full # Download every hardware EOL smart pack
FileContentsRefresh interval
data/cache/cve_cache.jsonDonnées CVE indexées par produit:versionTous les 7 jours
data/cache/*.jsonDates de fin de vie (EOL) pour 150+ produits, stockées par produitTous les 30 jours
data/cache/hardware_eol/sunsetscan_hardware_eol_index.json et records/*.jsonBase de données du cycle de vie/EOL du matérielTous les 30 jours
data/cache/hardware_eol/manifest.json, indexes/*.json, et records/<pack>/*.jsonProfils de cycle de vie/EOL du matériel smart-packTous les 30 jours
data/cache/cache_meta.jsonHorodatages des dernières mises à jourAutomatique
sunsetscan --cache-status # See current cache state
sunsetscan --update-cache # Refresh stale caches
MAC connu sur une IP différente (généralement DHCP normal)
Appareil déjà vu hors ligneInfoAppareil de référence ne répondant pas