Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
sunsetscan — Audit di sicurezza della rete locale con EOL, CVE, identità dei dispositivi e report HTML. | Kitploit
Strumenti/GitHubGitHub/nocoderrandom/sunsetscan
RicognizioneScanner di VulnerabilitàSicurezza IoTAttacchi alle PasswordAudit di ConfigurazioneRaccolta InformazioniSicurezza di Rete
GitHubnocoderrandom/sunsetscan

sunsetscan

Audit di sicurezza della rete locale con EOL, CVE, identità dei dispositivi e report HTML.

Vedi Repository
32 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

SunsetScan

Auditing di sicurezza di rete per esseri umani — basato su nmap, pensato per tutti.

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

Sito web: sunsetscan.com


SunsetScan è uno strumento di auditing della sicurezza per reti locali, pensato per proprietari di reti domestiche e personale IT che vogliono la profondità di nmap senza doverne imparare la sintassi. Punta il tool verso la tua rete e lui troverà ogni dispositivo attivo, identificherà il software in esecuzione, lo confronterà con database di vulnerabilità note e registri di fine supporto, sonderà le interfacce web per individuare debolezze comuni, eseguirà opzionalmente un audit delle credenziali predefinite di fabbrica che non blocca l'account, e produrrà un report HTML pulito con spiegazioni in linguaggio semplice e passaggi numerati per risolvere ogni risultato. È interamente in sola lettura e non distruttivo — nulla sulla tua rete viene mai modificato.


Supporto piattaforme

Perché Linux? SunsetScan si basa su raw socket (scansione ARP, cattura passiva dei pacchetti), API specifiche di Linux (/proc, ip route) e controlli dei privilegi (os.geteuid()) che non sono disponibili su Windows nativo. WSL2 fornisce un kernel Linux completo ed è il percorso consigliato per gli utenti Windows.


Installazione

SunsetScan include un programma di installazione che si occupa degli strumenti di sistema (nmap, masscan, git, python3-venv), crea un ambiente virtuale Python locale al progetto e installa al suo interno tutte le dipendenze Python. Non ti verrà mai chiesto di eseguire pip install come root — questo è importante sulle moderne Debian/Pi OS, vedi Perché una venv? più sotto.

Piattaforme Tier-1 (testate completamente)

Debian, Ubuntu, Raspberry Pi OS (Bookworm e successive), Linux Mint, Pop!_OS.

Piattaforme Tier-2 (best-effort, stesso script)

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

Quattro modi per installare — scegline uno

1. Pacchetto Debian/Ubuntu

Consigliato per Debian, Ubuntu, Raspberry Pi OS, Linux Mint e 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. Bootstrap in una riga

Clona il repository in `~/sunsetscan` ed esegue l'installer:```bash
curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

Vuoi installarlo altrove? Imposta INSTALL_DIR:```bash INSTALL_DIR=/opt/sunsetscan curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

root@kitploit:~
> **Nota su `curl | bash`**: è comodo, ma significa eseguire uno script che non hai letto. Se preferisci ispezionarlo prima, usa l'opzione 3 o 4.

#### 3. Clona e installa```bash
git clone https://github.com/NoCoderRandom/sunsetscan.git
cd sunsetscan
./install.sh

4. Installazione manuale (controllo completo, quattro comandi)```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:~
(Sostituisci il gestore pacchetti della tua distribuzione a `apt` — `dnf`, `pacman`, `zypper` o `brew`. Il pacchetto avahi è `avahi-tools` su Fedora/RHEL, `avahi` su Arch, `avahi-utils` su openSUSE e non è necessario su macOS.)

### Dopo l'installazione — prima esecuzione```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

Il launcher ./sunsetscan attiva automaticamente il venv — non devi mai fare source venv/bin/activate. Usa sudo per le scansioni che richiedono socket raw, ma esegui --setup, --download e --update-cache come utente normale, così i file di cache restano scrivibili dalla TUI.

Flag dell'installer

Rieseguire ./install.sh è sicuro e idempotente — rileva i componenti esistenti e li riutilizza.

Perché un venv?

Le distribuzioni moderne basate su Debian (Debian Bookworm, Raspberry Pi OS Bookworm, Ubuntu 23.04+) includono l'applicazione di PEP 668. Questo fa sì che pip install fallisca quando viene eseguito come root contro il Python di sistema:``` error: externally-managed-environment × This environment is externally managed

root@kitploit:~
Due delle dipendenze di SunsetScan (in particolare `pysnmp` v6) richiedono versioni più recenti di quelle fornite dai repository apt, quindi un'installazione puramente via apt non è possibile. La soluzione dell'installer è quella standard: installare gli strumenti di sistema (nmap, masscan, libpcap, avahi-utils) tramite apt e inserire le dipendenze Python di SunsetScan in una directory `./venv` locale al progetto. Non viene toccato nulla a livello di sistema, quindi PEP 668 non si applica, e la disinstallazione di SunsetScan è semplicemente `rm -rf ~/sunsetscan`.

### Opzionale: tieni SunsetScan in esecuzione in background

Una valutazione completa di una sottorete /24 su un Raspberry Pi può richiedere 10–30 minuti. Usa `tmux` o `screen` affinché la scansione sopravviva a una disconnessione 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.

Aggiornamento di SunsetScan```bash

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

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

WSL2 su Windows

Windows non è direttamente supportato (SunsetScan necessita di raw sockets, /proc, e os.geteuid), ma WSL2 funziona bene:```powershell wsl --install -d Ubuntu # in PowerShell, as Administrator

root@kitploit:~
Riavvia, apri **Ubuntu** dal menu Start, quindi segui l'installazione standard sopra indicata. WSL2 utilizza un adattatore di rete virtuale — passa la tua subnet reale con `--target` se l'auto-rilevamento sceglie quella sbagliata.

---

## Requisiti

| Requisito | Minimo | Note |
|---|---|---|
| **Python** | 3.9+ | 3.12 consigliato |
| **nmap** | Qualsiasi recente | Deve essere nel PATH di sistema |
| **SO** | Linux (nativo o WSL2) | Vedi [Supporto piattaforma](#platform-support) |
| **masscan** | Qualsiasi | Opzionale — rilevamento porte più veloce |
| **avahi-utils** | Qualsiasi | Opzionale — fornisce `avahi-browse`, usato per il rilevamento mDNS affidabile di dispositivi Apple / Bonjour / Sleep-Proxy. Se assente, ripiega su `zeroconf` di python. |
| **git** | Qualsiasi | Opzionale — usato per `--setup` e `--update` |
| **Privilegi** | Utente standard | Root/sudo necessario per i profili FULL, STEALTH, SMB, rilevamento ARP e cattura passiva |

---

## Avvio rapido```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

Funzionalità

Scoperta della rete

  • Rileva tutti gli host attivi tramite ping sweep rapido
  • Risolve i nomi host e rileva gli indirizzi MAC con ricerca del vendor/manufacturer
  • Input di destinazione flessibile: CIDR, wildcard, intervallo IP, valori separati da virgola o nome host
  • Integrazione opzionale con masscan per una scoperta delle porte più rapida su reti di grandi dimensioni
  • Scansione ibrida: acquisizione passiva in background (mDNS/SSDP/DHCP) combinata con scansione attiva

Scansione di porte e servizi

  • Sei profili di scansione: QUICK, FULL, STEALTH, PING, IOT, SMB
  • Le valutazioni complete rilevano prima gli host attivi, quindi eseguono la scansione dei servizi solo su quegli host scoperti, invece di scansionare alla cieca ogni indirizzo nel CIDR di destinazione
  • Raccolta di banner concorrente su tutte le porte aperte (pool di 50 thread)
  • Rilevamento del sistema operativo con percentuale di confidenza
  • Integrazione NSE (Nmap Scripting Engine) per un rilevamento migliorato dei dispositivi
  • Impronta digitale HTTP per identificare router, telecamere, dispositivi NAS, stampanti e IoT
  • Degrado automatico dei privilegi di root: i profili FULL/STEALTH si adattano in modo elegante quando vengono eseguiti senza sudo
  • Modalità sicura per host a basso consumo, Wi-Fi, WSL/NAT e test di validazione: limita i worker, salta le ampie scansioni masscan su tutte le porte, limita gli insiemi di porte di nmap e applica timeout di scansione per comando
  • Analisi di sicurezza parallela — tutti i controlli per host (SSL, SSH, FTP, SMB, SNMP, Web) vengono eseguiti contemporaneamente tra gli host e all'interno di ciascun host utilizzando pool di thread
  • L'analisi di sicurezza della fase 7 viene completata in meno di 10 secondi indipendentemente dalle dimensioni della rete
  • Controllo di prontezza pre-scansione — avvisa se nmap è mancante, i database CVE/EOL sono vuoti o i moduli predefiniti non sono installati. Viene eseguito prima di ogni scansione e non blocca la scansione.

Controlli di sicurezza

SunsetScan esegue 12 moduli di controllo di sicurezza durante una valutazione completa:

Intelligence sulle vulnerabilità

  • Correlazione CVE — mappa le versioni di servizio rilevate a CVE note utilizzando OSV.dev
  • Controllo EOL del software — dati locali sul ciclo di vita memorizzati nella cache per oltre 150 prodotti software
  • Controllo del ciclo di vita dell'hardware — database EOL hardware SunsetScan ampliato con 64.245 record sul ciclo di vita, 51.452 riepiloghi di modelli e 122 vendor rappresentati. Segnala router, switch, NAS, telecamere, stampanti, punti di accesso, apparecchiature industriali/OT e apparecchiature dei provider di servizi con stato di non supporto confermato o segnali di ciclo di vita del vendor che richiedono revisione.
  • Profili EOL hardware intelligenti — gli utenti domestici ricevono il profilo predefinito più piccolo hardware-eol-home, mentre i profili office, enterprise, industrial, service-provider e full sono disponibili per scansioni più ampie.
  • Impronta digitale TLS JA3S — identifica il software del server dalle firme dell'handshake TLS
  • Completamente offline durante le scansioni — nessuna chiamata API esterna viene effettuata durante la scansione. Le sorgenti EOL del software, CVE e dei moduli GitHub vengono contattate solo da --setup, --update-cache e --download. Le scansioni funzionano senza alcuna connessione Internet purché le cache siano popolate.
  • Aggiornamento CVE settimanale, aggiornamento EOL mensile — controllato da te

Identificazione dei dispositivi

  • 14 estrattori di prove fondono MAC OUI, OS di nmap, impronte digitali HTTP, certificati TLS, banner SSH, UPnP, sysDescr SNMP, Wappalyzer, mDNS, impronte digitali TLS JA3S, banner FTP, euristiche sulle porte e campi di servizio di nmap in un'identità di dispositivo unificata per host
  • Identifica vendor, modello, versione firmware e tipo di dispositivo con punteggio di confidenza (bonus di concordanza quando più fonti confermano)
  • Supporta più di 130 alias di vendor per la normalizzazione dei nomi
  • Risultati mostrati in tabella terminale e nell'inventario dei dispositivi del report HTML
  • Modalità rapida di inventario asset: il flag --identify salta i controlli di sicurezza
  • Mappatura persistente MAC-identità tra le scansioni

Sistema modulare di dati

SunsetScan include moduli di dati scaricabili e profili EOL hardware che estendono le capacità di rilevamento:

Il database del ciclo di vita dell'hardware è ora suddiviso in profili intelligenti scaricabili: hardware-eol-home è l'installazione predefinita, mentre hardware-eol-full fornisce una copertura completa. La build canonica completa contiene attualmente 64.245 record su 122 vendor, ma gli utenti domestici necessitano solo del profilo home più piccolo.

root@kitploit:~
### Rilevamento dispositivi rogue
- Salva uno snapshot della tua rete come baseline affidabile
- Le scansioni future contrassegnano automaticamente gli indirizzi MAC sconosciuti non presenti nella baseline
- Rileva dispositivi noti su indirizzi IP inattesi

### Punteggio di rischio
Ogni dispositivo riceve un punteggio di rischio (0-100) basato sulla gravità e sul numero dei riscontri:

| Punteggio | Fascia |
|---|---|
| 0-10 | Rischio minimo |
| 11-30 | Rischio basso |
| 31-60 | Rischio medio |
| 61-80 | Rischio alto |
| 81-100 | Rischio critico |

### Reportistica
- **Report HTML professionale** — dashboard della gravità, sezioni per host, schede dei riscontri con spiegazioni in linguaggio semplice, raccomandazioni prioritarie
- **Esportazione JSON** — output strutturato leggibile da macchina
- I report sono completamente autonomi — un singolo file HTML, nessuna dipendenza esterna
- Profili ristretti come SMB mantengono comunque visibili nel report gli host scoperti anche quando nessuna porta di servizio corrispondente è aperta
- Le verifiche a livello di rete come DNS, UPnP e le note di runtime della scansione sono separate dai riscontri per dispositivo; i punteggi di rischio dei dispositivi sono mostrati solo per gli host reali
- Tutti i riscontri sono codificati a colori: Critico, Alto, Medio, Basso, Info

### Cronologia delle scansioni e diffing
- Ogni scansione viene salvata automaticamente come snapshot JSON compresso con gzip
- Visualizza le scansioni passate con `--history`
- Confronta due scansioni qualsiasi con `--diff` per vedere nuovi host, porte chiuse, riscontri nuovi/risolti
- Confronta con una scansione di N giorni fa con `--diff --since N`
- La cronologia viene conservata per 90 giorni per impostazione predefinita

### Interfaccia utente
- **Modalità interattiva** guidata (`-i`) — menu multilivello per scansione, analisi, esportazione, moduli
- **Menu in stile classico** — si avvia quando viene eseguito senza argomenti
- Modalità CLI diretta — scriptabile e adatta all'automazione
- Output di terminale ricco a colori con barre di avanzamento, spinner e pannelli di riepilogo

---

## Tutti i flag della CLI

| Flag | Descrizione | Root |
|---|---|---|
| `--target TARGET` | IP, intervallo CIDR, hostname o intervallo da scansionare | No |
| `--profile PROFILE` | Profilo di scansione: QUICK, FULL, STEALTH, PING, IOT, SMB (predefinito: QUICK) | Varia |
| `-i`, `--interactive` | Avvia la modalità interattiva guidata | No |
| `--full-assessment` | Valutazione completa + esportazione HTML automatica; l'audit delle credenziali rimane opzionale | No |
| `--identify` | Esegui solo l'identificazione dei dispositivi (salta i controlli di sicurezza) | No |
| `--nse` | Abilita Nmap Scripting Engine per un rilevamento potenziato | No |
| `--check-defaults` | Adesione all'audit delle credenziali predefinite di fabbrica sicuro contro i lockout (solo dispositivi di proprietà) | No |
| `--save-baseline` | Salva la scansione come baseline affidabile dei dispositivi per il rilevamento rogue | No |
| `--setup` | Procedura guidata di configurazione iniziale (dipendenze + download della cache) | No |
| `--update-cache` | Aggiorna manualmente le cache dei dati CVE e EOL | No |
| `--cache-status` | Mostra l'età della cache e il numero di voci, quindi esci | No |
| `--modules` | Mostra lo stato di tutti i moduli dati scaricabili | No |
| `--download MODULE` | Scarica un modulo dati (o "all") | No |
| `--db SIZE` | Dimensione del database EOL per `--setup`: mini, normal, large (predefinito: normal) | No |
| `--history` | Mostra la tabella della cronologia delle scansioni ed esci | No |
| `--diff` | Confronta le ultime due scansioni salvate ed esci | No |
| `--since DAYS` | Con `--diff`: confronta con una scansione di almeno N giorni fa | No |
| `--check-version` | Verifica la presenza di una release più recente di SunsetScan su GitHub | No |
| `--update` | Recupera l'ultimo codice da GitHub e reinstalla i requisiti | No |
| `--verbose` | Abilita la registrazione di debug | No |
| `--no-color` | Disabilita l'output a colori (utile per i file di log) | No |
| `--quiet` | Disattiva le barre di avanzamento (i riscontri vengono comunque mostrati) | No |
| `--safe-mode` | Forza una scansione più delicata: nmap limitato, uso ridotto di masscan, meno worker, salta le sonde pesanti | No |
| `--no-safe-mode` | Disabilita la modalità sicura automatica | No |
| `--version` | Mostra il numero di versione ed esci | No |

---

## Profili di scansione

| Profilo | flag nmap | Velocità | Root | Ideale per |
|---|---|---|---|---|
| **PING** | `-sn` | ~30s | No | Trovare rapidamente i dispositivi attivi |
| **QUICK** | `-T4 -F -sV --version-intensity 2` | 1-3 min | No | Primo sguardo a una rete (con rilevamento leggero della versione) |
| **FULL** | `-T4 -A -sV -O --osscan-guess` | 5-15 min | Sì | Analisi approfondita di host specifici |
| **STEALTH** | `-sS -T2 -sV` | 10-30 min | Sì | Scansione a basso rumore |
| **IOT** | `-T4 -sV -p 23,80,443,8080,8443,554,1900,5000,5001,7547,49152 --open` | 1-3 min | No | Telecamere, router, dispositivi smart |
| **SMB** | `-T4 -sV -p 135,139,445,137,138 --script smb-security-mode,smb2-security-mode,smb-vuln-ms17-010 --open` | 1-3 min | Sì | Condivisioni Windows, controllo EternalBlue |

> **Suggerimento:** FULL e STEALTH ricadono automaticamente su flag non-root quando vengono eseguiti senza sudo. Il rilevamento del sistema operativo non sarà disponibile, ma la scansione delle porte e il rilevamento dei servizi funzionano comunque.

### Sicurezza dell'audit delle password predefinite

Il test delle password predefinite non viene mai abilitato automaticamente. Nella modalità CLI, aggiungi `--check-defaults`; nella modalità guidata `-i`, scegli l'audit delle password predefinite quando richiesto. SunsetScan applica quindi una policy conservativa:

- nessun credential spraying generico di username/password per impostazione predefinita
- testa solo le credenziali che corrispondono al vendor e al modello/famiglia rilevati
- salta i dispositivi con default di etichetta/PIN unici, come molte stampanti HP
- limita i tentativi a 2 per host e 1 per servizio per impostazione predefinita
- attende 2 secondi tra i tentativi che usano credenziali
- si ferma immediatamente se un dispositivo restituisce segnali di lockout o di rate limiting

Il database integrato è volutamente piccolo e basato su fonti. I grandi moduli di credenziali scaricati vengono conservati come dati di riferimento, ma l'audit sicuro non li utilizza a meno che `Settings.auth_allow_module_credentials` non sia esplicitamente abilitato da uno sviluppatore.

### Modalità sicura e run di validazione

La modalità sicura viene automaticamente consigliata su host a basso consumo, host che sembrano appliance Pi-hole/gateway e su egress Wi-Fi. Può anche essere forzata con:```bash
python3 sunsetscan.py --full-assessment --target 192.168.1.0/24 --safe-mode

In modalità sicura SunsetScan:

  • rileva prima gli host attivi e scansiona solo quelli durante le valutazioni complete
  • applica lo stesso comportamento di scanner sicuro da CLI, vecchio menu e modalità guidata -i
  • rimuove il fingerprinting del sistema operativo dalle scansioni estese
  • mantiene le scansioni STEALTH/FULL ampie entro limiti rapidi/top-port
  • salta i masscan sweep su tutte le porte per i profili ampi
  • riduce il numero di worker e salta le sonde TLS pesanti
  • applica un timeout per nmap in modo che un profilo non possa bloccarsi indefinitamente

Per il test di regressione assistito da root su tutte le modalità, usa il collector di validazione:```bash sudo bash scripts/sudo_network_validation.sh

root@kitploit:~
Di default testa `192.168.1.0/24` su PING, QUICK, SMB, STEALTH e
FULL, copia i report HTML generati nella directory di
validazione e scrive un archivio compresso in `reports/`. Report, log,
pcap e archivi sono ignorati da git e non dovrebbero essere committati.

Override utili:```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

Gestione della Cache

SunsetScan non chiama mai API esterne durante una scansione. Tutti i dati vengono letti dai file di cache locali in data/cache/.

root@kitploit:~
Le scansioni funzionano normalmente anche con cache obsoleta o mancante — potresti semplicemente avere dati CVE obsoleti.

---

## Rilevamento dispositivi rogue```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
RilevamentoGravitàSignificato
Dispositivo sconosciuto rilevatoMediumMAC non presente nella baseline — dispositivo nuovo o non autorizzato
IP del dispositivo cambiatoLow

Nota: La baseline richiede root/sudo per il rilevamento dell'indirizzo MAC tramite nmap.


Report HTML

Ogni --full-assessment produce un report HTML autonomo con:

  • Dashboard di gravità — conteggi badge (Critical/High/Medium/Low/Info), barra dei colori, statistiche riassuntive
  • Punteggi di rischio — punteggio 0-100 per dispositivo con etichetta della fascia di rischio
  • Tabella di tutti i rilevamenti — ogni rilevamento su tutti gli host, ordinato per gravità
  • Sezioni per host — sezione comprimibile per dispositivo con schede dei rilevamenti, tabella delle porte aperte, stato EOL
  • Schede dei rilevamenti — badge di gravità, titolo, "Cosa è stato trovato", "Cosa significa" (in linguaggio semplice), "Cosa fare" (passaggi numerati), evidenza, ID CVE
  • Raccomandazioni — elenco di azioni in ordine di priorità

I report si aprono in qualsiasi browser senza bisogno di internet.


Identificazione dei dispositivi

SunsetScan identifica automaticamente i dispositivi di rete combinando le prove provenienti da 14 diverse fonti. Ogni fonte contribuisce con un vendor, un modello, una versione o un tipo di dispositivo con un punteggio di confidenza. L'algoritmo di fusione somma le fonti concordanti (con bonus per l'accordo multi-fonte) e penalizza le prove contrastanti.

Inventario rapido degli asset

Per vedere cosa c'è sulla tua rete senza eseguire controlli di sicurezza:```bash python3 sunsetscan.py --identify --target 192.168.1.0/24

root@kitploit:~
Esegue una scansione delle porte con banner grabbing e stampa una tabella di identificazione dei dispositivi. Nessuna analisi di sicurezza, nessun report — solo un inventario rapido.

### Evidence Sources

| Source | What it reads | Confidence |
|--------|--------------|------------|
| MAC OUI | IEEE vendor prefix from MAC address | 0.40-0.45 |
| nmap OS | OS fingerprint guess | varies |
| HTTP fingerprint | Device type, model, firmware from web UI | 0.50+ |
| HTTP headers | Server, X-Powered-By response headers | 0.20-0.50 |
| TLS certificate | CN, issuer, organization fields | 0.35 |
| SSH banner | SSH daemon identification string | 0.10-0.70 |
| UPnP | SSDP manufacturer, model, device type | 0.75 |
| SNMP sysDescr | System description from SNMP MIB | 0.85 |
| Wappalyzer | CPE strings and technology categories | 0.30-0.45 |
| mDNS/Zeroconf | Service type advertisements | 0.55 |
| JA3S | TLS handshake fingerprint database | 0.50 |
| FTP banner | FTP server software identification | 0.25-0.35 |
| Port heuristics | Open port combination patterns | 0.10-0.70 |
| nmap services | Service product and version fields | 0.45 |

I risultati dell'identificazione compaiono in:
- Tabella dell'inventario dei dispositivi nel terminale (durante la scansione e tramite `--identify`)
- Schede della topologia del report HTML e sezione inventario dispositivi
- Sezione `device_identities` dell'export JSON
- Opzione [8] Device Inventory nel menu della modalità interattiva

---

## Livelli di gravità

| Level | Colore | Intervallo CVSS | Cosa significa | Quando agire |
|---|---|---|---|---|
| **CRITICAL** | Rosso | >= 9.0 | Credenziali predefinite, CVE sfruttabile, SSL 2.0 | Oggi |
| **HIGH** | Arancione | 7.0-8.9 | Telnet/FTP aperti, certificato scaduto, TLS 1.0, software EOL | Questa settimana |
| **MEDIUM** | Giallo | 4.0-6.9 | Certificato autofirmato, esposizione UPnP, dispositivo rogue, HSTS mancante | Pianificare la correzione |
| **LOW** | Blu | < 4.0 | Avvicinamento a EOL, X-Frame-Options mancante, IP del dispositivo cambiato | Monitorare e pianificare |
| **INFO** | Grigio | - | Dispositivo identificato, dettagli del certificato, controllo DNS superato | Nessuna azione |

---

## Struttura del progetto```
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

Risoluzione dei problemi

nmap non trovato```bash

Debian/Ubuntu

sudo apt install nmap

Fedora

sudo dnf install nmap

Arch

sudo pacman -S nmap

macOS

brew install nmap

root@kitploit:~
**Permesso negato / rilevamento del sistema operativo non funzionante**

I profili FULL, STEALTH e SMB richiedono privilegi elevati. Senza root, questi profili ripiegano automaticamente su flag non-root (rilevamento del sistema operativo e scansione SYN disabilitati, ma la scansione di porte/versioni funziona ancora).```bash
# For full capabilities:
sudo python3 sunsetscan.py --target 192.168.1.0/24 --profile FULL

WSL2 suggerisce una rete errata (172.x.x.x)

Su WSL2, SunsetScan rileva l'adattatore virtuale e ripiega su 192.168.1.0/24. Se la tua rete domestica usa una sottorete diversa, specificala con --target:```bash python3 sunsetscan.py --target 192.168.0.0/24

root@kitploit:~
**Avvisi di cache all'avvio della scansione**```
WARNING: CVE data is 12 days old — run: python sunsetscan.py --update-cache

Scans work fine with stale data. Run --update-cache to refresh.

Permesso negato durante il download dei moduli

Se il download dei moduli fallisce con Permission denied: .../data/cache/..., la cache è stata probabilmente creata con sudo. Correggi la proprietà una volta, poi esegui il setup e i download dei moduli come utente normale:```bash cd ~/sunsetscan sudo chown -R "$USER:$USER" data/cache ./sunsetscan --download all

root@kitploit:~
**I controlli SNMP non funzionano**

SunsetScan supporta sia pysnmp v4 (sincrono) che v7 (asincrono). Se vedi errori di importazione, aggiorna pysnmp:```bash
pip install --upgrade pysnmp

Disclaimer — Solo uso autorizzato

SunsetScan è uno strumento di audit di sicurezza pensato per l'uso su reti e dispositivi di tua proprietà o per i quali disponi di esplicita autorizzazione scritta al test.

Eseguire scansioni di rete contro sistemi che non possiedi o per i quali non sei autorizzato a testare può essere illegale a prescindere dalle intenzioni. Gli autori non si assumono alcuna responsabilità per un uso improprio.

SunsetScan è completamente non distruttivo e di sola lettura. Non sfrutta vulnerabilità, non consegna payload e non modifica alcuna configurazione sui dispositivi scansionati. Il test delle credenziali con --check-defaults è opt-in, limitato, ritardato, orientato al modello esatto e si ferma in presenza di segnali di blocco/rate-limit; non è una funzionalità di forza bruta.


Licenza

Il repository SunsetScan e il codice dell'applicazione sono concessi in licenza sotto la MIT License — Copyright 2024 SunsetScan Contributors.

Solo gli artefatti del database EOL hardware di SunsetScan presenti in data/hardware_eol/ sono concessi in licenza separatamente: questo database è concesso in licenza sotto la Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). Vedi data/hardware_eol/LICENSE.md.


Riconoscimenti

  • nmap — motore di scansione
  • python-nmap — interfaccia Python per nmap
  • OSV.dev — database delle vulnerabilità
  • Rich — formattazione del terminale
  • Jinja2 — template per report HTML
  • cryptography — ispezione dei certificati TLS
  • scapy — cattura raw dei pacchetti e scansione ARP
  • danielmiessler/SecLists — liste di credenziali e SNMP
  • ihebski/DefaultCreds-cheat-sheet — credenziali dei vendor
  • enthec/webappanalyzer — rilevamento delle tecnologie web
  • salesforce/ja3 — fingerprinting TLS
  • many-passwords — credenziali di telecamere/DVR
Scarica lo strumento
PiattaformaLivello di supportoNote
Linux (Debian, Ubuntu, Fedora, Arch, ecc.)Supporto completoEsperienza migliore — tutte le funzionalità funzionano nativamente
WSL2 (Windows Subsystem for Linux)Supporto completoModalità consigliata per eseguirlo su macchine Windows
macOSParzialeLa scansione di base funziona; alcune funzionalità (ARP, cattura passiva) potrebbero richiedere configurazione aggiuntiva
Windows (CMD/PowerShell nativo)Non supportatoMancano i raw socket, os.geteuid(), /proc, ip route e termios — usa WSL2
FlagEffetto
(nessun flag)Installazione predefinita: pacchetti di sistema + venv + dipendenze Python + self-test
--forceElimina e ricostruisce il venv da zero (da usare dopo l'aggiornamento di Python)
--symlinkInstalla anche /usr/local/bin/sunsetscan così puoi eseguire sunsetscan da qualsiasi posizione
--no-systemSalta il passaggio apt/dnf/ecc. (da usare se i tuoi strumenti di sistema sono già installati)
--helpMostra tutte le opzioni
CheckerCosa rileva
SSL/TLSCertificati scaduti/auto-firmati, cifrari deboli, TLS 1.0/1.1, SSL 2.0/3.0, chiavi RSA piccole
SSHScambio di chiavi debole, cifrari/MAC deboli, SSHv1, chiavi host piccole, analisi grezza KEXINIT
SMBSMBv1, EternalBlue (MS17-010), condivisioni anonime, firma SMB disabilitata, divulgazione NTLM
FTPLogin anonimo, credenziali in chiaro, STARTTLS mancante
SNMPStringhe community predefinite (public/private), SNMPv1, estrazione sysDescr
WebHeader di sicurezza mancanti, moduli di login su HTTP, elenco directory, pannelli di amministrazione esposti
DNSRilevamento di dirottamento DNS (confronto con Cloudflare 1.1.1.1)
UPnPScoperta SSDP, esposizione del port-mapping WAN sui router
mDNSScoperta dispositivi Zeroconf/Bonjour, trova host che sfuggono alle scansioni delle porte
ARPRilevamento di spoofing ARP, tracciamento dei cambi di indirizzo MAC (richiede root)
Credenziali predefiniteAudit opzionale delle impostazioni di fabbrica predefinite utilizzando corrispondenze esatte dispositivo/modello, tentativi limitati e ritardi
Protocolli non sicuriTelnet, FTP, TFTP, rsh, rlogin, rexec segnalati per gravità
ModuloSorgenteCosa aggiunge
credentials-minidanielmiessler/SecListsTop 50 credenziali predefinite (dati di riferimento scaricabili; non utilizzati dall'audit sicuro se non esplicitamente abilitati nelle impostazioni)
credentials-fullihebski/DefaultCreds-cheat-sheetOltre 2860 credenziali specifiche per vendor (dati di riferimento scaricabili; non utilizzati dall'audit sicuro se non esplicitamente abilitati nelle impostazioni)
wappalyzer-minienthec/webappanalyzerTop 500 tecnologie web (predefinito)
wappalyzer-fullenthec/webappanalyzerTutte le 7515 tecnologie web
ja3-signaturessalesforce/ja3Database di impronte digitali TLS
snmp-communitydanielmiessler/SecListsStringhe community SNMP estese
camera-credentialsmany-passwords/many-passwordsPredefiniti di telecamere IP/DVR/NVR (dati di riferimento scaricabili; non utilizzati dall'audit sicuro se non esplicitamente abilitati nelle impostazioni)
mac-ouiIEEE Standards AssociationDatabase vendor dei prefissi MAC (predefinito)
hardware-eol-homeNoCoderRandom/sunsetscanProfilo ciclo di vita/EOL hardware Home/SOHO (predefinito; licenza database: CC BY-NC 4.0)
hardware-eol-officeNoCoderRandom/sunsetscanProfilo ciclo di vita/EOL hardware Home più piccolo ufficio
hardware-eol-enterpriseNoCoderRandom/sunsetscanProfilo ciclo di vita/EOL hardware Home, office ed enterprise/campus/datacenter
hardware-eol-industrialNoCoderRandom/sunsetscanProfilo ciclo di vita/EOL hardware Home, office e industriale/OT
hardware-eol-service-providerNoCoderRandom/sunsetscanProfilo ciclo di vita/EOL hardware Home, office, enterprise e service-provider
hardware-eol-fullNoCoderRandom/sunsetscanProfilo ciclo di vita/EOL hardware smart-pack completo
hardware-eolNoCoderRandom/sunsetscanModulo di compatibilità legacy per il ciclo di vita/EOL hardware completo suddiviso
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
FileContenutiIntervallo di aggiornamento
data/cache/cve_cache.jsonDati CVE indicizzati per prodotto:versioneOgni 7 giorni
data/cache/*.jsonDate EOL per 150+ prodotti, memorizzate per prodottoOgni 30 giorni
data/cache/hardware_eol/sunsetscan_hardware_eol_index.json più records/*.jsonDatabase del ciclo di vita/EOL dell'hardwareOgni 30 giorni
data/cache/hardware_eol/manifest.json, indexes/*.json, e records/<pack>/*.jsonProfili del ciclo di vita/EOL dell'hardware Smart-packOgni 30 giorni
data/cache/cache_meta.jsonTimestamp degli ultimi aggiornamentiAutomatico
sunsetscan --cache-status # See current cache state
sunsetscan --update-cache # Refresh stale caches
MAC noto su un IP diverso (di solito normale DHCP)
Dispositivo visto in precedenza offlineInfoDispositivo della baseline che non risponde