
nerva v1.69.6
CLI de fingerprinting rápido de serviços para 170+ protocolos (TCP/UDP/SCTP) - criado pela Praetorian
Nerva
Nerva: CLI rápida de fingerprinting de serviços
Recursos • Instalação • Início Rápido • Uso • Protocolos • Biblioteca • Casos de Uso • Solução de Problemas
Fingerprinting de serviços de alto desempenho escrito em Go. Identifique mais de 170 protocolos de rede nos transportes TCP, UDP e SCTP com extração avançada de metadados.
O Nerva detecta e identifica rapidamente serviços em execução em portas de rede abertas. Use-o em conjunto com scanners de portas como o Naabu para fazer fingerprinting dos serviços descobertos, ou integre-o aos seus pipelines de segurança para reconhecimento automatizado.
Recursos
- Mais de 170 Plugins de Protocolo — Bancos de dados, acesso remoto, serviços web, mensageria, protocolos industriais e de telecomunicações
- 76 Fingerprinters HTTP — Detecte tecnologias web, incluindo firewalls, bancos de dados, servidores de IA/LLM e muito mais
- Detecção de Configurações de Segurança Incorretas — Identifique problemas de segurança comuns, como APIs não autenticadas e protocolos em texto claro (
--misconfigs) - Suporte a Múltiplos Transportes — TCP (padrão), UDP (
--udp) e SCTP (--sctp, somente Linux) - Suporte a Proxy — Encaminhe o tráfego de varredura de forma transparente por proxies SOCKS5 ou HTTP com resolução DNS configurável
- Metadados Ricos — Extraia versões, configurações e detalhes relevantes para segurança de cada serviço
- Modo Rápido — Escaneie apenas as portas padrão para reconhecimento rápido (
--fast) - Saída Flexível — Formatos JSON, CSV ou legível por humanos
- Compatível com Pipelines — Receba entrada via pipe do Naabu, Nmap ou qualquer ferramenta que produza
host:port - Biblioteca Go — Importe diretamente em suas aplicações Go
Instalação
Releases
Baixe um binário pré-compilado na página de Releases.
Do GitHub
go install github.com/praetorian-inc/nerva/cmd/nerva@latest
Do Código-Fonte
git clone https://github.com/praetorian-inc/nerva.git
cd nerva
go build ./cmd/nerva
./nerva -h
Docker
git clone https://github.com/praetorian-inc/nerva.git
cd nerva
docker build -t nerva .
docker run --rm nerva -h
docker run --rm nerva -t example.com:80 --json
Início Rápido
Fingerprint de um único alvo:
nerva -t example.com:22
# ssh://example.com:22
Obtenha metadados JSON detalhados:
nerva -t example.com:22 --json
# {"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}
Pipe de um scanner de portas:
naabu -host example.com -silent | nerva
# http://example.com:80
# ssh://example.com:22
# https://example.com:443
A referência completa — cada subcomando, alias e flag, incluindo os que estão ocultos de --help — é gerada em docs/CLI.md.
Uso
nerva [flags]
TARGET SPECIFICATION:
Requires host:port or ip:port format. Assumes ports are open.
EXAMPLES:
nerva -t example.com:80
nerva -t example.com:80,example.com:443
nerva -l targets.txt
nerva --json -t example.com:80
cat targets.txt | nerva
Exemplos
Vários alvos:
nerva -t example.com:22,example.com:80,example.com:443
Do arquivo:
nerva -l targets.txt --json -o results.json
Varredura UDP:
nerva -t example.com:53 -U
# dns://example.com:53
Varredura SCTP (somente Linux):
nerva -t telecom-server:3868 -S
# diameter://telecom-server:3868
Modo rápido (apenas portas padrão):
nerva -l large-target-list.txt --fast --json
Roteamento de proxy com resolução DNS remota:
nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p
Detecção de Configurações de Segurança Incorretas
O Nerva pode identificar configurações de segurança incorretas comuns quando habilitado com --misconfigs:
nerva -t example.com:2375 --misconfigs --json
Configurações incorretas detectadas:
| ID da descoberta | Gravidade | Descrição |
|---|---|---|
docker-unauth-api | Crítica | API do Docker acessível sem autenticação |
x11-unauth-access | Crítica | Servidor X11 permite conexões não autenticadas |
dotnet-remoting-http-exposed | Alta | Canal HTTP do .NET Remoting exposto (risco de desserialização) |
smb-signing-not-required | Média | Assinatura SMB não exigida (risco de ataque de retransmissão) |
telnet-cleartext | Média | Telnet transmite credenciais em texto não criptografado |
vnc-detected | Média | VNC detectado (frequentemente com autenticação fraca) |
ssh-password-auth | Média | Servidor permite autenticação por senha |
ssh-weak-cipher | Baixa | Servidor oferece cifras fracas (RC4, 3DES, Blowfish) |
ssh-weak-kex | Baixa | Servidor oferece algoritmos de troca de chaves fracos |
ssh-weak-mac | Baixa | Servidor oferece algoritmos MAC fracos |
ftp-cleartext | Baixa | FTP transmite credenciais em texto não criptografado |
Exemplo de saída com configurações incorretas:
{
"host": "example.com",
"port": 2375,
"protocol": "docker",
"anonymous_access": true,
"security_findings": [
{
"id": "docker-unauth-api",
"severity": "critical",
"description": "Docker API accessible without authentication",
"evidence": "Successfully queried /version endpoint without credentials"
}
]
}
Suporte a Proxy
O Nerva suporta o roteamento do tráfego de varredura através de proxies SOCKS5 e HTTP com resolução DNS configurável.
Esquemas de proxy suportados:
socks5://- Proxy SOCKS5 com resolução DNS localsocks5h://- Proxy SOCKS5 com resolução DNS do lado do proxy (sempre)http://- Proxy HTTP CONNECThttps://- Proxy HTTPS CONNECT
Autenticação de proxy:
# Inline authentication (URL format)
nerva -t example.com:80 --proxy socks5://username:[email protected]:1080
# Separate authentication flag
nerva -t example.com:80 --proxy socks5://127.0.0.1:1080 --proxy-auth username:password
Estratégias de resolução de DNS (--dns-order):