
nerva v1.57.0
CLI de identificación rápida de servicios para más de 170 protocolos (TCP/UDP/SCTP) - creado por Praetorian
Nerva
Nerva: CLI de huella digital de servicios rápida
Características • Instalación • Inicio rápido • Uso • Protocolos • Biblioteca • Casos de uso • Solución de problemas
Huella digital de servicios de alto rendimiento escrita en Go. Identifica más de 170 protocolos de red a través de transportes TCP, UDP y SCTP con extracción de metadatos enriquecida.
Nerva detecta e identifica rápidamente los servicios que se ejecutan en puertos de red abiertos. Úsalo junto con escáneres de puertos como Naabu para obtener la huella digital de los servicios descubiertos, o intégralo en tus canalizaciones de seguridad para un reconocimiento automatizado.
Características
- Más de 170 complementos de protocolo — Bases de datos, acceso remoto, servicios web, mensajería, protocolos industriales y de telecomunicaciones
- 76 rastreadores de huella HTTP — Detecta tecnologías web, incluidos firewalls, bases de datos, servidores de IA/LLM y más
- Detección de configuraciones incorrectas de seguridad — Identifica problemas de seguridad comunes como API no autenticadas y protocolos en texto claro (
--misconfigs) - Soporte para múltiples transportes — TCP (predeterminado), UDP (
--udp) y SCTP (--sctp, solo Linux) - Soporte para proxy — Enruta el tráfico de escaneo de forma transparente a través de proxies SOCKS5 o HTTP con resolución DNS configurable
- Metadatos enriquecidos — Extrae versiones, configuraciones y detalles relevantes para la seguridad de cada servicio
- Modo rápido — Escanea solo los puertos predeterminados para un reconocimiento rápido (
--fast) - Salida flexible — Formatos JSON, CSV o legibles por humanos
- Compatible con canalizaciones — Canaliza desde Naabu, Nmap o cualquier herramienta que genere
host:puerto - Biblioteca Go — Importar directamente en tus aplicaciones Go
Instalación
Lanzamientos
Descarga un binario precompilado desde la página de Lanzamientos.
Desde GitHub```sh
go install github.com/praetorian-inc/nerva/cmd/nerva@latest
### Desde el código fuente```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
## Inicio Rápido
Analizar un único objetivo:```sh
nerva -t example.com:22
# ssh://example.com:22
Obtén metadatos JSON detallados:```sh nerva -t example.com:22 --json
{"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}
Tubería desde un escáner de puertos:```sh
naabu -host example.com -silent | nerva
# http://example.com:80
# ssh://example.com:22
# https://example.com:443
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
### Flags
| Flag | Short | Description | Default |
|------|-------|-------------|---------|
| `--targets` | `-t` | Objetivo o lista de objetivos separados por comas | — |
| `--list` | `-l` | Archivo de entrada que contiene objetivos | — |
| `--output` | `-o` | Ruta del archivo de salida | stdout |
| `--json` | | Salida en formato JSON | false |
| `--csv` | | Salida en formato CSV | false |
| `--misconfigs` | | Habilitar detección de configuraciones incorrectas de seguridad | false |
| `--proxy` | | URL del proxy (ej. socks5://127.0.0.1:1080) | — |
| `--proxy-auth` | | Autenticación del proxy SOCKS5 (ej. usuario:contraseña) | — |
| `--dns-order` | | Orden de resolución DNS: `p`, `l`, `lp`, `pl` | `lp` |
| `--fast` | `-f` | Modo rápido (solo puertos predeterminados) | false |
| `--capabilities` | `-c` | Listar capacidades disponibles y salir | false |
| `--udp` | `-U` | Ejecutar plugins UDP | false |
| `--sctp` | `-S` | Ejecutar plugins SCTP (solo Linux) | false |
| `--timeout` | `-w` | Tiempo de espera en milisegundos | 2000 |
| `--verbose` | `-v` | Salida detallada a stderr | false |
| `--workers` | `-W` | Trabajadores de escaneo concurrentes | 50 |
| `--max-host-conn` | `-H` | Máximo de conexiones concurrentes por IP de host (0=ilimitado) | 0 |
| `--rate-limit` | `-R` | Máximo de escaneos por segundo globalmente (0=ilimitado) | 0 |
### Examples
**Múltiples objetivos:**```sh
nerva -t example.com:22,example.com:80,example.com:443
Del archivo:```sh nerva -l targets.txt --json -o results.json
**UDP scanning** (puede requerir root):```sh
sudo nerva -t example.com:53 -U
# dns://example.com:53
Escaneo SCTP (solo Linux):```sh nerva -t telecom-server:3868 -S
diameter://telecom-server:3868
**Modo rápido** (solo puertos por defecto):```sh
nerva -l large-target-list.txt --fast --json
Enrutamiento de proxy con resolución DNS remota:```sh nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p
### Detección de Configuraciones Incorrectas de Seguridad
Nerva puede identificar configuraciones incorrectas de seguridad comunes cuando se habilita con `--misconfigs`:```sh
nerva -t example.com:2375 --misconfigs --json
Configuraciones incorrectas detectadas:
| ID de hallazgo | Gravedad | Descripción |
|---|---|---|
docker-unauth-api | Crítica | API de Docker accesible sin autenticación |
x11-unauth-access | Crítica | El servidor X11 permite conexiones no autenticadas |
smb-signing-not-required | Media | Firma SMB no requerida (riesgo de ataque de retransmisión) |
telnet-cleartext | Media | Telnet transmite credenciales en texto claro |
vnc-detected | Media | VNC detectado (a menudo autenticación débil) |
ssh-password-auth | Media | El servidor permite autenticación por contraseña |
ssh-weak-cipher | Baja | El servidor ofrece cifrados débiles (RC4, 3DES, Blowfish) |
ssh-weak-kex | Baja | El servidor ofrece algoritmos de intercambio de claves débiles |
ssh-weak-mac | Baja | El servidor ofrece algoritmos MAC débiles |
ftp-cleartext | Baja | FTP transmite credenciales en texto claro |
Ejemplo de salida con configuraciones incorrectas:```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" } ] }
### Soporte de Proxy
Nerva soporta el enrutamiento del tráfico de escaneo a través de proxies SOCKS5 y HTTP con resolución DNS configurable.
**Esquemas de proxy compatibles:**
- `socks5://` - proxy SOCKS5 con resolución DNS local
- `socks5h://` - proxy SOCKS5 con resolución DNS del lado del proxy (siempre)
- `http://` - proxy HTTP CONNECT
- `https://` - proxy HTTPS CONNECT
**Autenticación de proxy:**```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
Estrategias de resolución DNS (--dns-order):
| Opción | Estrategia | Caso de uso |
|---|---|---|
l | Solo local | DNS local estándar (predeterminado) |
p | Solo proxy | Forzar resolución DNS del lado del proxy |
lp | Local, fallback a proxy | Intentar local primero, usar proxy si falla |
pl | Proxy, fallback a local | Intentar proxy primero, usar local si falla |
Nota: El esquema socks5h:// fuerza automáticamente la resolución DNS del lado del proxy (equivalente a --dns-order p)
Ejemplo de escaneo Tor:```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 a través de proxy:**```sh
# UDP scanning through SOCKS5 proxy (limited support)
nerva -t target.com:161 --proxy socks5://127.0.0.1:1080 --udp
⚠️ Limitaciones de UDP: La compatibilidad de UDP a través de SOCKS5 es limitada. No todos los servidores SOCKS5 admiten la asociación UDP. Puede ocurrir una falla local de UDP.
Escaneo paralelo con limitación de velocidad:```sh nerva -l large-target-list.txt -W 100 -H 5 -R 50 -v
**Apagado elegante** (Ctrl+C devuelve resultados parciales):```sh
nerva -l huge-target-list.txt -W 50 -v
# Press Ctrl+C to stop — collected results are still printed
Protocolos Soportados
170+ plugins de detección de servicios en TCP, UDP y SCTP:
Módulos de Huellas HTTP (66)
Detección de tecnologías para servicios web, organizados por categoría:
Cortafuegos y Seguridad de Red (12)
| Módulo | Descripción |
|---|---|
| Checkpoint | Check Point Security Gateway |
| Cisco ASA/FTD | Dispositivos firewall/VPN de Cisco |
| FortiGate | Firewall/VPN de Fortinet |
| GlobalProtect | VPN de Palo Alto Networks |
| Juniper | Cortafuegos Juniper SRX |
| OPNsense | Cortafuegos OPNsense |
| pfSense | Cortafuegos pfSense |
| SonicWall | Cortafuegos SonicWall |
| AnyConnect | Cisco AnyConnect SSL VPN |
| Cisco Expressway | Puerta de enlace de colaboración Cisco |
| BigIP | Balanceador de carga F5 BIG-IP |
| WinRM | Administración remota de Windows |
IA/LLM y Aprendizaje Automático (6)
| Módulo | Descripción |
|---|---|
| Ollama | Servidor de inferencia LLM autogestionado |
| LocalAI | Inferencia LLM autogestionada (compatible con OpenAI) |
| Open WebUI | Interfaz web LLM (estilo ChatGPT) |
| Triton | NVIDIA Triton Inference Server |
| Weaviate | Base de datos vectorial para IA |
| ChromaDB | Base de datos vectorial |
Bases de Datos y Almacenes de Datos (12)
| Módulo | Descripción |
|---|---|
| ArangoDB | Base de datos multimodal |
| CockroachDB | Base de datos SQL distribuida |
| CouchDB | Base de datos documental Apache |
| Elasticsearch | Motor de búsqueda y análisis |
| etcd | Almacén de clave-valor distribuido |
| Milvus | Base de datos vectorial |
| MinIO | Almacenamiento de objetos compatible con S3 |
| Pinecone | Base de datos vectorial |
| Redis Commander | Interfaz web de gestión Redis |
| TiDB | Base de datos SQL distribuida |
| YugabyteDB | Base de datos SQL distribuida |
| Qdrant | Base de datos vectorial |
DevOps e Infraestructura (14)
| Módulo | Descripción |
|---|---|
| Artifactory | Repositorio de artefactos JFrog |
| Consul | Malla de servicios HashiCorp |
| Docker Registry | Registro de imágenes de contenedores |
| Gitea | Servicio Git autogestionado |
| Grafana | Plataforma de observabilidad |
| Harbor | Registro de contenedores |
| Jaeger | Trazado distribuido |
| Jenkins | Automatización CI/CD |
| Kubernetes | API de orquestación de contenedores |
| Portainer | Interfaz de gestión Docker |
| Prometheus | Sistema de monitoreo |
| Swagger/OpenAPI | Documentación de API |
| TeamCity | Servidor CI/CD |
| Vault | Gestión de secretos HashiCorp |
Servidores Web y Frameworks (10)
| Módulo | Descripción |
|---|---|
| Apache HTTPD | Apache HTTP Server |
| Express.js | Framework web Node.js |
| GoAhead | Servidor web embebido |
| Gotenberg | Servicio de generación de PDF |
| Guacamole | Puerta de enlace de escritorio remoto Apache |
| SOAP | Servicios web |
| Tengine | Servidor web Alibaba |
| Tomcat | Apache Tomcat |
| WordPress | Plataforma CMS |
| UPnP | Universal Plug and Play |
Empresarial y Negocio (8)
| Módulo | Descripción |
|---|---|
| AEM | Adobe Experience Manager |
| Dynamics 365 | Microsoft Dynamics 365 / Power Apps |
| Oracle Service Cloud | Plataforma CRM de Oracle |
| SAP NetWeaver | Plataforma empresarial SAP |
| Splunk | Plataforma de gestión de registros |
| VMware Horizon | Infraestructura de escritorio virtual |
| QNAP QTS | Gestión NAS |
| Exchange | Microsoft Exchange Server |
Hogar e IoT (2)
| Módulo | Descripción |
|---|---|
| Home Assistant | Plataforma de automatización del hogar |
| UniFi/EdgeOS | Dispositivos de red Ubiquiti |
Otros (2)
| Módulo | Descripción |
|---|---|
| Go pprof | Puntos finales de perfilado Go |
| NATS | Broker de mensajes |
Bases de Datos (20)
| Protocolo | Transporte | Puertos Predeterminados |
|---|---|---|
| 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 |
Acceso Remoto (6)
| Protocolo | Transporte | Puertos Predeterminados |
|---|---|---|
| SSH | TCP | 22, 2222 |
| RDP | TCP/TLS | 3389 |
| Telnet | TCP | 23 |
| VNC | TCP | 5900 |
| AnyDesk | TCP | 7070 |
| TeamViewer | TCP | 5938 |
Web y API (2)
| Protocolo | Transporte | Notas |
|---|---|---|
| HTTP/HTTPS | TCP | HTTP/2, detección de tecnologías mediante Wappalyzer |
| Kubernetes | TCP | Detección de servidor API |
Mensajería y Colas (10)
| Protocolo | Transporte | Puertos Predeterminados |
|---|---|---|
| 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 |
Servicios de Archivos y Directorios (7)
| Protocolo | Transporte | Puertos Predeterminados |
|---|---|---|
| FTP | TCP | 21 |
| SMB | TCP | 445 |
| NFS | TCP/UDP | 2049 |
| Rsync | TCP | 873 |
| TFTP | UDP | 69 |
| SVN | TCP | 3690 |
| LDAP | TCP/TLS | 389, 636 |
Servicios de Red (11)
| Protocolo | Transporte | Puertos Predeterminados |
|---|---|---|
| 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 |
Sistemas de Control Industrial (18)
| Protocolo | Transporte | Puertos Predeterminados | Notas |
|---|---|---|---|
| Modbus | TCP | 502 | SCADA/PLC |
| S7comm | TCP | 102 | PLC de Siemens |
| EtherNet/IP | TCP | 44818 | Rockwell/Allen-Bradley |
| PROFINET | TCP | 34962-34964 | Industrial de Siemens |
| BACnet | UDP | 47808 | Automatización de edificios |
| OPC UA | TCP | 4840 | Interoperabilidad industrial |
| OMRON FINS | TCP/UDP | 9600 | PLC de OMRON |
| MELSEC-Q | TCP | 5006, 5007 | PLC de Mitsubishi |
| KNXnet/IP | UDP | 3671 | Automatización de edificios |
| IEC 104 | TCP | 2404 | SCADA de red eléctrica |
| DNP3 | TCP | 20000 | SCADA de red eléctrica |
| Codesys | TCP | 1200, 2455 | Entorno de ejecución PLC |
| Fox | TCP | 1911 | Tridium Niagara |
| PC WORX | TCP | 1962 | Phoenix Contact |
| ProConOS | TCP | 20547 | Entorno de ejecución PLC |
| HART-IP | TCP | 5094 | Automatización de procesos |
| EtherCAT | UDP | 34980 | Control de movimiento |
| Crimson v3 | TCP | 789 | HMI de Red Lion |
| PCOM | TCP | 20256 | PLC de Unitronics |
| GE SRTP | TCP | 18245 | PLC de GE |
| ATG | TCP | 10001 | Medidores de tanques |
Telecomunicaciones y VoIP (17)
| Protocolo | Transporte | Puertos Predeterminados | Notas |
|---|---|---|---|
| Diameter | TCP/SCTP | 3868 | AAA LTE/5G |
| M3UA | SCTP | 2905 | SS7 sobre IP |
| M2UA | SCTP | 2904 | Adaptación de usuario MTP2 |
| M2PA | SCTP | 3565 | Adaptación de par MTP2 |
| SGsAP | SCTP | 29118 | Retroceso a circuito conmutado |
| X2AP | SCTP | 36422 | Inter-eNodeB LTE |
| IUA | SCTP | 9900 | ISDN sobre IP |
| SIP | TCP/UDP/TLS | 5060, 5061 | Señalización VoIP |
| MEGACO/H.248 | UDP | 2944, 2945 | Puerta de enlace de medios |
| MGCP | UDP | 2427, 2727 | Puerta de enlace de medios |
| H.323 | TCP | 1720 | Videoconferencia |
| SCCP/Skinny | TCP | 2000, 2443 | Teléfonos IP Cisco |
| IAX2 | UDP | 4569 | Protocolo Asterisk |
| GTP-C | UDP | 2123 | Control GPRS |
| GTP-U | UDP | 2152 | Plano de usuario GPRS |
| GTP' | UDP | 3386 | Facturación GPRS |
| PFCP | UDP | 8805 | Plano de usuario 5G |
VPN y Seguridad (11)
| Protocolo | Transporte | Puertos Predeterminados |
|---|---|---|
| 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 |
Acceso y Administración Remota (10)
| Protocolo | Transporte | Puertos Predeterminados |
|---|---|---|
| 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 |
Herramientas de Desarrollo (8)
| Protocolo | Transporte | Puertos Predeterminados |
|---|---|---|
| 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 |
Uso de la Librería
Importa Nerva en tus aplicaciones Go:```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)
}
}
See [examples/service-fingerprinting-example.go](https://github.com/praetorian-inc/nerva/blob/HEAD/examples/service-fingerprinting-example.go) for a complete working example.
## Casos de Uso
### Pruebas de Penetración
Fingerprint rápidamente servicios descubiertos durante el reconocimiento para identificar posibles vectores de ataque.
### Tuberías de Descubrimiento de Activos
Combine con Naabu o Masscan para un inventario de activos a gran escala:```sh
naabu -host 10.0.0.0/24 -silent | nerva --json | jq '.protocol'
Escaneo de seguridad CI/CD
Integre en las canalizaciones de implementación para verificar que solo se expongan los servicios esperados.
Reconocimiento de Bug Bounty
Enumere rápidamente los servicios en los objetivos del alcance para encontrar endpoints interesantes.
Análisis de redes de telecomunicaciones
Identifique nodos Diameter en redes LTE/5G usando transporte SCTP (Linux):```sh nerva -t mme.telecom.local:3868 -S --json
## Arquitectura```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]
Why Nerva?
vs Nmap
- Valores predeterminados más inteligentes: Nerva verifica primero el protocolo más probable según el número de puerto
- Salida estructurada: Soporte nativo de JSON/CSV para facilitar el análisis y la integración en pipelines
- Enfocado: Solo huellas digitales de servicios — combínalo con escáneres de puertos dedicados para descubrimiento
vs zgrab2
- Detección automática: No es necesario especificar el protocolo de antemano
- Uso más simple:
nerva -t host:portvsecho host | zgrab2 http -p port
Solución de problemas
Sin salida
Causa: El puerto está cerrado o no se detectó ningún servicio compatible.
Solución: Verifica que el puerto esté abierto:```sh nc -zv example.com 80
### Errores de tiempo de espera
**Causa**: El tiempo de espera predeterminado de 2 segundos es demasiado corto para servicios lentos.
**Solución**: Aumentar el tiempo de espera:
sn0int -t 5 scan
nerva -t example.com:80 -w 5000 # 5 seconds
```
### UDP services not detected
**Causa**: Escaneo UDP deshabilitado por defecto.
**Solución**: Habilítelo con la bandera `-U` (puede requerir root):```sh
sudo nerva -t example.com:53 -U
```
### SCTP no funciona
**Causa**: SCTP solo es compatible con Linux.
**Solución**: Ejecutar en un sistema o contenedor Linux:```sh
docker run --rm nerva -t telecom:3868 -S
```
## Terminología
- **Servicio**: Un servicio de red ejecutándose en un puerto (SSH, HTTP, PostgreSQL, etc.)
- **Huella digital**: Detectar e identificar el tipo de servicio, versión y configuración
- **Plugin**: Un módulo de detección específico del protocolo
- **Modo rápido**: Escanear solo el puerto predeterminado para cada protocolo (optimización 80/20)
- **Transporte**: Protocolo de capa de red (TCP, UDP o SCTP)
## Soporte
Si encuentras útil Nerva, considera darle una estrella:
[](https://github.com/praetorian-inc/nerva)
## Contribuciones
¡Agradecemos las contribuciones! Consulta [CONTRIBUTING.md](https://github.com/praetorian-inc/nerva/blob/HEAD/CONTRIBUTING.md) para las pautas.
## Licencia
Apache 2.0 — consulta [LICENSE](https://github.com/praetorian-inc/nerva/blob/HEAD/LICENSE) para más detalles.
## Agradecimientos
Nerva es un fork mantenido de [fingerprintx](https://github.com/praetorian-inc/fingerprintx), desarrollado originalmente por la clase de pasantes de Praetorian de 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)