Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sunsetscan — Auditoria de segurança de rede local com EOL, CVE, identidade de dispositivos e relatórios HTML. | Kitploit
Ferramentas/GitHubGitHub/nocoderrandom/sunsetscan
ReconhecimentoScanners de VulnerabilidadesSegurança IoTAtaques de SenhaAuditoria de ConfiguraçãoColeta de InformaçõesSegurança de Rede
GitHubnocoderrandom/sunsetscan

sunsetscan

Auditoria de segurança de rede local com EOL, CVE, identidade de dispositivos e relatórios HTML.

Ver Repositório
38há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Site
Compartilhar

SunsetScan

Auditoria de segurança de rede para humanos — com a potência do nmap, feito para todos.

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

Site: sunsetscan.com


O SunsetScan é uma ferramenta de auditoria de segurança de rede local para donos de redes domésticas e equipes de TI que desejam a profundidade do nmap sem aprender a sintaxe do nmap. Aponte-a para a sua rede e ela encontra todos os dispositivos ativos, identifica o software em execução, verifica bancos de dados de vulnerabilidades conhecidas e registros de fim de vida, testa interfaces web em busca de vulnerabilidades comuns, opcionalmente realiza uma auditoria de credenciais padrão de fábrica segura contra bloqueio e produz um relatório HTML limpo com explicações em linguagem simples e etapas numeradas para corrigir cada achado. Ela é totalmente somente leitura e não destrutiva — nada na sua rede é jamais modificado.


Suporte de Plataforma

Por que Linux? O SunsetScan depende de sockets brutos (varredura ARP, captura passiva de pacotes), APIs específicas do Linux (/proc, ip route) e verificações de privilégio (os.geteuid()) que não estão disponíveis no Windows nativo. O WSL2 fornece um kernel Linux completo e é o caminho recomendado para usuários de Windows.


Instalação

O SunsetScan acompanha um instalador que cuida das ferramentas do sistema (nmap, masscan, git, python3-venv), cria um ambiente virtual Python local ao projeto e instala todas as dependências Python dentro dele. Você nunca será solicitado a fazer pip install de nada como root — isso é importante em Debian/Pi OS modernos, veja Por que um venv? abaixo.

Plataformas Tier-1 (totalmente testadas)

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

Plataformas Tier-2 (melhor esforço, mesmo script)

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

Quatro formas de instalar — escolha uma

1. Pacote Debian/Ubuntu

Recomendado para 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 de uma linha

Clona o repositório em `~/sunsetscan` e executa o instalador:```bash
curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

Quer em outro lugar? Defina INSTALL_DIR:```bash INSTALL_DIR=/opt/sunsetscan curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

root@kitploit:~
> **Uma nota sobre `curl | bash`**: é conveniente, mas significa executar um script que você não leu. Se preferir inspecionar antes, use a opção 3 ou 4.

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

4. Instalação manual (controle total, quatro 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:~
(Substitua o gerenciador de pacotes da sua distribuição por `apt` — `dnf`, `pacman`, `zypper` ou `brew`. O pacote avahi é `avahi-tools` no Fedora/RHEL, `avahi` no Arch, `avahi-utils` no openSUSE e não é necessário no macOS.)

### Após a instalação — primeira execução```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

O launcher ./sunsetscan ativa automaticamente o venv — você nunca precisa de source venv/bin/activate. Use sudo para scans que precisam de raw sockets, mas execute --setup, --download e --update-cache como seu usuário normal para que os arquivos de cache permaneçam graváveis a partir da TUI.

Flags do instalador

Reexecutar ./install.sh é seguro e idempotente — ele detecta componentes existentes e os reutiliza.

Por que um venv?

Distribuições modernas baseadas em Debian (Debian Bookworm, Raspberry Pi OS Bookworm, Ubuntu 23.04+) incluem a aplicação do PEP 668. Isso faz com que pip install falhe quando executado como root contra o Python do sistema:``` error: externally-managed-environment × This environment is externally managed

root@kitploit:~
Duas das dependências do SunsetScan (`pysnmp` v6 em particular) precisam de versões mais recentes do que as fornecidas pelos repositórios apt, portanto uma instalação apenas via apt não é possível. A solução do instalador é a padrão: instalar ferramentas do sistema (nmap, masscan, libpcap, avahi-utils) via apt e colocar as dependências Python do SunsetScan em um diretório `./venv` local ao projeto. Nada no nível do sistema é alterado, então o PEP 668 não se aplica, e desinstalar o SunsetScan é apenas `rm -rf ~/sunsetscan`.

### Opcional: manter o SunsetScan em execução em segundo plano

Uma avaliação completa de uma sub-rede /24 em um Raspberry Pi pode levar de 10 a 30 minutos. Use `tmux` ou `screen` para que a varredura sobreviva a uma desconexão 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.

Atualizando SunsetScan```bash

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

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

WSL2 no Windows

O Windows não é suportado diretamente (o SunsetScan precisa de raw sockets, /proc e os.geteuid), mas o WSL2 funciona bem:```powershell wsl --install -d Ubuntu # in PowerShell, as Administrator

root@kitploit:~
Reinicie, abra o **Ubuntu** no menu Iniciar e siga a instalação padrão acima. O WSL2 usa um adaptador de rede virtual — informe sua sub-rede real com `--target` se a detecção automática escolher a errada.

---

## Requisitos

| Requisito | Mínimo | Observações |
|---|---|---|
| **Python** | 3.9+ | 3.12 recomendado |
| **nmap** | Qualquer versão recente | Deve estar no PATH do sistema |
| **SO** | Linux (nativo ou WSL2) | Veja [Suporte à Plataforma](#platform-support) |
| **masscan** | Qualquer | Opcional — descoberta de portas mais rápida |
| **avahi-utils** | Qualquer | Opcional — fornece `avahi-browse`, usado para descoberta mDNS confiável de dispositivos Apple / Bonjour / Sleep-Proxy. Recorre ao `zeroconf` do Python se ausente. |
| **git** | Qualquer | Opcional — usado para `--setup` e `--update` |
| **Privilégios** | Usuário padrão | Root/sudo necessário para perfis FULL, STEALTH, SMB, detecção ARP e captura passiva |

---

## Início 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

Recursos

Descoberta de rede

  • Descobre todos os hosts ativos por meio de varredura rápida de ping
  • Resolve nomes de host e detecta endereços MAC com consulta de fornecedor/fabricante
  • Entrada flexível de alvos: CIDR, curinga, intervalo de IP, separados por vírgula ou nome de host
  • Integração opcional com masscan para descoberta de portas mais rápida em redes grandes
  • Varredura híbrida: captura passiva em segundo plano (mDNS/SSDP/DHCP) combinada com varredura ativa

Varredura de portas e serviços

  • Seis perfis de varredura: QUICK, FULL, STEALTH, PING, IOT, SMB
  • Avaliações completas descobrem hosts ativos primeiro e depois varrem serviços apenas nesses hosts descobertos, em vez de varrer cegamente todos os endereços no CIDR alvo
  • Captura concorrente de banners em todas as portas abertas (pool de 50 threads)
  • Fingerprinting de SO com porcentagem de confiança
  • Integração com NSE (Nmap Scripting Engine) para detecção aprimorada de dispositivos
  • Fingerprinting HTTP para identificar roteadores, câmeras, dispositivos NAS, impressoras e IoT
  • Fallback automático de privilégios de root: os perfis FULL/STEALTH degradam-se graciosamente quando executados sem sudo
  • Modo de segurança para hosts de baixo consumo, Wi-Fi, WSL/NAT e execuções de validação: limita workers, pula varreduras masscan amplas de todas as portas, limita conjuntos de portas do nmap e aplica timeouts de varredura por comando
  • Análise de segurança paralela — todas as verificações por host (SSL, SSH, FTP, SMB, SNMP, Web) são executadas concorrentemente entre hosts e dentro de cada host usando pools de threads
  • A análise de segurança da Fase 7 é concluída em menos de 10 segundos, independentemente do tamanho da rede
  • Verificação de prontidão pré-varredura — avisa se o nmap estiver ausente, se os bancos de dados CVE/EOL estiverem vazios ou se os módulos padrão não estiverem instalados. É executada antes de cada varredura e não bloqueia a varredura.

Verificações de segurança

O SunsetScan executa 12 módulos de verificação de segurança durante uma avaliação completa:

Inteligência de vulnerabilidades

  • Correlação de CVE — mapeia versões de serviços detectadas para CVEs conhecidas usando OSV.dev
  • Verificação de EOL de software — dados de ciclo de vida em cache local para mais de 150 produtos de software
  • Verificação de ciclo de vida de hardware — banco de dados expandido de EOL de hardware do SunsetScan com 64.245 registros de ciclo de vida, 51.452 resumos de modelos e 122 fornecedores representados. Ele sinaliza roteadores, switches, NAS, câmeras, impressoras, pontos de acesso, equipamentos industriais/OT e equipamentos de provedores de serviços com status de não suportado confirmado ou sinais de ciclo de vida do fornecedor que precisam de revisão.
  • Perfis inteligentes de EOL de hardware — usuários domésticos recebem o perfil padrão menor hardware-eol-home, enquanto os perfis de escritório, empresarial, industrial, provedor de serviços e completo estão disponíveis para varreduras mais amplas.
  • Fingerprinting JA3S de TLS — identifica o software do servidor a partir de assinaturas de handshake TLS
  • Totalmente offline durante varreduras — nenhuma chamada de API externa é feita durante a varredura. As fontes de módulos de EOL de software, CVE e GitHub são contatadas apenas por --setup, --update-cache e --download. As varreduras funcionam sem qualquer conexão com a internet, desde que os caches estejam preenchidos.
  • Atualização semanal de CVE, atualização mensal de EOL — controladas por você

Identificação de dispositivos

  • 14 extratores de evidências fundem OUI de MAC, SO do nmap, fingerprinting HTTP, certificados TLS, banners SSH, UPnP, sysDescr do SNMP, Wappalyzer, mDNS, fingerprints JA3S de TLS, banners FTP, heurísticas de portas e campos de serviço do nmap em uma identidade unificada de dispositivo por host
  • Identifica fornecedor, modelo, versão de firmware e tipo de dispositivo com pontuação de confiança (bônus de concordância quando múltiplas fontes confirmam)
  • Suporta mais de 130 aliases de fornecedores para normalização de nomes
  • Resultados exibidos em tabela no terminal e no inventário de dispositivos do relatório HTML
  • Modo rápido de inventário de ativos: a flag --identify pula as verificações de segurança
  • Mapeamento persistente de MAC para identidade entre varreduras

Sistema de dados modular

O SunsetScan inclui módulos de dados para download e perfis de EOL de hardware que ampliam as capacidades de detecção:

O banco de dados de ciclo de vida de hardware agora está dividido em perfis inteligentes para download: hardware-eol-home é a instalação padrão, enquanto hardware-eol-full fornece cobertura completa. A build canônica completa atualmente contém 64.245 registros em 122 fornecedores, mas usuários domésticos só precisam do perfil doméstico menor.

root@kitploit:~
### Detecção de Dispositivos Rogue
- Salve um snapshot da sua rede como uma linha de base confiável
- Futuros escaneamentos sinalizam automaticamente endereços MAC desconhecidos que não estão na linha de base
- Detecta dispositivos conhecidos em endereços IP inesperados

### Pontuação de Risco
Cada dispositivo recebe uma pontuação de risco (0-100) com base na gravidade e na quantidade de achados:

| Pontuação | Faixa |
|---|---|
| 0-10 | Risco Mínimo |
| 11-30 | Risco Baixo |
| 31-60 | Risco Médio |
| 61-80 | Risco Alto |
| 81-100 | Risco Crítico |

### Relatórios
- **Relatório HTML profissional** — painel de gravidade, seções por host, cartões de achados com explicações em linguagem simples, recomendações priorizadas
- **Exportação JSON** — saída estruturada legível por máquina
- Os relatórios são totalmente autossuficientes — um único arquivo HTML, sem dependências externas
- Perfis restritos, como o SMB, ainda mantêm os hosts descobertos visíveis no relatório,
  mesmo quando não há portas de serviço correspondentes abertas
- Verificações em nível de rede, como DNS, UPnP e notas de tempo de execução do escaneamento são separadas
  dos achados por dispositivo; as pontuações de risco dos dispositivos são exibidas apenas para hosts reais
- Todos os achados são codificados por cor: Crítico, Alto, Médio, Baixo, Info

### Histórico de Escaneamentos e Diffing
- Cada escaneamento é salvo automaticamente como um snapshot JSON compactado com gzip
- Veja escaneamentos anteriores com `--history`
- Compare quaisquer dois escaneamentos com `--diff` para ver novos hosts, portas fechadas, achados novos/resolvidos
- Compare com um escaneamento de N dias atrás com `--diff --since N`
- O histórico é mantido por 90 dias por padrão

### Interface do Usuário
- **Modo interativo** guiado (`-i`) — menus multinível para escaneamento, análise, exportação, módulos
- **Menu estilo antigo** — é iniciado quando executado sem argumentos
- Modo CLI direto — scriptável e amigável para automação
- Saída de terminal rica em cores com barras de progresso, spinners e painéis de resumo

---

## Todas as Flags de CLI

| Flag | Descrição | Root |
|---|---|---|
| `--target TARGET` | IP, faixa CIDR, hostname ou intervalo para escanear | Não |
| `--profile PROFILE` | Perfil de escaneamento: QUICK, FULL, STEALTH, PING, IOT, SMB (padrão: QUICK) | Varia |
| `-i`, `--interactive` | Iniciar o modo interativo guiado | Não |
| `--full-assessment` | Avaliação completa + exportação automática em HTML; a auditoria de credenciais permanece opcional | Não |
| `--identify` | Executar apenas a identificação de dispositivos (pular verificações de segurança) | Não |
| `--nse` | Habilitar o Nmap Scripting Engine para detecção aprimorada | Não |
| `--check-defaults` | Aceitar a auditoria de credenciais padrão de fábrica segura contra bloqueios (somente dispositivos próprios) | Não |
| `--save-baseline` | Salvar o escaneamento como linha de base confiável de dispositivos para detecção de rogue | Não |
| `--setup` | Assistente de configuração inicial (dependências + download de cache) | Não |
| `--update-cache` | Atualizar manualmente os caches de dados de CVE e EOL | Não |
| `--cache-status` | Mostrar a idade do cache e as contagens de entradas e sair | Não |
| `--modules` | Mostrar o status de todos os módulos de dados baixáveis | Não |
| `--download MODULE` | Baixar um módulo de dados (ou "all") | Não |
| `--db SIZE` | Tamanho do banco de dados EOL para `--setup`: mini, normal, large (padrão: normal) | Não |
| `--history` | Mostrar a tabela de histórico de escaneamentos e sair | Não |
| `--diff` | Fazer diff dos dois últimos escaneamentos salvos e sair | Não |
| `--since DAYS` | Com `--diff`: comparar com um escaneamento de pelo menos N dias | Não |
| `--check-version` | Verificar se há uma versão mais recente do SunsetScan no GitHub | Não |
| `--update` | Baixar o código mais recente do GitHub e reinstalar as dependências | Não |
| `--verbose` | Habilitar registro de depuração | Não |
| `--no-color` | Desabilitar a saída colorida (útil para arquivos de log) | Não |
| `--quiet` | Suprimir barras de progresso (os achados ainda são exibidos) | Não |
| `--safe-mode` | Forçar um escaneamento mais suave: nmap limitado, uso menor de masscan, menos workers, pular sondas pesadas | Não |
| `--no-safe-mode` | Desabilitar o modo seguro automático | Não |
| `--version` | Mostrar o número da versão e sair | Não |

---

## Perfis de Escaneamento

| Perfil | flags do nmap | Velocidade | Root | Melhor para |
|---|---|---|---|---|
| **PING** | `-sn` | ~30s | Não | Encontrar dispositivos ativos rapidamente |
| **QUICK** | `-T4 -F -sV --version-intensity 2` | 1-3 min | Não | Primeira olhada em uma rede (com detecção leve de versão) |
| **FULL** | `-T4 -A -sV -O --osscan-guess` | 5-15 min | Sim | Análise aprofundada de hosts específicos |
| **STEALTH** | `-sS -T2 -sV` | 10-30 min | Sim | Escaneamento de baixo ruído |
| **IOT** | `-T4 -sV -p 23,80,443,8080,8443,554,1900,5000,5001,7547,49152 --open` | 1-3 min | Não | Câmeras, roteadores, 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 | Sim | Compartilhamentos Windows, verificação de EternalBlue |

> **Dica:** FULL e STEALTH voltam automaticamente para flags não root quando executados sem sudo. A detecção de SO ficará indisponível, mas o escaneamento de portas e a detecção de serviços ainda funcionam.

### Segurança da Auditoria de Senhas Padrão

O teste de senhas padrão nunca é habilitado automaticamente. No modo CLI, adicione
`--check-defaults`; no modo guiado `-i`, escolha a auditoria de senhas padrão quando
solicitado. O SunsetScan então aplica uma política conservadora:

- sem spraying genérico de usuário/senha por padrão
- apenas testa credenciais que correspondem ao fornecedor e modelo/família detectados
- ignora dispositivos com padrões exclusivos de etiqueta/PIN, como muitas impressoras HP
- limita as tentativas a 2 por host e 1 por serviço por padrão
- aguarda 2 segundos entre tentativas com credenciais
- para imediatamente se um dispositivo retornar sinais de bloqueio ou limitação de taxa

O banco de dados integrado é intencionalmente pequeno e baseado em fontes. Módulos
grandes de credenciais baixados são mantidos como dados de referência, mas a auditoria
segura não os utiliza, a menos que `Settings.auth_allow_module_credentials` seja explicitamente
habilitado por um desenvolvedor.

### Modo Seguro e Execuções de Validação

O modo seguro é recomendado automaticamente em hosts de baixo consumo, hosts que parecem
dispositivos Pi-hole/gateway e em egresso de Wi-Fi. Ele também pode ser forçado com:```bash
python3 sunsetscan.py --full-assessment --target 192.168.1.0/24 --safe-mode

No modo seguro SunsetScan:

  • descobre primeiro os hosts ativos e escaneia apenas esses hosts durante avaliações completas
  • aplica o mesmo comportamento de scanner seguro da CLI, do menu antigo e do modo guiado -i
  • remove o OS fingerprinting de varreduras amplas
  • mantém varreduras amplas STEALTH/FULL com limites fast/top-port
  • ignora varreduras masscan de todas as portas para perfis amplos
  • reduz o número de workers e ignora sondas TLS pesadas
  • aplica um timeout por nmap para que um perfil não possa travar indefinidamente

Para testes de regressão assistidos por root em todos os modos, use o coletor de validação:```bash sudo bash scripts/sudo_network_validation.sh

root@kitploit:~
Por padrão, testa `192.168.1.0/24` em PING, QUICK, SMB, STEALTH e
FULL, copia os relatórios HTML gerados para o diretório de validação,
e grava um arquivo compactado em `reports/`. Relatórios, logs,
pcaps e arquivos são ignorados pelo git e não devem ser commitados.

Substituições úteis:```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

Gerenciamento de Cache

O SunsetScan nunca chama APIs externas durante uma varredura. Todos os dados são lidos de arquivos de cache locais em data/cache/.

root@kitploit:~
Os scans funcionam normalmente com cache desatualizada ou ausente — você só pode ter dados de CVE desatualizados.

---

## Detecção de Dispositivos 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
DescobertaSeveridadeSignificado
Dispositivo desconhecido detectadoMédioMAC não está na linha de base — dispositivo novo ou não autorizado
IP do dispositivo alterado

Nota: A linha de base exige root/sudo para detecção de endereço MAC via nmap.


Relatório HTML

Cada --full-assessment gera um relatório HTML autossuficiente com:

  • Painel de severidade — contagens de selos (Crítico/Alto/Médio/Baixo/Info), barra de cores, estatísticas resumidas
  • Pontuações de risco — pontuação 0-100 por dispositivo com rótulo de faixa de risco
  • Tabela de todas as descobertas — cada descoberta em todos os hosts, ordenada por severidade
  • Seções por host — seção recolhível por dispositivo com cartões de descoberta, tabela de portas abertas, status EOL
  • Cartões de descoberta — selo de severidade, título, "O que foi encontrado", "O que isso significa" (inglês simples), "O que fazer" (etapas numeradas), evidências, IDs de CVE
  • Recomendações — lista de ações priorizadas

Os relatórios abrem em qualquer navegador sem exigir internet.


Identificação de Dispositivos

SunsetScan identifica automaticamente dispositivos de rede combinando evidências de 14 fontes diferentes. Cada fonte contribui com um fornecedor, modelo, versão ou tipo de dispositivo com uma pontuação de confiança. O algoritmo de fusão soma fontes concordantes (com bônus para concordância de múltiplas fontes) e penaliza evidências conflitantes.

Inventário Rápido de Ativos

Para ver o que está na sua rede sem executar verificações de segurança:```bash python3 sunsetscan.py --identify --target 192.168.1.0/24

root@kitploit:~
This runs a port scan with banner grabbing and prints a device
identification table. No security analysis, no report — just a fast
inventory.

### 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 |

Os resultados de identificação aparecem em:
- Tabela de inventário de dispositivos no terminal (durante a varredura e via `--identify`)
- Cartões de topologia do relatório HTML e seção de inventário de dispositivos
- Seção `device_identities` da exportação JSON
- Opção de menu [8] Inventário de Dispositivos no modo interativo

---

## Níveis de Severidade

| Nível | Cor | Faixa CVSS | O que significa | Quando agir |
|---|---|---|---|---|
| **CRÍTICO** | Vermelho | >= 9.0 | Credenciais padrão, CVE explorável, SSL 2.0 | Hoje |
| **ALTO** | Laranja | 7.0-8.9 | Telnet/FTP aberto, certificado expirado, TLS 1.0, software em fim de vida (EOL) | Esta semana |
| **MÉDIO** | Amarelo | 4.0-6.9 | Certificado autoassinado, exposição UPnP, dispositivo não autorizado, HSTS ausente | Agendar correção |
| **BAIXO** | Azul | < 4.0 | EOL próximo, X-Frame-Options ausente, IP do dispositivo alterado | Acompanhar e planejar |
| **INFO** | Cinza | - | Dispositivo identificado, detalhes do certificado, verificação de DNS aprovada | Nenhuma ação |

---

## Estrutura do Projeto```
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

Solução de problemas

nmap não encontrado```bash

Debian/Ubuntu

sudo apt install nmap

Fedora

sudo dnf install nmap

Arch

sudo pacman -S nmap

macOS

brew install nmap

root@kitploit:~
**Permissão negada / detecção de SO não está funcionando**

Os perfis FULL, STEALTH e SMB exigem privilégios elevados. Sem root, esses perfis automaticamente recorrem a flags de não-root (detecção de SO e varredura SYN desabilitadas, mas a varredura de portas/versões ainda funciona).```bash
# For full capabilities:
sudo python3 sunsetscan.py --target 192.168.1.0/24 --profile FULL

WSL2 sugere rede errada (172.x.x.x)

No WSL2, o SunsetScan detecta o adaptador virtual e recorre a 192.168.1.0/24. Se a sua rede doméstica usa uma sub-rede diferente, especifique-a com --target:```bash python3 sunsetscan.py --target 192.168.0.0/24

root@kitploit:~
**Avisos de cache no início da verificação**```
WARNING: CVE data is 12 days old — run: python sunsetscan.py --update-cache

Os scans funcionam bem com dados desatualizados. Execute --update-cache para atualizar.

Permissão negada ao baixar módulos

Se o download de módulos falhar com Permission denied: .../data/cache/..., o cache provavelmente foi criado com sudo. Corrija a propriedade uma vez e depois execute a configuração e os downloads de módulos como seu usuário normal:```bash cd ~/sunsetscan sudo chown -R "$USER:$USER" data/cache ./sunsetscan --download all

root@kitploit:~
**Verificações SNMP não funcionando**

SunsetScan suporta tanto pysnmp v4 (síncrono) quanto v7 (assíncrono). Se você vir erros de importação, atualize o pysnmp:```bash
pip install --upgrade pysnmp

Aviso Legal — Somente Uso Autorizado

O SunsetScan é uma ferramenta de auditoria de segurança destinada a ser usada em redes e dispositivos que você possui ou para os quais tem permissão explícita por escrito para testar.

Executar varreduras de rede em sistemas que você não possui ou para os quais não tem autorização para testar pode ser ilegal independentemente da intenção. Os autores não aceitam nenhuma responsabilidade por uso indevido.

O SunsetScan é totalmente não destrutivo e somente leitura. Ele não explora vulnerabilidades, envia payloads nem modifica qualquer configuração em nenhum dispositivo varrido. O teste de credenciais --check-defaults é opcional, limitado, atrasado, orientado ao modelo exato e é interrompido ao detectar sinais de bloqueio/limite de taxa; não é um recurso de força bruta.


Licença

O repositório e o código do aplicativo SunsetScan são licenciados sob a Licença MIT — Copyright 2024 Contribuidores do SunsetScan.

Apenas os artefatos do banco de dados EOL de hardware do SunsetScan em data/hardware_eol/ são licenciados separadamente: Este banco de dados é licenciado sob a Licença Internacional Creative Commons Atribuição-NãoComercial 4.0 (CC BY-NC 4.0). Veja data/hardware_eol/LICENSE.md.


Agradecimentos

  • nmap — mecanismo de varredura
  • python-nmap — interface Python do nmap
  • OSV.dev — banco de dados de vulnerabilidades
  • Rich — formatação de terminal
  • Jinja2 — modelagem de relatórios HTML
  • cryptography — inspeção de certificados TLS
  • scapy — captura bruta de pacotes e varredura ARP
  • danielmiessler/SecLists — listas de credenciais e SNMP
  • ihebski/DefaultCreds-cheat-sheet — credenciais de fornecedores
  • enthec/webappanalyzer — detecção de tecnologias web
  • salesforce/ja3 — fingerprinting TLS
  • many-passwords — credenciais de câmeras/DVRs
Baixar ferramenta
PlataformaNível de SuporteObservações
Linux (Debian, Ubuntu, Fedora, Arch, etc.)Suporte totalMelhor experiência — todos os recursos funcionam nativamente
WSL2 (Subsistema Windows para Linux)Suporte totalForma recomendada de executar em máquinas Windows
macOSParcialA varredura principal funciona; alguns recursos (ARP, captura passiva) podem exigir configuração adicional
Windows (CMD/PowerShell nativos)Não suportadoFaltam sockets brutos, os.geteuid(), /proc, ip route e termios — use WSL2
FlagEfeito
(sem flags)Instalação padrão: pacotes do sistema + venv + dependências Python + autoteste
--forceRemove e reconstrói o venv do zero (use após atualizar o Python)
--symlinkTambém instala /usr/local/bin/sunsetscan para que você possa executar sunsetscan de qualquer lugar
--no-systemIgnora a etapa apt/dnf/etc (use se as ferramentas do sistema já estiverem instaladas)
--helpMostra todas as opções
VerificadorO que ele encontra
SSL/TLSCertificados expirados/autoassinados, cifras fracas, TLS 1.0/1.1, SSL 2.0/3.0, chaves RSA pequenas
SSHTroca de chaves fraca, cifras/MACs fracos, SSHv1, chaves de host pequenas, análise bruta de KEXINIT
SMBSMBv1, EternalBlue (MS17-010), compartilhamentos anônimos, assinatura SMB desabilitada, divulgação de NTLM
FTPLogin anônimo, credenciais em texto claro, STARTTLS ausente
SNMPCommunity strings padrão (public/private), SNMPv1, extração de sysDescr
WebCabeçalhos de segurança ausentes, formulários de login via HTTP, listagem de diretórios, painéis de administração expostos
DNSDetecção de sequestro de DNS (compara com Cloudflare 1.1.1.1)
UPnPDescoberta SSDP, exposição de mapeamento de portas WAN em roteadores
mDNSDescoberta de dispositivos Zeroconf/Bonjour, encontra hosts que escapam de varreduras de portas
ARPDetecção de spoofing ARP, rastreamento de mudanças de endereço MAC (requer root)
Credenciais padrãoAuditoria opcional de padrões de fábrica usando correspondências exatas de dispositivo/modelo, tentativas limitadas e atrasos
Protocolos insegurosTelnet, FTP, TFTP, rsh, rlogin, rexec sinalizados por gravidade
MóduloFonteO que adiciona
credentials-minidanielmiessler/SecLists50 principais credenciais padrão (dados de referência para download; não usados pela auditoria segura, a menos que explicitamente habilitados nas configurações)
credentials-fullihebski/DefaultCreds-cheat-sheet2.860+ credenciais específicas de fornecedores (dados de referência para download; não usados pela auditoria segura, a menos que explicitamente habilitados nas configurações)
wappalyzer-minienthec/webappanalyzer500 principais tecnologias web (padrão)
wappalyzer-fullenthec/webappanalyzerTodas as 7.515 tecnologias web
ja3-signaturessalesforce/ja3Banco de dados de fingerprints TLS
snmp-communitydanielmiessler/SecListsCommunity strings SNMP estendidas
camera-credentialsmany-passwords/many-passwordsPadrões de câmeras IP/DVR/NVR (dados de referência para download; não usados pela auditoria segura, a menos que explicitamente habilitados nas configurações)
mac-ouiIEEE Standards AssociationBanco de dados de fornecedores por prefixo MAC (padrão)
hardware-eol-homeNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico/SOHO (padrão; licença do banco de dados: CC BY-NC 4.0)
hardware-eol-officeNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico e de pequenos escritórios
hardware-eol-enterpriseNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico, de escritório e empresarial/campus/datacenter
hardware-eol-industrialNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico, de escritório e industrial/OT
hardware-eol-service-providerNoCoderRandom/sunsetscanPerfil de ciclo de vida/EOL de hardware doméstico, de escritório, empresarial e de provedor de serviços
hardware-eol-fullNoCoderRandom/sunsetscanPerfil completo de ciclo de vida/EOL de hardware smart-pack
hardware-eolNoCoderRandom/sunsetscanMódulo legado de compatibilidade de ciclo de vida/EOL de hardware com divisão 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
ArquivoConteúdoIntervalo de atualização
data/cache/cve_cache.jsonDados de CVE por produto:versãoA cada 7 dias
data/cache/*.jsonDatas de EOL para mais de 150 produtos, armazenadas por produtoA cada 30 dias
data/cache/hardware_eol/sunsetscan_hardware_eol_index.json além de records/*.jsonBanco de dados de ciclo de vida/EOL de hardwareA cada 30 dias
data/cache/hardware_eol/manifest.json, indexes/*.json e records/<pack>/*.jsonPerfis de ciclo de vida/EOL de hardware em smart-packsA cada 30 dias
data/cache/cache_meta.jsonRegistros de data/hora das últimas atualizaçõesAutomático
sunsetscan --cache-status # See current cache state
sunsetscan --update-cache # Refresh stale caches
Baixo
MAC conhecido em um IP diferente (normalmente DHCP normal)
Dispositivo visto anteriormente offlineInfoDispositivo da linha de base não está respondendo