
CLI rapide d'empreinte de services pour plus de 170 protocoles (TCP/UDP/SCTP) - construit par Praetorian
Fonctionnalités • Installation • Démarrage rapide • Utilisation • Protocoles • Bibliothèque • Cas d'usage • Dépannage
Empreinte de services haute performance écrite en Go. Identifiez plus de 170 protocoles réseau sur les transports TCP, UDP et SCTP avec une extraction riche de métadonnées.
Nerva détecte et identifie rapidement les services en écoute sur les ports réseau ouverts. Utilisez-le en complément de scanners de ports comme Naabu pour empreinter les services découverts, ou intégrez-le dans vos pipelines de sécurité pour une reconnaissance automatisée.
--misconfigs)--udp) et SCTP (--sctp, Linux uniquement)--fast)host:portTéléchargez un binaire précompilé depuis la page Releases.
go install github.com/praetorian-inc/nerva/cmd/nerva@latest
git clone https://github.com/praetorian-inc/nerva.git
cd nerva
go build ./cmd/nerva
./nerva -h
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
Empreinte d'une seule cible :
nerva -t example.com:22
# ssh://example.com:22
Obtenir des métadonnées JSON détaillées :
nerva -t example.com:22 --json
# {"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}
Pipe depuis un scanner de ports :
naabu -host example.com -silent | nerva
# http://example.com:80
# ssh://example.com:22
# https://example.com:443
La référence complète — chaque sous-commande, alias et option, y compris ceux masqués dans --help — est générée dans docs/CLI.md.
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
Cibles multiples :
nerva -t example.com:22,example.com:80,example.com:443
Depuis le fichier :
nerva -l targets.txt --json -o results.json
Scan UDP :
nerva -t example.com:53 -U
# dns://example.com:53
Scan SCTP (Linux uniquement) :
nerva -t telecom-server:3868 -S
# diameter://telecom-server:3868
Mode rapide (ports par défaut uniquement) :
nerva -l large-target-list.txt --fast --json
Routage proxy avec résolution DNS distante :
nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p
Nerva peut identifier les erreurs de configuration de sécurité courantes lorsqu'il est activé avec --misconfigs :
nerva -t example.com:2375 --misconfigs --json
Mauvaises configurations détectées :
| ID de constat | Sévérité | Description |
|---|---|---|
docker-unauth-api | Critique | API Docker accessible sans authentification |
x11-unauth-access | Critique | Le serveur X11 autorise les connexions non authentifiées |
dotnet-remoting-http-exposed | Élevée | Canal HTTP .NET Remoting exposé (risque de désérialisation) |
smb-signing-not-required | Moyenne | Signature SMB non requise (risque d'attaque par relais) |
telnet-cleartext | Moyenne | Telnet transmet les identifiants en clair |
vnc-detected | Moyenne | VNC détecté (authentification souvent faible) |
ssh-password-auth | Moyenne | Le serveur autorise l'authentification par mot de passe |
ssh-weak-cipher | Faible | Le serveur propose des chiffrements faibles (RC4, 3DES, Blowfish) |
ssh-weak-kex | Faible | Le serveur propose des algorithmes d'échange de clés faibles |
ssh-weak-mac | Faible | Le serveur propose des algorithmes MAC faibles |
ftp-cleartext | Faible | FTP transmet les identifiants en clair |
Exemple de sortie avec mauvaises configurations :
{
"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"
}
]
}
Nerva prend en charge le routage du trafic de scan via des proxys SOCKS5 et HTTP avec une résolution DNS configurable.
Schémas de proxy pris en charge :
socks5:// - proxy SOCKS5 avec résolution DNS localesocks5h:// - proxy SOCKS5 avec résolution DNS côté proxy (toujours)http:// - proxy HTTP CONNECThttps:// - proxy HTTPS CONNECTAuthentification du proxy :
# Inline authentication (URL format)
nerva -t example.com:80 --proxy socks5://username:[email protected]:1080