Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
sunsetscan — Auditoría de seguridad de red local con EOL, CVE, identidad de dispositivos e informes HTML | Kitploit
Herramientas/GitHubGitHub/nocoderrandom/sunsetscan
ReconocimientoEscáneres de VulnerabilidadesSeguridad IoTAtaques de ContraseñasAuditoría de ConfiguraciónRecopilación de InformaciónSeguridad de Redes
GitHubnocoderrandom/sunsetscan

sunsetscan

Auditoría de seguridad de red local con EOL, CVE, identidad de dispositivos e informes HTML

Ver Repositorio
3hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

SunsetScan

Auditoría de seguridad de red para humanos — impulsado por nmap, hecho para todos.

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

Sitio web: sunsetscan.com


SunsetScan es una herramienta de auditoría de seguridad de red local para propietarios de redes domésticas y personal de TI que quieren la profundidad de nmap sin aprender la sintaxis de nmap. Apúntala a tu red y encontrará todos los dispositivos activos, identificará el software en ejecución, lo contrastará con bases de datos de vulnerabilidades conocidas y registros de fin de vida útil, sondeará interfaces web en busca de debilidades comunes, opcionalmente realizará una auditoría de credenciales predeterminadas de fábrica segura contra bloqueos, y producirá un informe HTML limpio con explicaciones en lenguaje sencillo y pasos numerados para corregir cada hallazgo. Es completamente de solo lectura y no destructivo — nada en tu red se modifica jamás.


Soporte de plataformas

¿Por qué Linux? SunsetScan depende de raw sockets (escaneo ARP, captura pasiva de paquetes), API específicas de Linux (/proc, ip route) y comprobaciones de privilegios (os.geteuid()) que no están disponibles en Windows nativo. WSL2 proporciona un kernel Linux completo y es la ruta recomendada para usuarios de Windows.


Instalación

SunsetScan incluye un instalador que se encarga de las herramientas del sistema (nmap, masscan, git, python3-venv), crea un entorno virtual de Python local al proyecto e instala todas las dependencias de Python en su interior. Nunca se te pedirá que ejecutes pip install como root — eso es importante en Debian/Pi OS modernos; consulta ¿Por qué un venv? más abajo.

Plataformas de nivel 1 (probadas completamente)

Debian, Ubuntu, Raspberry Pi OS (Bookworm y versiones posteriores), Linux Mint, Pop!_OS.

Plataformas de nivel 2 (mejor esfuerzo, mismo script)

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

Cuatro formas de instalar: elige una

1. Paquete Debian/Ubuntu

Recomendado para Debian, Ubuntu, Raspberry Pi OS, Linux Mint y 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 de una línea

Clona el repositorio en `~/sunsetscan` y ejecuta el instalador:```bash
curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

¿Lo quieres en otro lugar? Establece INSTALL_DIR:```bash INSTALL_DIR=/opt/sunsetscan curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

root@kitploit:~
> **Una nota sobre `curl | bash`**: es cómodo, pero significa ejecutar un script que no has leído. Si prefieres inspeccionarlo primero, usa la opción 3 o la 4.

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

4. Instalación manual (control total, cuatro comandos)```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:~
(Sustituye el gestor de paquetes de tu distribución por `apt` — `dnf`, `pacman`, `zypper` o `brew`. El paquete avahi es `avahi-tools` en Fedora/RHEL, `avahi` en Arch, `avahi-utils` en openSUSE, y no es necesario en macOS.)

### Después de instalar — primera ejecución```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

The ./sunsetscan launcher auto-activates the venv — you don't need to source venv/bin/activate ever. Use sudo for scans that need raw sockets, but run --setup, --download, and --update-cache as your normal user so cache files stay writable from the TUI.

Installer flags

Re-running ./install.sh is safe and idempotent — it detects existing components and reuses them.

Why a venv?

Modern Debian-based distributions (Debian Bookworm, Raspberry Pi OS Bookworm, Ubuntu 23.04+) ship with PEP 668 enforcement. This makes pip install fail when run as root against the system Python:``` error: externally-managed-environment × This environment is externally managed

root@kitploit:~
Dos de las dependencias de SunsetScan (`pysnmp` v6 en particular) necesitan versiones más nuevas que las que incluyen los repositorios de apt, por lo que una instalación solo con apt no es posible. La solución del instalador es la estándar: instalar las herramientas del sistema (nmap, masscan, libpcap, avahi-utils) mediante apt, y colocar las dependencias Python de SunsetScan en un directorio local del proyecto `./venv`. No se toca nada a nivel de sistema, por lo que PEP 668 no aplica, y desinstalar SunsetScan es simplemente `rm -rf ~/sunsetscan`.

### Opcional: mantener SunsetScan ejecutándose en segundo plano

Una evaluación completa de una subred /24 en una Raspberry Pi puede tardar entre 10 y 30 minutos. Usa `tmux` o `screen` para que el escaneo sobreviva a una desconexión 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.

Actualizando SunsetScan```bash

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

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

WSL2 en Windows

Windows no se admite directamente (SunsetScan necesita sockets sin procesar, /proc y os.geteuid), pero WSL2 funciona bien:```powershell wsl --install -d Ubuntu # in PowerShell, as Administrator

root@kitploit:~
Reinicia, abre **Ubuntu** desde el menú Inicio y sigue la instalación estándar anterior. WSL2 usa un adaptador de red virtual — pasa tu subred real con `--target` si la detección automática elige la incorrecta.

---

## Requisitos

| Requisito | Mínimo | Notas |
|---|---|---|
| **Python** | 3.9+ | 3.12 recomendado |
| **nmap** | Cualquier versión reciente | Debe estar en el PATH del sistema |
| **SO** | Linux (nativo o WSL2) | Ver [Soporte de plataformas](#platform-support) |
| **masscan** | Cualquiera | Opcional — descubrimiento de puertos más rápido |
| **avahi-utils** | Cualquiera | Opcional — proporciona `avahi-browse`, utilizado para descubrimiento mDNS fiable de dispositivos Apple / Bonjour / Sleep-Proxy. Si no está presente, recurre a python `zeroconf`. |
| **git** | Cualquiera | Opcional — utilizado para `--setup` y `--update` |
| **Privilegios** | Usuario estándar | Se necesita root/sudo para los perfiles FULL, STEALTH, SMB, detección ARP y captura pasiva |

---

## Inicio Rápido```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

Características

Descubrimiento de red

  • Descubre todos los hosts activos mediante un barrido rápido de ping
  • Resuelve nombres de host y detecta direcciones MAC con búsqueda de proveedor/fabricante
  • Entrada de objetivos flexible: CIDR, comodín, rango de IP, separados por comas o nombre de host
  • Integración opcional con masscan para un descubrimiento de puertos más rápido en redes grandes
  • Escaneo híbrido: captura pasiva en segundo plano (mDNS/SSDP/DHCP) combinada con escaneo activo

Escaneo de puertos y servicios

  • Seis perfiles de escaneo: QUICK, FULL, STEALTH, PING, IOT, SMB
  • Las evaluaciones completas descubren primero los hosts activos y luego escanean solo los servicios de esos hosts descubiertos, en lugar de escanear a ciegas cada dirección en el CIDR objetivo
  • Captura de banners simultánea en todos los puertos abiertos (grupo de 50 hilos)
  • Huella de sistema operativo con porcentaje de confianza
  • Integración con NSE (Nmap Scripting Engine) para una detección mejorada de dispositivos
  • Huella HTTP para identificar routers, cámaras, dispositivos NAS, impresoras e IoT
  • Degradación automática de privilegios root: los perfiles FULL/STEALTH se degradan correctamente cuando se ejecutan sin sudo
  • Modo seguro para hosts de baja potencia, Wi-Fi, WSL/NAT y ejecuciones de validación: limita los workers, omite barridos amplios de masscan en todos los puertos, acota los conjuntos de puertos de nmap y aplica tiempos de espera por comando
  • Análisis de seguridad paralelo — todas las comprobaciones por host (SSL, SSH, FTP, SMB, SNMP, Web) se ejecutan simultáneamente entre hosts y dentro de cada host mediante grupos de hilos
  • El análisis de seguridad de la fase 7 se completa en menos de 10 segundos, independientemente del tamaño de la red
  • Comprobación de preparación previa al escaneo — advierte si falta nmap, si las bases de datos de CVE/EOL están vacías o si los módulos predeterminados no están instalados. Se ejecuta antes de cada escaneo y no bloquea el escaneo.

Comprobaciones de seguridad

SunsetScan ejecuta 12 módulos de comprobación de seguridad durante una evaluación completa:

Inteligencia de vulnerabilidades

  • Correlación de CVE — asigna las versiones de servicios detectadas a CVE conocidos mediante OSV.dev
  • Comprobación de EOL de software — datos locales de ciclo de vida en caché para más de 150 productos de software
  • Comprobación de ciclo de vida de hardware — ampliada base de datos de EOL de hardware de SunsetScan con 64,245 registros de ciclo de vida, 51,452 resúmenes de modelos y 122 proveedores representados. Señala routers, conmutadores, NAS, cámaras, impresoras, puntos de acceso, equipos industriales/OT y equipos de proveedores de servicios con estado no compatible confirmado o señales de ciclo de vida del proveedor que requieren revisión.
  • Perfiles inteligentes de EOL de hardware — los usuarios domésticos reciben el perfil predeterminado más pequeño hardware-eol-home, mientras que los perfiles de oficina, empresa, industria, proveedor de servicios y completo están disponibles para escaneos más amplios.
  • Huella JA3S TLS — identifica el software del servidor a partir de firmas de handshake TLS
  • Totalmente sin conexión durante los escaneos — no se realizan llamadas API externas durante el escaneo. Las fuentes de módulos de EOL de software, CVE y GitHub solo se contactan mediante --setup, --update-cache y --download. Los escaneos funcionan sin conexión a internet siempre que las cachés estén pobladas.
  • Actualización semanal de CVE, actualización mensual de EOL — controladas por ti

Identificación de dispositivos

  • 14 extractores de evidencia fusionan MAC OUI, sistema operativo de nmap, huella HTTP, certificados TLS, banners SSH, UPnP, sysDescr SNMP, Wappalyzer, mDNS, huellas JA3S TLS, banners FTP, heurísticas de puertos y campos de servicio de nmap en una identidad de dispositivo unificada por host
  • Identifica proveedor, modelo, versión de firmware y tipo de dispositivo con puntuación de confianza (bonificaciones por acuerdo cuando múltiples fuentes lo confirman)
  • Admite más de 130 alias de proveedores para la normalización de nombres
  • Los resultados se muestran en una tabla de terminal y en el inventario de dispositivos del informe HTML
  • Modo rápido de inventario de activos: la opción --identify omite las comprobaciones de seguridad
  • Mapeo persistente de MAC a identidad entre escaneos

Sistema modular de datos

SunsetScan incluye módulos de datos descargables y perfiles de EOL de hardware que amplían las capacidades de detección:

La base de datos de ciclo de vida de hardware ahora está dividida en perfiles inteligentes descargables: hardware-eol-home es la instalación predeterminada, mientras que hardware-eol-full proporciona cobertura completa. La compilación canónica completa actualmente contiene 64,245 registros en 122 proveedores, pero los usuarios domésticos solo necesitan el perfil doméstico más pequeño.

root@kitploit:~
### Detección de dispositivos no autorizados
- Guarda una instantánea de tu red como línea base de confianza
- Los escaneos futuros marcan automáticamente las direcciones MAC desconocidas que no estén en la línea base
- Detecta dispositivos conocidos en direcciones IP inesperadas

### Puntuación de riesgo
Cada dispositivo recibe una puntuación de riesgo (0-100) basada en la gravedad y el número de hallazgos:

| Puntuación | Banda |
|---|---|
| 0-10 | Riesgo mínimo |
| 11-30 | Riesgo bajo |
| 31-60 | Riesgo medio |
| 61-80 | Riesgo alto |
| 81-100 | Riesgo crítico |

### Informes
- **Informe HTML profesional** — panel de severidad, secciones por host, tarjetas de hallazgos con explicaciones en lenguaje sencillo, recomendaciones priorizadas
- **Exportación JSON** — salida estructurada legible por máquina
- Los informes son completamente autocontenidos — un solo archivo HTML, sin dependencias externas
- Los perfiles específicos como SMB mantienen visibles en el informe los hosts descubiertos
  incluso cuando no hay puertos de servicio coincidentes abiertos
- Las comprobaciones a nivel de red, como DNS, UPnP y las notas de tiempo de ejecución del escaneo, se separan
  de los hallazgos por dispositivo; las puntuaciones de riesgo de los dispositivos solo se muestran para hosts reales
- Todos los hallazgos codificados por colores: Crítico, Alto, Medio, Bajo, Info

### Historial de escaneos y comparación de diferencias
- Cada escaneo se guarda automáticamente como una instantánea JSON comprimida con gzip
- Consulta escaneos anteriores con `--history`
- Compara dos escaneos cualesquiera con `--diff` para ver hosts nuevos, puertos cerrados y hallazgos nuevos/resueltos
- Compara con un escaneo de hace N días con `--diff --since N`
- El historial se conserva durante 90 días por defecto

### Interfaz de usuario
- **Modo interactivo** guiado (`-i`) — menús de varios niveles para escaneo, análisis, exportación y módulos
- **Menú de estilo antiguo** — se inicia al ejecutar sin argumentos
- Modo CLI directo — apto para scripts y automatización
- Salida de terminal en color avanzada con barras de progreso, indicadores de actividad y paneles de resumen

---

## Todas las opciones de CLI

| Opción | Descripción | Root |
|---|---|---|
| `--target TARGET` | IP, rango CIDR, nombre de host o rango a escanear | No |
| `--profile PROFILE` | Perfil de escaneo: QUICK, FULL, STEALTH, PING, IOT, SMB (por defecto: QUICK) | Varía |
| `-i`, `--interactive` | Inicia el modo interactivo guiado | No |
| `--full-assessment` | Evaluación completa + exportación automática a HTML; la auditoría de credenciales sigue siendo opt-in | No |
| `--identify` | Ejecuta solo la identificación de dispositivos (omite las comprobaciones de seguridad) | No |
| `--nse` | Habilita el motor de scripting de Nmap para una detección mejorada | No |
| `--check-defaults` | Activa la auditoría de credenciales predeterminadas de fábrica a prueba de bloqueos (solo dispositivos propios) | No |
| `--save-baseline` | Guarda el escaneo como línea base de dispositivos de confianza para la detección de dispositivos no autorizados | No |
| `--setup` | Asistente de configuración inicial (dependencias + descarga de caché) | No |
| `--update-cache` | Actualiza manualmente las cachés de datos CVE y EOL | No |
| `--cache-status` | Muestra la antigüedad de la caché y el número de entradas, y sale | No |
| `--modules` | Muestra el estado de todos los módulos de datos descargables | No |
| `--download MODULE` | Descarga un módulo de datos (o "all") | No |
| `--db SIZE` | Tamaño de la base de datos EOL para `--setup`: mini, normal, large (por defecto: normal) | No |
| `--history` | Muestra la tabla del historial de escaneos y sale | No |
| `--diff` | Compara los dos últimos escaneos guardados y sale | No |
| `--since DAYS` | Con `--diff`: compara con un escaneo de al menos N días de antigüedad | No |
| `--check-version` | Comprueba si hay una versión más reciente de SunsetScan en GitHub | No |
| `--update` | Obtiene el código más reciente de GitHub y reinstala las dependencias | No |
| `--verbose` | Habilita el registro de depuración | No |
| `--no-color` | Desactiva la salida en color (útil para archivos de registro) | No |
| `--quiet` | Suprime las barras de progreso (los hallazgos se siguen mostrando) | No |
| `--safe-mode` | Fuerza un escaneo más suave: nmap con límites, menor uso de masscan, menos workers, omite sondas pesadas | No |
| `--no-safe-mode` | Desactiva el modo seguro automático | No |
| `--version` | Muestra el número de versión y sale | No |

---

## Perfiles de escaneo

| Perfil | Opciones de nmap | Velocidad | Root | Ideal para |
|---|---|---|---|---|
| **PING** | `-sn` | ~30s | No | Encontrar dispositivos activos rápidamente |
| **QUICK** | `-T4 -F -sV --version-intensity 2` | 1-3 min | No | Primera inspección de una red (con detección ligera de versiones) |
| **FULL** | `-T4 -A -sV -O --osscan-guess` | 5-15 min | Sí | Análisis profundo de hosts específicos |
| **STEALTH** | `-sS -T2 -sV` | 10-30 min | Sí | Escaneo de bajo ruido |
| **IOT** | `-T4 -sV -p 23,80,443,8080,8443,554,1900,5000,5001,7547,49152 --open` | 1-3 min | No | Cámaras, routers, dispositivos inteligentes |
| **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í | Recursos compartidos de Windows, comprobación de EternalBlue |

> **Consejo:** FULL y STEALTH recurren automáticamente a opciones que no requieren root cuando se ejecutan sin sudo. La detección del sistema operativo no estará disponible, pero el escaneo de puertos y la detección de servicios seguirán funcionando.

### Seguridad de la auditoría de contraseñas predeterminadas

Las pruebas de contraseñas predeterminadas nunca se habilitan automáticamente. En modo CLI, añade
`--check-defaults`; en el modo guiado `-i`, elige la auditoría de contraseñas predeterminadas cuando se te
solicite. SunsetScan aplica entonces una política conservadora:

- sin rociado genérico de nombres de usuario/contraseñas por defecto
- solo prueba credenciales que coinciden con el fabricante y el modelo/familia detectados
- omite dispositivos con valores predeterminados de etiqueta/PIN únicos, como muchas impresoras HP
- limita los intentos a 2 por host y 1 por servicio por defecto
- espera 2 segundos entre intentos con credenciales
- se detiene de inmediato si un dispositivo devuelve señales de bloqueo o de límite de tasa

La base de datos integrada es intencionadamente pequeña y está respaldada por fuentes. Los módulos
grandes de credenciales descargados se conservan como datos de referencia, pero la auditoría segura
no los utiliza a menos que `Settings.auth_allow_module_credentials` esté explícitamente
habilitado por un desarrollador.

### Modo seguro y ejecuciones de validación

El modo seguro se recomienda automáticamente en hosts de bajo consumo, hosts que parecen
dispositivos Pi-hole/pasarela y en la salida Wi-Fi. También se puede forzar con:```bash
python3 sunsetscan.py --full-assessment --target 192.168.1.0/24 --safe-mode

En modo seguro, SunsetScan:

  • descubre primero los hosts activos y solo escanea esos hosts durante evaluaciones completas
  • aplica el mismo comportamiento seguro del escáner desde la CLI, el menú antiguo y el modo guiado -i
  • elimina la detección de sistema operativo de los escaneos amplios
  • mantiene los escaneos amplios STEALTH/FULL acotados con límites de modo rápido/puertos principales
  • omite los barridos masscan de todos los puertos para perfiles amplios
  • reduce el número de trabajadores y omite las sondas TLS pesadas
  • aplica un tiempo de espera por nmap para que un perfil no se detenga indefinidamente

Para las pruebas de regresión asistidas por root en todos los modos, usa el recopilador de validación:```bash sudo bash scripts/sudo_network_validation.sh

root@kitploit:~
Por defecto prueba `192.168.1.0/24` en PING, QUICK, SMB, STEALTH y
FULL, copia los informes HTML generados al directorio de validación
y escribe un archivo comprimido en `reports/`. Los informes, registros,
pcaps y archivos son ignorados por git y no deben enviarse al repositorio.

Overrides útiles:```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

Gestión de caché

SunsetScan nunca llama a APIs externas durante un escaneo. Todos los datos se leen de archivos de caché locales en data/cache/.

root@kitploit:~
Los escaneos funcionan normalmente con caché obsoleta o ausente — solo que podrías tener datos CVE desactualizados.

---

## Detección de dispositivos no autorizados```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
FindingSeverityMeaning
Dispositivo desconocido detectadoMedioMAC no está en la línea base — dispositivo nuevo o no autorizado
IP del dispositivo cambiadaBajo

Nota: La línea base requiere root/sudo para la detección de direcciones MAC mediante nmap.


Informe HTML

Cada --full-assessment produce un informe HTML autónomo con:

  • Panel de gravedad — recuentos de insignias (Crítico/Alto/Medio/Bajo/Info), barra de color, estadísticas resumidas
  • Puntuaciones de riesgo — puntuación de 0 a 100 por dispositivo con etiqueta de banda de riesgo
  • Tabla de todos los hallazgos — cada hallazgo en todos los hosts, ordenado por gravedad
  • Secciones por host — sección plegable por dispositivo con tarjetas de hallazgo, tabla de puertos abiertos, estado de fin de vida útil (EOL)
  • Tarjetas de hallazgo — insignia de gravedad, título, "Qué se encontró", "Qué significa esto" (en lenguaje sencillo), "Qué hacer" (pasos numerados), evidencia, IDs de CVE
  • Recomendaciones — lista de acciones priorizadas

Los informes se abren en cualquier navegador sin necesidad de internet.


Identificación de dispositivos

SunsetScan identifica automáticamente los dispositivos de red combinando evidencia de 14 fuentes diferentes. Cada fuente aporta un fabricante, modelo, versión o tipo de dispositivo con una puntuación de confianza. El algoritmo de fusión suma las fuentes que coinciden (con bonificaciones por acuerdo entre múltiples fuentes) y penaliza la evidencia conflictiva.

Inventario rápido de activos

Para ver qué hay en tu red sin ejecutar comprobaciones de seguridad:```bash python3 sunsetscan.py --identify --target 192.168.1.0/24

root@kitploit:~
Esto ejecuta un escaneo de puertos con captura de banners e imprime una tabla
de identificación de dispositivos. Sin análisis de seguridad, sin informe, solo
un inventario rápido.

### Fuentes de Evidencia

| Fuente | Qué lee | Confianza |
|--------|--------------|------------|
| MAC OUI | Prefijo de proveedor IEEE de la dirección MAC | 0.40-0.45 |
| nmap OS | Estimación de la huella del sistema operativo | varía |
| HTTP fingerprint | Tipo de dispositivo, modelo y firmware desde la interfaz web | 0.50+ |
| HTTP headers | Cabeceras de respuesta Server, X-Powered-By | 0.20-0.50 |
| TLS certificate | Campos CN, emisor y organización | 0.35 |
| SSH banner | Cadena de identificación del demonio SSH | 0.10-0.70 |
| UPnP | Fabricante SSDP, modelo, tipo de dispositivo | 0.75 |
| SNMP sysDescr | Descripción del sistema desde la MIB SNMP | 0.85 |
| Wappalyzer | Cadenas CPE y categorías de tecnología | 0.30-0.45 |
| mDNS/Zeroconf | Anuncios de tipo de servicio | 0.55 |
| JA3S | Base de datos de huellas del protocolo de enlace TLS | 0.50 |
| FTP banner | Identificación del software del servidor FTP | 0.25-0.35 |
| Port heuristics | Patrones de combinación de puertos abiertos | 0.10-0.70 |
| nmap services | Campos de producto y versión del servicio | 0.45 |

Los resultados de identificación aparecen en:
- Tabla de inventario de dispositivos en terminal (durante el escaneo y mediante `--identify`)
- Tarjetas de topología del informe HTML y sección de inventario de dispositivos
- Sección `device_identities` de la exportación JSON
- Opción [8] Inventario de dispositivos del menú del modo interactivo

---

## Niveles de Severidad

| Nivel | Color | Rango CVSS | Qué significa | Cuándo actuar |
|---|---|---|---|---|
| **CRÍTICO** | Rojo | >= 9.0 | Credenciales por defecto, CVE explotable, SSL 2.0 | Hoy |
| **ALTO** | Naranja | 7.0-8.9 | Telnet/FTP abiertos, certificado caducado, TLS 1.0, software EOL | Esta semana |
| **MEDIO** | Amarillo | 4.0-6.9 | Certificado autofirmado, exposición UPnP, dispositivo no autorizado, falta HSTS | Programar corrección |
| **BAJO** | Azul | < 4.0 | EOL próximo, falta X-Frame-Options, IP del dispositivo cambiada | Hacer seguimiento y planificar |
| **INFO** | Gris | - | Dispositivo identificado, detalles del certificado, comprobación DNS superada | Sin acción |

---

## Estructura del Proyecto```
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

Solución de problemas

nmap no encontrado```bash

Debian/Ubuntu

sudo apt install nmap

Fedora

sudo dnf install nmap

Arch

sudo pacman -S nmap

macOS

brew install nmap

root@kitploit:~
**Permiso denegado / la detección del sistema operativo no funciona**

Los perfiles FULL, STEALTH y SMB requieren privilegios elevados. Sin root, estos perfiles pasan automáticamente a las opciones sin root (la detección del sistema operativo y el escaneo SYN quedan desactivados, pero el escaneo de puertos/versiones sigue funcionando).```bash
# For full capabilities:
sudo python3 sunsetscan.py --target 192.168.1.0/24 --profile FULL

WSL2 sugiere una red incorrecta (172.x.x.x)

En WSL2, SunsetScan detecta el adaptador virtual y recurre a 192.168.1.0/24. Si tu red doméstica usa una subred diferente, especifícala con --target:```bash python3 sunsetscan.py --target 192.168.0.0/24

root@kitploit:~
**Advertencias de caché al inicio del escaneo**```
WARNING: CVE data is 12 days old — run: python sunsetscan.py --update-cache

Los escaneos funcionan bien con datos obsoletos. Ejecuta --update-cache para actualizar.

Permiso denegado al descargar módulos

Si las descargas de módulos fallan con Permission denied: .../data/cache/..., la caché probablemente fue creada con sudo. Corrige la propiedad una vez y luego ejecuta la configuración y las descargas de módulos como tu usuario normal:```bash cd ~/sunsetscan sudo chown -R "$USER:$USER" data/cache ./sunsetscan --download all

root@kitploit:~
**Las comprobaciones SNMP no funcionan**

SunsetScan admite tanto pysnmp v4 (síncrono) como v7 (asíncrono). Si ves errores de importación, actualiza pysnmp:```bash
pip install --upgrade pysnmp

Descargo de responsabilidad — Solo uso autorizado

SunsetScan es una herramienta de auditoría de seguridad diseñada para usarse en redes y dispositivos que posees o para los que tienes permiso explícito por escrito para probar.

Ejecutar escaneos de red contra sistemas que no posees o para los que no tienes autorización de prueba puede ser ilegal, independientemente de la intención. Los autores no aceptan ninguna responsabilidad por el mal uso.

SunsetScan es completamente no destructivo y de solo lectura. No explota vulnerabilidades, entrega cargas útiles ni modifica ninguna configuración en ningún dispositivo escaneado. La prueba de credenciales --check-defaults es opcional, limitada, retardada, orientada al modelo exacto y se detiene ante señales de bloqueo/límite de velocidad; no es una función de fuerza bruta.


Licencia

El repositorio SunsetScan y el código de la aplicación están licenciados bajo la Licencia MIT — Copyright 2024 Colaboradores de SunsetScan.

Solo los artefactos de la base de datos EOL de hardware de SunsetScan en data/hardware_eol/ están licenciados por separado: esta base de datos está licenciada bajo la Licencia Internacional Creative Commons Atribución-NoComercial 4.0 (CC BY-NC 4.0). Consulta data/hardware_eol/LICENSE.md.


Agradecimientos

  • nmap — motor de escaneo
  • python-nmap — interfaz Python de nmap
  • OSV.dev — base de datos de vulnerabilidades
  • Rich — formato de terminal
  • Jinja2 — plantillas de informes HTML
  • cryptography — inspección de certificados TLS
  • scapy — captura de paquetes sin procesar y escaneo ARP
  • danielmiessler/SecLists — listas de credenciales y SNMP
  • ihebski/DefaultCreds-cheat-sheet — credenciales de proveedores
  • enthec/webappanalyzer — detección de tecnologías web
  • salesforce/ja3 — huella digital TLS
  • many-passwords — credenciales de cámaras/DVR
Descargar herramienta
PlataformaNivel de soporteNotas
Linux (Debian, Ubuntu, Fedora, Arch, etc.)Soporte completoMejor experiencia: todas las funciones funcionan de forma nativa
WSL2 (Subsistema de Windows para Linux)Soporte completoForma recomendada de ejecutarlo en máquinas Windows
macOSParcialEl escaneo básico funciona; algunas funciones (ARP, captura pasiva) pueden requerir configuración adicional
Windows (CMD/PowerShell nativo)No compatibleFaltan raw sockets, os.geteuid(), /proc, ip route y termios — usa WSL2 en su lugar
FlagEffect
(no flags)Default install: system packages + venv + Python deps + self-test
--forceDelete and rebuild the venv from scratch (use after upgrading Python)
--symlinkAlso install /usr/local/bin/sunsetscan so you can run sunsetscan from anywhere
--no-systemSkip the apt/dnf/etc step (use if your system tools are already installed)
--helpShow all options
ComprobadorQué encuentra
SSL/TLSCertificados caducados/firmados por uno mismo, cifrados débiles, TLS 1.0/1.1, SSL 2.0/3.0, claves RSA pequeñas
SSHIntercambio de claves débil, cifrados/MAC débiles, SSHv1, claves de host pequeñas, análisis de KEXINIT sin procesar
SMBSMBv1, EternalBlue (MS17-010), recursos compartidos anónimos, firma SMB deshabilitada, divulgación de NTLM
FTPInicio de sesión anónimo, credenciales en texto claro, STARTTLS ausente
SNMPCadenas de comunidad predeterminadas (public/private), SNMPv1, extracción de sysDescr
WebCabeceras de seguridad faltantes, formularios de inicio de sesión sobre HTTP, listado de directorios, paneles de administración expuestos
DNSDetección de secuestro de DNS (compara contra Cloudflare 1.1.1.1)
UPnPDescubrimiento SSDP, exposición de asignación de puertos WAN en routers
mDNSDescubrimiento de dispositivos Zeroconf/Bonjour, encuentra hosts que evaden los escaneos de puertos
ARPDetección de suplantación ARP, seguimiento de cambios de dirección MAC (requiere root)
Credenciales predeterminadasAuditoría opt-in de valores predeterminados de fábrica mediante coincidencias exactas de dispositivo/modelo, intentos limitados y demoras
Protocolos insegurosTelnet, FTP, TFTP, rsh, rlogin, rexec marcados por severidad
MóduloFuenteQué añade
credentials-minidanielmiessler/SecListsTop 50 de credenciales predeterminadas (datos de referencia descargables; no utilizados por la auditoría segura a menos que se habiliten explícitamente en la configuración)
credentials-fullihebski/DefaultCreds-cheat-sheet2860+ credenciales específicas de proveedores (datos de referencia descargables; no utilizados por la auditoría segura a menos que se habiliten explícitamente en la configuración)
wappalyzer-minienthec/webappanalyzerTop 500 de tecnologías web (predeterminado)
wappalyzer-fullenthec/webappanalyzerTodas las 7515 tecnologías web
ja3-signaturessalesforce/ja3Base de datos de huellas TLS
snmp-communitydanielmiessler/SecListsCadenas de comunidad SNMP extendidas
camera-credentialsmany-passwords/many-passwordsValores predeterminados de cámaras IP/DVR/NVR (datos de referencia descargables; no utilizados por la auditoría segura a menos que se habiliten explícitamente en la configuración)
mac-ouiIEEE Standards AssociationBase de datos de proveedores de prefijos MAC (predeterminado)
hardware-eol-homeNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico/SOHO (predeterminado; licencia de la base de datos: CC BY-NC 4.0)
hardware-eol-officeNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico y de pequeña oficina
hardware-eol-enterpriseNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico, oficina y empresa/campus/datacenter
hardware-eol-industrialNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico, oficina e industrial/OT
hardware-eol-service-providerNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico, oficina, empresa y proveedor de servicios
hardware-eol-fullNoCoderRandom/sunsetscanPerfil completo de ciclo de vida/EOL de hardware smart-pack
hardware-eolNoCoderRandom/sunsetscanMódulo heredado de compatibilidad de ciclo de vida/EOL de hardware con división completa
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
ArchivoContenidoIntervalo de actualización
data/cache/cve_cache.jsonDatos de CVE indexados por producto:versiónCada 7 días
data/cache/*.jsonFechas de EOL para más de 150 productos, almacenadas por productoCada 30 días
data/cache/hardware_eol/sunsetscan_hardware_eol_index.json más records/*.jsonBase de datos de ciclo de vida/EOL de hardwareCada 30 días
data/cache/hardware_eol/manifest.json, indexes/*.json, y records/<pack>/*.jsonPerfiles de ciclo de vida/EOL de hardware de smart-packCada 30 días
data/cache/cache_meta.jsonMarcas de tiempo de las últimas actualizacionesAutomático
sunsetscan --cache-status # See current cache state
sunsetscan --update-cache # Refresh stale caches
MAC conocida en una IP diferente (normalmente DHCP normal)
Dispositivo visto anteriormente sin conexiónInfoEl dispositivo de la línea base no responde