Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
nerva — Schnelle Service-Fingerprinting-CLI für 170+ Protokolle (TCP/UDP/SCTP) - entwickelt von Praetorian | Kitploit
Tools/GitHubGitHub/praetorian-inc/nerva
AufklärungIoT-SicherheitNetzwerkkartierungPort-ScanningSCADA/ICS-SicherheitInformationsbeschaffungFehlkonfiguration
GitHubpraetorian-inc/nerva

nerva

Schnelle Service-Fingerprinting-CLI für 170+ Protokolle (TCP/UDP/SCTP) - entwickelt von Praetorian

Repository anzeigen
3223848vor 1 TagVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
<img width="2976" height="1440" alt="Nerva - Schnelles Service-Fingerprinting-CLI für Netzwerkaufklärung mit Unterstützung für über 170 Protokolle" src="https://assets.kitploit.com/production/public/readmes/12252/3a0b59e2929fa8fdc41aafe4cb8649e3e85f0ba5f9df8128f7f3f952d70b0018.webp" />
<h1 align="center">
  Nerva
  <br>
  <sub>Nerva: Schnelles Service-Fingerprinting-CLI</sub>
</h1>

<p align="center">
<a href="https://github.com/praetorian-inc/nerva/releases"><img src="https://img.shields.io/github/v/release/praetorian-inc/nerva?style=flat-square" alt="Release"></a>
<a href="https://github.com/praetorian-inc/nerva/actions"><img src="https://img.shields.io/github/actions/workflow/status/praetorian-inc/nerva/ci.yml?style=flat-square" alt="Build Status"></a>
<a href="https://goreportcard.com/report/github.com/praetorian-inc/nerva"><img src="https://goreportcard.com/badge/github.com/praetorian-inc/nerva?style=flat-square" alt="Go Report Card"></a>
<a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square" alt="License"></a>
<a href="https://github.com/praetorian-inc/nerva/stargazers"><img src="https://img.shields.io/github/stars/praetorian-inc/nerva?style=flat-square" alt="Stars"></a>
</p>

<p align="center">
  <a href="#features">Funktionen</a> •
  <a href="#installation">Installation</a> •
  <a href="#quick-start">Schnellstart</a> •
  <a href="#usage">Verwendung</a> •
  <a href="#supported-protocols">Protokolle</a> •
  <a href="#library-usage">Bibliothek</a> •
  <a href="#use-cases">Anwendungsfälle</a> •
  <a href="#troubleshooting">Fehlerbehebung</a>
</p>

> **Hochperformantes Service-Fingerprinting in Go.** Identifizieren Sie über 170 Netzwerkprotokolle über TCP-, UDP- und SCTP-Transporte mit umfangreicher Metadatenextraktion.

Nerva erkennt und identifiziert schnell Dienste, die auf offenen Netzwerkports laufen. Verwenden Sie es zusammen mit Portscannern wie [Naabu](https://github.com/projectdiscovery/naabu), um entdeckte Dienste zu fingerprinten, oder integrieren Sie es in Ihre Sicherheitspipelines für automatisierte Aufklärung.

## Funktionen

- **Über 170 Protokoll-Plugins** — Datenbanken, Fernzugriff, Webdienste, Messaging, industrielle und Telekommunikationsprotokolle
- **76 HTTP-Fingerprinter** — Erkennung von Webtechnologien einschließlich Firewalls, Datenbanken, KI/LLM-Servern und mehr
- **Erkennung von Sicherheitsfehlkonfigurationen** — Identifizierung häufiger Sicherheitsprobleme wie nicht authentifizierte APIs und Klartextprotokolle (`--misconfigs`)
- **Unterstützung mehrerer Transporte** — TCP (Standard), UDP (`--udp`) und SCTP (`--sctp`, nur Linux)
- **Proxy-Unterstützung** — Scannen Sie Datenverkehr transparent über SOCKS5- oder HTTP-Proxys mit konfigurierbarer DNS-Auflösung
- **Umfangreiche Metadaten** — Extrahieren Sie Versionen, Konfigurationen und sicherheitsrelevante Details aus jedem Dienst
- **Schnellmodus** — Scannen Sie nur Standardports für eine schnelle Aufklärung (`--fast`)
- **Flexible Ausgabe** — JSON-, CSV- oder menschenlesbare Formate
- **Pipeline-freundlich** — Pipe von Naabu, Nmap oder jedem Tool, das `host:port` ausgibt
- **Go-Bibliothek** — Direkt in Ihre Go-Anwendungen importierbar

## Installation

### Releases
Laden Sie eine vorgefertigte Binärdatei von der [Releases](https://github.com/praetorian-inc/nerva/releases)-Seite herunter.

### Von GitHub```sh
go install github.com/praetorian-inc/nerva/cmd/nerva@latest
```
### Aus der Quelle```sh
git clone https://github.com/praetorian-inc/nerva.git
cd nerva
go build ./cmd/nerva
./nerva -h
```
### Docker```sh
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
```
## Schnellstart

Einen einzelnen Host fingerprinten:```sh
nerva -t example.com:22
# ssh://example.com:22
```
Detaillierte JSON-Metadaten abrufen:```sh
nerva -t example.com:22 --json
# {"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}
```
Pipe von einem Portscanner:```sh
naabu -host example.com -silent | nerva
# http://example.com:80
# ssh://example.com:22
# https://example.com:443
```
<!-- BEGIN generated: cli-subcommands -->

<!-- END generated: cli-subcommands -->

<!-- BEGIN generated: cli-aliases -->
Die vollständige Referenz — jeder Unterbefehl, Alias und jedes Flag, einschließlich der in `--help` verborgenen — wird in [docs/CLI.md](https://github.com/praetorian-inc/nerva/blob/main/docs/CLI.md) generiert.
<!-- END generated: cli-aliases -->

## Verwendung```
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
```
### Beispiele

**Mehrere Ziele:**```sh
nerva -t example.com:22,example.com:80,example.com:443
```
**Aus Datei:**```sh
nerva -l targets.txt --json -o results.json
```
**UDP-Scanning** (erfordert möglicherweise Root):```sh
sudo nerva -t example.com:53 -U
# dns://example.com:53
```
**SCTP-Scanning** (nur Linux):```sh
nerva -t telecom-server:3868 -S
# diameter://telecom-server:3868
```
**Schneller Modus** (nur Standard-Ports):```sh
nerva -l large-target-list.txt --fast --json
```
**Proxy-Routing mit Remote-DNS-Auflösung:**```sh
nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p
```
### Erkennung von Sicherheitsfehlkonfigurationen

Nerva kann gängige Sicherheitsfehlkonfigurationen identifizieren, wenn es mit `--misconfigs` aktiviert wird:```sh
nerva -t example.com:2375 --misconfigs --json
```
**Erkannte Fehlkonfigurationen:**

| Finding ID | Schweregrad | Beschreibung |
|------------|----------|-------------|
| `docker-unauth-api` | Kritisch | Docker-API ohne Authentifizierung erreichbar |
| `x11-unauth-access` | Kritisch | X11-Server erlaubt unauthentifizierte Verbindungen |
| `smb-signing-not-required` | Mittel | SMB-Signierung nicht erforderlich (Relay-Angriffsrisiko) |
| `telnet-cleartext` | Mittel | Telnet überträgt Anmeldedaten im Klartext |
| `vnc-detected` | Mittel | VNC erkannt (oft schwache Authentifizierung) |
| `ssh-password-auth` | Mittel | Server erlaubt Passwort-Authentifizierung |
| `ssh-weak-cipher` | Niedrig | Server bietet schwache Cipher (RC4, 3DES, Blowfish) |
| `ssh-weak-kex` | Niedrig | Server bietet schwache Schlüsselaustauschalgorithmen |
| `ssh-weak-mac` | Niedrig | Server bietet schwache MAC-Algorithmen |
| `ftp-cleartext` | Niedrig | FTP überträgt Anmeldedaten im Klartext |

**Beispielausgabe mit Fehlkonfigurationen:**```json
{
  "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"
    }
  ]
}
```
### Proxy-Unterstützung

Nerva unterstützt das Routing von Scan-Verkehr über SOCKS5- und HTTP-Proxys mit konfigurierbarer DNS-Auflösung.

**Unterstützte Proxy-Schemata:**

- `socks5://` - SOCKS5-Proxy mit lokaler DNS-Auflösung
- `socks5h://` - SOCKS5-Proxy mit proxyseitiger DNS-Auflösung (immer)
- `http://` - HTTP-CONNECT-Proxy
- `https://` - HTTPS-CONNECT-Proxy

**Proxy-Authentifizierung:**```sh
# 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
```
**DNS-Auflösungsstrategien** (`--dns-order`):

| Option | Strategie | Anwendungsfall |
|--------|----------|----------|
| `l` | Nur lokal | Standard-lokales DNS (Standard) |
| `p` | Nur Proxy | DNS-Auflösung über den Proxy erzwingen |
| `lp` | Lokal, Fallback auf Proxy | Zuerst lokal versuchen, bei Fehler Proxy verwenden |
| `pl` | Proxy, Fallback auf lokal | Zuerst Proxy versuchen, bei Fehler lokal verwenden |

**Hinweis:** Das Schema `socks5h://` erzwingt automatisch DNS über den Proxy (entspricht `--dns-order p`)

**Tor-Scan-Beispiel:**```sh
# Scan .onion services through Tor (SOCKS5 proxy on port 9050)
nerva -t http://example.onion:80 --proxy socks5h://127.0.0.1:9050
```
**UDP über Proxy:**```sh
# UDP scanning through SOCKS5 proxy (limited support)
nerva -t target.com:161 --proxy socks5://127.0.0.1:1080 --udp
```
⚠️ **UDP-Einschränkungen:** UDP über SOCKS5 wird nur eingeschränkt unterstützt. Nicht alle SOCKS5-Server unterstützen UDP-Assoziation. Ein lokaler UDP-Fallback kann auftreten.

**Paralleles Scannen mit Ratenbegrenzung:**```sh
nerva -l large-target-list.txt -W 100 -H 5 -R 50 -v
```
**Graceful Shutdown** (Strg+C liefert Teilergebnisse zurück):```sh
nerva -l huge-target-list.txt -W 50 -v
# Press Ctrl+C to stop — collected results are still printed
```
## Unterstützte Protokolle

**Über 170 Service-Erkennungs-Plugins** für TCP, UDP und SCTP:

### HTTP-Fingerprint-Module (66)

Technologie-Erkennung für Webdienste, organisiert nach Kategorien:

#### Firewalls & Netzwerksicherheit (12)

| Modul | Beschreibung |
|--------|-------------|
| Checkpoint | Check Point Security Gateway |
| Cisco ASA/FTD | Cisco Firewall/VPN-Appliances |
| FortiGate | Fortinet Firewall/VPN |
| GlobalProtect | Palo Alto Networks VPN |
| Juniper | Juniper SRX Firewalls |
| OPNsense | OPNsense Firewall |
| pfSense | pfSense Firewall |
| SonicWall | SonicWall Firewalls |
| AnyConnect | Cisco AnyConnect SSL VPN |
| Cisco Expressway | Cisco Collaboration Gateway |
| BigIP | F5 BIG-IP Load Balancer |
| WinRM | Windows Remote Management |

#### KI/LLM & Maschinelles Lernen (6)

| Modul | Beschreibung |
|--------|-------------|
| Ollama | Selbstgehosteter LLM-Inferenzserver |
| LocalAI | Selbstgehostete LLM-Inferenz (OpenAI-kompatibel) |
| Open WebUI | LLM-Weboberfläche (im ChatGPT-Stil) |
| Triton | NVIDIA Triton Inference Server |
| Weaviate | Vektordatenbank für KI |
| ChromaDB | Vektordatenbank |

#### Datenbanken & Datenspeicher (12)

| Modul | Beschreibung |
|--------|-------------|
| ArangoDB | Multi-Model-Datenbank |
| CockroachDB | Verteilte SQL-Datenbank |
| CouchDB | Apache-Dokumentendatenbank |
| Elasticsearch | Such- und Analyse-Engine |
| etcd | Verteilter Key-Value-Speicher |
| Milvus | Vektordatenbank |
| MinIO | S3-kompatibler Objektspeicher |
| Pinecone | Vektordatenbank |
| Redis Commander | Redis-Webverwaltungsoberfläche |
| TiDB | Verteilte SQL-Datenbank |
| YugabyteDB | Verteilte SQL-Datenbank |
| Qdrant | Vektordatenbank |

#### DevOps & Infrastruktur (14)

| Modul | Beschreibung |
|--------|-------------|
| Artifactory | JFrog-Artefakt-Repository |
| Consul | HashiCorp Service Mesh |
| Docker Registry | Container-Image-Registry |
| Gitea | Selbstgehosteter Git-Dienst |
| Grafana | Observability-Plattform |
| Harbor | Container-Registry |
| Jaeger | Verteiltes Tracing |
| Jenkins | CI/CD-Automatisierung |
| Kubernetes | Container-Orchestrierungs-API |
| Portainer | Docker-Verwaltungsoberfläche |
| Prometheus | Überwachungssystem |
| Swagger/OpenAPI | API-Dokumentation |
| TeamCity | CI/CD-Server |
| Vault | HashiCorp Secrets Management |

#### Webserver & Frameworks (10)

| Modul | Beschreibung |
|--------|-------------|
| Apache HTTPD | Apache HTTP Server |
| Express.js | Node.js-Webframework |
| GoAhead | Eingebetteter Webserver |
| Gotenberg | PDF-Generierungsdienst |
| Guacamole | Apache Remote-Desktop-Gateway |
| SOAP | Webdienste |
| Tengine | Alibaba-Webserver |
| Tomcat | Apache Tomcat |
| WordPress | CMS-Plattform |
| UPnP | Universal Plug and Play |

#### Enterprise & Business (8)

| Modul | Beschreibung |
|--------|-------------|
| AEM | Adobe Experience Manager |
| Dynamics 365 | Microsoft Dynamics 365 / Power Apps |
| Oracle Service Cloud | Oracle CRM-Plattform |
| SAP NetWeaver | SAP-Enterprise-Plattform |
| Splunk | Log-Management-Plattform |
| VMware Horizon | Virtual-Desktop-Infrastruktur |
| QNAP QTS | NAS-Verwaltung |
| Exchange | Microsoft Exchange Server |

#### Home & IoT (2)

| Modul | Beschreibung |
|--------|-------------|
| Home Assistant | Heimautomatisierungsplattform |
| UniFi/EdgeOS | Ubiquiti-Netzwerkgeräte |

#### Sonstige (2)

| Modul | Beschreibung |
|--------|-------------|
| Go pprof | Go-Profiling-Endpunkte |
| NATS | Message Broker |

### Datenbanken (20)

| Protokoll | Transport | Standardports |
|----------|-----------|---------------|
| PostgreSQL | TCP | 5432 |
| MySQL | TCP | 3306 |
| MSSQL | TCP | 1433 |
| Oracle | TCP | 1521 |
| MongoDB | TCP | 27017 |
| Redis | TCP/TLS | 6379, 6380 |
| Cassandra | TCP | 9042 |
| InfluxDB | TCP | 8086 |
| Neo4j | TCP/TLS | 7687 |
| DB2 | TCP | 446, 50000 |
| Sybase | TCP | 5000 |
| Firebird | TCP | 3050 |
| Memcached | TCP | 11211 |
| ZooKeeper | TCP | 2181 |
| Milvus | TCP | 19530, 9091 |
| CouchDB | HTTP | 5984 |
| Elasticsearch | HTTP | 9200 |
| ArangoDB | HTTP | 8529 |
| ChromaDB | HTTP | 8000 |
| Pinecone | HTTP | 443 |

### Fernzugriff (6)

| Protokoll | Transport | Standardports |
|----------|-----------|---------------|
| SSH | TCP | 22, 2222 |
| RDP | TCP/TLS | 3389 |
| Telnet | TCP | 23 |
| VNC | TCP | 5900 |
| AnyDesk | TCP | 7070 |
| TeamViewer | TCP | 5938 |

### Web & API (2)

| Protokoll | Transport | Hinweise |
|----------|-----------|-------|
| HTTP/HTTPS | TCP | HTTP/2, Technologie-Erkennung via Wappalyzer |
| Kubernetes | TCP | API-Server-Erkennung |

### Messaging & Warteschlangen (10)

| Protokoll | Transport | Standardports |
|----------|-----------|---------------|
| Kafka | TCP/TLS | 9092, 9093 |
| MQTT 3/5 | TCP/TLS | 1883, 8883 |
| AMQP | TCP/TLS | 5672, 5671 |
| ActiveMQ | TCP/TLS | 61616, 61617 |
| NATS | TCP/TLS | 4222, 6222 |
| Pulsar | TCP/TLS | 6650, 6651 |
| SMTP | TCP/TLS | 25, 465, 587 |
| POP3 | TCP/TLS | 110, 995 |
| IMAP | TCP/TLS | 143, 993 |
| SMPP | TCP | 2775, 2776 |

### Datei- & Verzeichnisdienste (7)

| Protokoll | Transport | Standardports |
|----------|-----------|---------------|
| FTP | TCP | 21 |
| SMB | TCP | 445 |
| NFS | TCP/UDP | 2049 |
| Rsync | TCP | 873 |
| TFTP | UDP | 69 |
| SVN | TCP | 3690 |
| LDAP | TCP/TLS | 389, 636 |

### Netzwerkdienste (11)

| Protokoll | Transport | Standardports |
|----------|-----------|---------------|
| DNS | TCP/UDP | 53 |
| DHCP | UDP | 67, 68 |
| NTP | UDP | 123 |
| SNMP | UDP | 161 |
| NetBIOS-NS | UDP | 137 |
| STUN | UDP | 3478 |
| OpenVPN | UDP | 1194 |
| IPsec | UDP | 500 |
| IPMI | UDP | 623 |
| CoAP | UDP | 5683 |
| Echo | TCP/UDP | 7 |

### Industrielle Steuerungssysteme (18)

| Protokoll | Transport | Standardports | Hinweise |
|----------|-----------|---------------|-------|
| Modbus | TCP | 502 | SCADA/SPS |
| S7comm | TCP | 102 | Siemens SPS |
| EtherNet/IP | TCP | 44818 | Rockwell/Allen-Bradley |
| PROFINET | TCP | 34962-34964 | Siemens Industrie |
| BACnet | UDP | 47808 | Gebäudeautomation |
| OPC UA | TCP | 4840 | Industrielle Interoperabilität |
| OMRON FINS | TCP/UDP | 9600 | OMRON SPS |
| MELSEC-Q | TCP | 5006, 5007 | Mitsubishi SPS |
| KNXnet/IP | UDP | 3671 | Gebäudeautomation |
| IEC 104 | TCP | 2404 | Stromnetz-SCADA |
| DNP3 | TCP | 20000 | Stromnetz-SCADA |
| Codesys | TCP | 1200, 2455 | SPS-Laufzeitumgebung |
| Fox | TCP | 1911 | Tridium Niagara |
| PC WORX | TCP | 1962 | Phoenix Contact |
| ProConOS | TCP | 20547 | SPS-Laufzeitumgebung |
| HART-IP | TCP | 5094 | Prozessautomatisierung |
| EtherCAT | UDP | 34980 | Motion Control |
| Crimson v3 | TCP | 789 | Red Lion HMI |
| PCOM | TCP | 20256 | Unitronics SPS |
| GE SRTP | TCP | 18245 | GE SPS |
| ATG | TCP | 10001 | Tankmessgeräte |

### Telekommunikation & VoIP (17)

| Protokoll | Transport | Standardports | Hinweise |
|----------|-----------|---------------|-------|
| Diameter | TCP/SCTP | 3868 | LTE/5G AAA |
| M3UA | SCTP | 2905 | SS7 über IP |
| M2UA | SCTP | 2904 | MTP2 User Adaptation |
| M2PA | SCTP | 3565 | MTP2 Peer Adaptation |
| SGsAP | SCTP | 29118 | Circuit-Switched Fallback |
| X2AP | SCTP | 36422 | LTE Inter-eNodeB |
| IUA | SCTP | 9900 | ISDN über IP |
| SIP | TCP/UDP/TLS | 5060, 5061 | VoIP-Signalisierung |
| MEGACO/H.248 | UDP | 2944, 2945 | Media Gateway |
| MGCP | UDP | 2427, 2727 | Media Gateway |
| H.323 | TCP | 1720 | Videokonferenzen |
| SCCP/Skinny | TCP | 2000, 2443 | Cisco IP-Telefone |
| IAX2 | UDP | 4569 | Asterisk-Protokoll |
| GTP-C | UDP | 2123 | GPRS-Steuerung |
| GTP-U | UDP | 2152 | GPRS-Nutzerebene |
| GTP' | UDP | 3386 | GPRS-Abrechnung |
| PFCP | UDP | 8805 | 5G-Nutzerebene |

### VPN & Sicherheit (11)

| Protokoll | Transport | Standardports |
|----------|-----------|---------------|
| SSH | TCP | 22, 2222 |
| OpenVPN | UDP | 1194 |
| WireGuard | UDP | 51820 |
| IPsec/IKEv2 | UDP | 500, 4500 |
| L2TP | UDP | 1701 |
| SSTP | TCP | 443 |
| GlobalProtect | HTTP | 443 |
| AnyConnect | HTTP | 443 |
| FortiGate | HTTP | 443 |
| STUN/TURN | UDP | 3478, 5349 |
| Kerberos | TCP | 88 |

### Fernzugriff & -verwaltung (10)

| Protokoll | Transport | Standardports |
|----------|-----------|---------------|
| RDP | TCP/TLS | 3389 |
| VNC | TCP | 5900 |
| Telnet | TCP | 23 |
| WinRM | HTTP | 5985, 5986 |
| IPMI | UDP | 623 |
| SNMP | UDP | 161 |
| Zabbix Agent | TCP | 10050 |
| NRPE | TCP/TLS | 5666 |
| Docker | TCP/TLS | 2375, 2376 |
| X11 | TCP | 6000-6063 |

### Entwicklerwerkzeuge (8)

| Protokoll | Transport | Standardports |
|----------|-----------|---------------|
| HTTP/HTTPS | TCP | 80, 443, 8080, 8443 |
| Java RMI | TCP | 1099 |
| JDWP | TCP | 5005 |
| RTSP | TCP | 554 |
| Linux RPC | TCP | 111 |
| JetDirect | TCP | 9100 |
| CUPS/IPP | TCP | 631 |
| SonarQube | TCP | 9000 |

## Bibliotheksnutzung

Importiere Nerva in deine Go-Anwendungen:```go
package main

import (
    "context"
    "fmt"
    "log"
    "net/netip"
    "time"

    "github.com/praetorian-inc/nerva/pkg/plugins"
    "github.com/praetorian-inc/nerva/pkg/scan"
)

func main() {
    // Configure scan
    config := scan.Config{
        DefaultTimeout: 2 * time.Second,
        FastMode:       false,
        UDP:            false,
        Proxy:          "socks5://127.0.0.1:1080", // optional
        ProxyAuth:      "username:password",       // optional
        DNSOrder:       "p",                       // resolver strategy
    }

    // Create target
    ip, _ := netip.ParseAddr("93.184.216.34")
    target := plugins.Target{
        Address: netip.AddrPortFrom(ip, 22),
        Host:    "example.com",
    }

    // Run scan
    results, err := scan.ScanTargets(context.Background(), []plugins.Target{target}, config)
    if err != nil {
        log.Fatal(err)
    }

    // Process results
    for _, result := range results {
        fmt.Printf("%s:%d - %s (%s)\n",
            result.Host, result.Port,
            result.Protocol, result.Transport)
    }
}
```
Siehe [examples/service-fingerprinting-example.go](https://github.com/praetorian-inc/nerva/blob/main/examples/service-fingerprinting-example.go) für ein vollständiges funktionierendes Beispiel.

## Anwendungsfälle

### Penetrationstests

Fingerprinting von Diensten, die während der Aufklärung entdeckt wurden, um potenzielle Angriffsvektoren schnell zu identifizieren.

### Asset-Discovery-Pipelines

Kombinieren Sie es mit Naabu oder Masscan für eine groß angelegte Asset-Inventarisierung:```sh
naabu -host 10.0.0.0/24 -silent | nerva --json | jq '.protocol'
```
### CI/CD-Sicherheitsscans

In Deployment-Pipelines integrieren, um zu überprüfen, dass nur erwartete Dienste exponiert sind.

### Bug-Bounty-Aufklärung

Dienste über Scope-Ziele hinweg schnell enumerieren, um interessante Endpunkte zu finden.

### Telekommunikationsnetzwerkanalyse

Diameter-Knoten in LTE/5G-Netzen mittels SCTP-Transport fingerprinten (Linux):```sh
nerva -t mme.telecom.local:3868 -S --json
```
## Architektur```mermaid
graph LR
    A[host:port input] --> B[Target Parser]
    B --> C[Scan Engine]
    C --> D{Transport}
    D -->|TCP| E[TCP Plugins]
    D -->|UDP| F[UDP Plugins]
    D -->|SCTP| G[SCTP Plugins]
    E --> H[Service Detection]
    F --> H
    G --> H
    H --> I[Metadata Extraction]
    I --> J[JSON/CSV/Text Output]
```
## Warum Nerva?

### vs Nmap

- **Intelligentere Standardeinstellungen**: Nerva prüft das wahrscheinlichste Protokoll zuerst basierend auf der Portnummer
- **Strukturierte Ausgabe**: Native JSON/CSV-Unterstützung für einfaches Parsen und Pipeline-Integration
- **Fokussiert**: Nur Service-Fingerprinting — kombinieren Sie es mit dedizierten Port-Scannern für die Erkennung

### vs zgrab2

- **Automatische Erkennung**: Kein Protokoll muss im Voraus angegeben werden
- **Einfachere Verwendung**: `nerva -t host:port` vs `echo host | zgrab2 http -p port`

## Fehlerbehebung

### Keine Ausgabe

**Ursache**: Der Port ist geschlossen oder es wurde kein unterstützter Dienst erkannt.

**Lösung**: Überprüfen Sie, ob der Port geöffnet ist:```sh
nc -zv example.com 80
```
### Timeout-Fehler

**Ursache**: Standard-Timeout von 2 Sekunden zu kurz für langsame Dienste.

**Lösung**: Timeout erhöhen:```sh
nerva -t example.com:80 -w 5000  # 5 seconds
```
### UDP-Dienste nicht erkannt

**Ursache**: UDP-Scanning ist standardmäßig deaktiviert.

**Lösung**: Mit dem `-U`-Flag aktivieren (erfordert möglicherweise root):```sh
sudo nerva -t example.com:53 -U
```
### SCTP funktioniert nicht

**Ursache**: SCTP wird nur unter Linux unterstützt.

**Lösung**: Auf einem Linux-System oder in einem Container ausführen:```sh
docker run --rm nerva -t telecom:3868 -S
```
## Terminologie

- **Dienst**: Ein Netzwerkdienst, der auf einem Port läuft (SSH, HTTP, PostgreSQL usw.)
- **Fingerprinting**: Erkennen und Identifizieren von Diensttyp, Version und Konfiguration
- **Plugin**: Ein protokollspezifisches Erkennungsmodul
- **Fast Mode**: Scannen nur des Standardports für jedes Protokoll (80/20-Optimierung)
- **Transport**: Netzwerkschichtprotokoll (TCP, UDP oder SCTP)

## Unterstützung

Wenn Sie Nerva nützlich finden, ziehen Sie bitte in Betracht, ihm einen Stern zu geben:

[![GitHub stars](https://img.shields.io/github/stars/praetorian-inc/nerva?style=social)](https://github.com/praetorian-inc/nerva)

## Mitwirken

Wir freuen uns über Beiträge! Siehe [CONTRIBUTING.md](https://github.com/praetorian-inc/nerva/blob/main/CONTRIBUTING.md) für Richtlinien.

## Lizenz

Apache 2.0 — siehe [LICENSE](https://github.com/praetorian-inc/nerva/blob/main/LICENSE) für Details.

## Danksagungen

Nerva ist ein gepflegter Fork von [fingerprintx](https://github.com/praetorian-inc/fingerprintx), ursprünglich entwickelt von Praetorians Praktikantenklasse von 2022:

* [Soham Roy](https://github.com/praetorian-sohamroy)
* [Jue Huang](https://github.com/jue-huang)
* [Henry Jung](https://github.com/henryjung64)
* [Tristan Wiesepape](https://github.com/qwetboy10)
* [Joseph Henry](https://github.com/jwhenry28)
* [Noah Tutt](https://github.com/noahtutt)
* [Nathan Sportsman](https://github.com/nsportsman)
Tool herunterladen