Torna agli aggiornamenti
New releaseSep 9, 2026

nerva v1.69.6

CLI per fingerprinting rapido di servizi per oltre 170 protocolli (TCP/UDP/SCTP) - sviluppato da Praetorian

Condividi
Nerva - CLI veloce per il fingerprinting dei servizi per la ricognizione di rete con supporto a oltre 170 protocolli

Nerva
Nerva: CLI veloce per il fingerprinting dei servizi

Release Build Status Go Report Card License Stars

Funzionalità • Installazione • Avvio rapido • Utilizzo • Protocolli • Libreria • Casi d'uso • Risoluzione dei problemi

Fingerprinting dei servizi ad alte prestazioni scritto in Go. Identifica oltre 170 protocolli di rete su trasporti TCP, UDP e SCTP con estrazione di metadati avanzata.

Nerva rileva e identifica rapidamente i servizi in esecuzione sulle porte di rete aperte. Usalo insieme a scanner di porte come Naabu per fare fingerprinting dei servizi individuati, oppure integralo nelle tue pipeline di sicurezza per la ricognizione automatizzata.

Funzionalità

  • Oltre 170 plugin di protocollo — Database, accesso remoto, servizi web, messaggistica, protocolli industriali e di telecomunicazioni
  • 76 fingerprinter HTTP — Rileva tecnologie web tra cui firewall, database, server AI/LLM e altro ancora
  • Rilevamento di misconfigurazioni di sicurezza — Identifica problemi di sicurezza comuni come API non autenticate e protocolli in chiaro (--misconfigs)
  • Supporto multi-trasporto — TCP (predefinito), UDP (--udp) e SCTP (--sctp, solo Linux)
  • Supporto proxy — Instrada il traffico di scansione in modo trasparente attraverso proxy SOCKS5 o HTTP con risoluzione DNS configurabile
  • Metadati avanzati — Estrae versioni, configurazioni e dettagli rilevanti per la sicurezza da ciascun servizio
  • Modalità veloce — Scansiona solo le porte predefinite per una ricognizione rapida (--fast)
  • Output flessibile — Formati JSON, CSV o leggibile dall'uomo
  • Compatibile con le pipeline — Riceve input da Naabu, Nmap o qualsiasi strumento che restituisce host:port
  • Libreria Go — Importabile direttamente nelle tue applicazioni Go

Installazione

Release

Scarica un binario precompilato dalla pagina Releases.

Da GitHub

go install github.com/praetorian-inc/nerva/cmd/nerva@latest

Dal codice sorgente

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

Avvio rapido

Impronta un singolo target:

nerva -t example.com:22
# ssh://example.com:22

Ottieni metadati JSON dettagliati:

nerva -t example.com:22 --json
# {"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}

Pipe da uno scanner di porte:

naabu -host example.com -silent | nerva
# http://example.com:80
# ssh://example.com:22
# https://example.com:443

Il riferimento completo — ogni sottocomando, alias e flag, inclusi quelli nascosti da --help — è generato in docs/CLI.md.

Utilizzo

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

Esempi

Target multipli:

nerva -t example.com:22,example.com:80,example.com:443

Dal file:

nerva -l targets.txt --json -o results.json

Scansione UDP:

nerva -t example.com:53 -U
# dns://example.com:53

Scansione SCTP (solo Linux):

nerva -t telecom-server:3868 -S
# diameter://telecom-server:3868

Modalità veloce (solo porte predefinite):

nerva -l large-target-list.txt --fast --json

Routing proxy con risoluzione DNS remota:

nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p

Rilevamento di configurazioni di sicurezza errate

Nerva può identificare comuni configurazioni di sicurezza errate quando abilitato con --misconfigs:

nerva -t example.com:2375 --misconfigs --json

Misconfigurazioni rilevate:

ID rilevamentoGravitàDescrizione
docker-unauth-apiCriticaAPI Docker accessibile senza autenticazione
x11-unauth-accessCriticaIl server X11 consente connessioni non autenticate
dotnet-remoting-http-exposedAltaCanale HTTP di .NET Remoting esposto (rischio di deserializzazione)
smb-signing-not-requiredMediaFirma SMB non richiesta (rischio di attacco relay)
telnet-cleartextMediaTelnet trasmette le credenziali in chiaro
vnc-detectedMediaVNC rilevato (spesso autenticazione debole)
ssh-password-authMediaIl server consente l'autenticazione tramite password
ssh-weak-cipherBassaIl server offre cifrari deboli (RC4, 3DES, Blowfish)
ssh-weak-kexBassaIl server offre algoritmi di scambio chiavi deboli
ssh-weak-macBassaIl server offre algoritmi MAC deboli
ftp-cleartextBassaFTP trasmette le credenziali in chiaro

Output di esempio con misconfig:

{
  "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"
    }
  ]
}

Supporto Proxy

Nerva supporta l'instradamento del traffico di scansione attraverso proxy SOCKS5 e HTTP con risoluzione DNS configurabile.

Schemi proxy supportati:

  • socks5:// - Proxy SOCKS5 con risoluzione DNS locale
  • socks5h:// - Proxy SOCKS5 con risoluzione DNS lato proxy (sempre)
  • http:// - Proxy HTTP CONNECT
  • https:// - Proxy HTTPS CONNECT

Autenticazione 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

Strategie di risoluzione DNS (--dns-order):

Categorie