
170+ प्रोटोकॉल (TCP/UDP/SCTP) के लिए तेज़ सेवा फ़िंगरप्रिंटिंग CLI - Praetorian द्वारा निर्मित
<img width="2976" height="1440" alt="Nerva - नेटवर्क टोह के लिए तेज़ सेवा फिंगरप्रिंटिंग CLI जो 170+ प्रोटोकॉल का समर्थन करता है" src="https://assets.kitploit.com/production/public/readmes/12252/3a0b59e2929fa8fdc41aafe4cb8649e3e85f0ba5f9df8128f7f3f952d70b0018.webp" />
<h1 align="center">
Nerva
<br>
<sub>Nerva: तेज़ सेवा फिंगरप्रिंटिंग 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">विशेषताएँ</a> •
<a href="#installation">इंस्टॉलेशन</a> •
<a href="#quick-start">त्वरित शुरुआत</a> •
<a href="#usage">उपयोग</a> •
<a href="#supported-protocols">प्रोटोकॉल</a> •
<a href="#library-usage">लाइब्रेरी</a> •
<a href="#use-cases">उपयोग के मामले</a> •
<a href="#troubleshooting">समस्या निवारण</a>
</p>
> **Go में लिखी गई उच्च-प्रदर्शन सेवा फिंगरप्रिंटिंग।** TCP, UDP, और SCTP ट्रांसपोर्ट पर 170+ नेटवर्क प्रोटोकॉल की पहचान करें, साथ ही समृद्ध मेटाडेटा निष्कर्षण।
Nerva खुले नेटवर्क पोर्ट पर चल रही सेवाओं का तेज़ी से पता लगाता है और उनकी पहचान करता है। खोजी गई सेवाओं को फिंगरप्रिंट करने के लिए इसे [Naabu](https://github.com/projectdiscovery/naabu) जैसे पोर्ट स्कैनर के साथ उपयोग करें, या स्वचालित टोह के लिए इसे अपनी सुरक्षा पाइपलाइनों में एकीकृत करें।
## विशेषताएँ
- **170+ प्रोटोकॉल प्लगइन** — डेटाबेस, रिमोट एक्सेस, वेब सेवाएँ, मैसेजिंग, औद्योगिक, और टेलीकॉम प्रोटोकॉल
- **76 HTTP फिंगरप्रिंटर** — फ़ायरवॉल, डेटाबेस, AI/LLM सर्वर, और अन्य सहित वेब तकनीकों का पता लगाएँ
- **सुरक्षा गलत कॉन्फ़िगरेशन का पता लगाना** — अनऑथेंटिकेटेड API और क्लीयरटेक्स्ट प्रोटोकॉल जैसी सामान्य सुरक्षा समस्याओं की पहचान करें (`--misconfigs`)
- **मल्टी-ट्रांसपोर्ट समर्थन** — TCP (डिफ़ॉल्ट), UDP (`--udp`), और SCTP (`--sctp`, केवल Linux)
- **प्रॉक्सी समर्थन** — कॉन्फ़िगर करने योग्य DNS रिज़ॉल्यूशन के साथ SOCKS5 या HTTP प्रॉक्सी के माध्यम से स्कैनिंग ट्रैफ़िक को पारदर्शी रूप से रूट करें
- **समृद्ध मेटाडेटा** — प्रत्येक सेवा से संस्करण, कॉन्फ़िगरेशन, और सुरक्षा-प्रासंगिक विवरण निकालें
- **फास्ट मोड** — त्वरित टोह के लिए केवल डिफ़ॉल्ट पोर्ट स्कैन करें (`--fast`)
- **लचीला आउटपुट** — JSON, CSV, या मानव-पठनीय प्रारूप
- **पाइपलाइन अनुकूल** — Naabu, Nmap, या किसी भी टूल से पाइप करें जो `host:port` आउटपुट करता है
- **Go लाइब्रेरी** — सीधे अपने Go अनुप्रयोगों में आयात करें
## इंस्टॉलेशन
### रिलीज़
[Releases](https://github.com/praetorian-inc/nerva/releases) पृष्ठ से एक प्रीबिल्ट बाइनरी डाउनलोड करें।
### GitHub से
```sh
go install github.com/praetorian-inc/nerva/cmd/nerva@latest
```
### स्रोत से
```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
```
## त्वरित शुरुआत
एकल लक्ष्य की फ़िंगरप्रिंटिंग करें:
```sh
nerva -t example.com:22
# ssh://example.com:22
```
विस्तृत JSON मेटाडेटा प्राप्त करें:
```sh
nerva -t example.com:22 --json
# {"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}
```
पोर्ट स्कैनर से पाइप करें:
```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 -->
पूरा संदर्भ — प्रत्येक सबकमांड, उपनाम और फ़्लैग, जिनमें `--help` से छिपे हुए भी शामिल हैं — [docs/CLI.md](https://github.com/praetorian-inc/nerva/blob/main/docs/CLI.md) में जनरेट किया गया है।
<!-- END generated: cli-aliases -->
## उपयोग
```
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
```
### उदाहरण
**एकाधिक लक्ष्य:**
```sh
nerva -t example.com:22,example.com:80,example.com:443
```
**फ़ाइल से:**
```sh
nerva -l targets.txt --json -o results.json
```
**UDP स्कैनिंग**:
```sh
nerva -t example.com:53 -U
# dns://example.com:53
```
**SCTP स्कैनिंग** (केवल Linux):
```sh
nerva -t telecom-server:3868 -S
# diameter://telecom-server:3868
```
**फास्ट मोड** (केवल डिफ़ॉल्ट पोर्ट):
```sh
nerva -l large-target-list.txt --fast --json
```
**रिमोट DNS रिज़ॉल्यूशन के साथ प्रॉक्सी रूटिंग:**
```sh
nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p
```
### सुरक्षा गलत कॉन्फ़िगरेशन का पता लगाना
Nerva `--misconfigs` के साथ सक्षम किए जाने पर सामान्य सुरक्षा गलत कॉन्फ़िगरेशन की पहचान कर सकता है:
```sh
nerva -t example.com:2375 --misconfigs --json
```
**पाई गई गलत कॉन्फ़िगरेशन:**
| Finding ID | Severity | Description |
|------------|----------|-------------|
| `docker-unauth-api` | Critical | Docker API बिना प्रमाणीकरण के सुलभ |
| `x11-unauth-access` | Critical | X11 सर्वर बिना प्रमाणीकृत कनेक्शन की अनुमति देता है |
| `dotnet-remoting-http-exposed` | High | .NET Remoting HTTP चैनल उजागर (deserialization जोखिम) |
| `smb-signing-not-required` | Medium | SMB साइनिंग आवश्यक नहीं (relay attack जोखिम) |
| `telnet-cleartext` | Medium | Telnet क्रेडेंशियल्स को cleartext में भेजता है |
| `vnc-detected` | Medium | VNC पाई गई (अक्सर कमजोर प्रमाणीकरण) |
| `ssh-password-auth` | Medium | सर्वर पासवर्ड प्रमाणीकरण की अनुमति देता है |
| `ssh-weak-cipher` | Low | सर्वर कमजोर सिफर प्रदान करता है (RC4, 3DES, Blowfish) |
| `ssh-weak-kex` | Low | सर्वर कमजोर key exchange एल्गोरिदम प्रदान करता है |
| `ssh-weak-mac` | Low | सर्वर कमजोर MAC एल्गोरिदम प्रदान करता है |
| `ftp-cleartext` | Low | FTP क्रेडेंशियल्स को cleartext में भेजता है |
**misconfigs के साथ उदाहरण आउटपुट:**
```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"
}
]
}
```
### प्रॉक्सी समर्थन
Nerva कॉन्फ़िगर करने योग्य DNS रिज़ॉल्यूशन के साथ SOCKS5 और HTTP प्रॉक्सी के माध्यम से स्कैनिंग ट्रैफ़िक को रूट करने का समर्थन करता है।
**समर्थित प्रॉक्सी स्कीम:**
- `socks5://` - स्थानीय DNS रिज़ॉल्यूशन के साथ SOCKS5 प्रॉक्सी
- `socks5h://` - प्रॉक्सी-साइड DNS रिज़ॉल्यूशन के साथ SOCKS5 प्रॉक्सी (हमेशा)
- `http://` - HTTP CONNECT प्रॉक्सी
- `https://` - HTTPS CONNECT प्रॉक्सी
**प्रॉक्सी प्रमाणीकरण:**
```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 रिज़ॉल्यूशन रणनीतियाँ** (`--dns-order`):
| विकल्प | रणनीति | उपयोग का मामला |
|--------|----------|----------|
| `l` | केवल स्थानीय | मानक स्थानीय DNS (डिफ़ॉल्ट) |
| `p` | केवल प्रॉक्सी | प्रॉक्सी-साइड DNS रिज़ॉल्यूशन को बाध्य करें |
| `lp` | स्थानीय, प्रॉक्सी पर फ़ॉलबैक | पहले स्थानीय आज़माएँ, विफलता पर प्रॉक्सी का उपयोग करें |
| `pl` | प्रॉक्सी, स्थानीय पर फ़ॉलबैक | पहले प्रॉक्सी आज़माएँ, विफलता पर स्थानीय का उपयोग करें |
**नोट:** `socks5h://` स्कीम स्वचालित रूप से प्रॉक्सी-साइड DNS को बाध्य करती है (`--dns-order p` के समतुल्य)
**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:**
```sh
# UDP scanning through SOCKS5 proxy (limited support)
nerva -t target.com:161 --proxy socks5://127.0.0.1:1080 --udp
```
⚠️ **UDP सीमाएँ:** SOCKS5 के माध्यम से UDP का समर्थन सीमित है। सभी SOCKS5 सर्वर UDP एसोसिएशन का समर्थन नहीं करते। स्थानीय UDP फ़ॉलबैक हो सकता है।
**दर सीमित करने के साथ समानांतर स्कैनिंग:**
```sh
nerva -l large-target-list.txt -W 100 -H 5 -R 50 -v
```
**सौम्य शटडाउन** (Ctrl+C आंशिक परिणाम लौटाता है):
```sh
nerva -l huge-target-list.txt -W 50 -v
# Press Ctrl+C to stop — collected results are still printed
```
## समर्थित प्रोटोकॉल
TCP, UDP, और SCTP में **170+ सेवा पहचान प्लगइन्स**:
### HTTP फिंगरप्रिंट मॉड्यूल (66)
वेब सेवाओं के लिए प्रौद्योगिकी पहचान, श्रेणी के अनुसार व्यवस्थित:
#### फायरवॉल और नेटवर्क सुरक्षा (12)
| मॉड्यूल | विवरण |
|--------|-------------|
| 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 |
#### AI/LLM और मशीन लर्निंग (6)
| मॉड्यूल | विवरण |
|--------|-------------|
| Ollama | Self-hosted LLM inference server |
| LocalAI | Self-hosted LLM inference (OpenAI-compatible) |
| Open WebUI | LLM web interface (ChatGPT-style) |
| Triton | NVIDIA Triton Inference Server |
| Weaviate | Vector database for AI |
| ChromaDB | Vector database |
#### डेटाबेस और डेटा स्टोर (12)
| मॉड्यूल | विवरण |
|--------|-------------|
| ArangoDB | Multi-model database |
| CockroachDB | Distributed SQL database |
| CouchDB | Apache document database |
| Elasticsearch | Search and analytics engine |
| etcd | Distributed key-value store |
| Milvus | Vector database |
| MinIO | S3-compatible object storage |
| Pinecone | Vector database |
| Redis Commander | Redis web management UI |
| TiDB | Distributed SQL database |
| YugabyteDB | Distributed SQL database |
| Qdrant | Vector database |
#### DevOps और अवसंरचना (14)
| मॉड्यूल | विवरण |
|--------|-------------|
| Artifactory | JFrog artifact repository |
| Consul | HashiCorp service mesh |
| Docker Registry | Container image registry |
| Gitea | Self-hosted Git service |
| Grafana | Observability platform |
| Harbor | Container registry |
| Jaeger | Distributed tracing |
| Jenkins | CI/CD automation |
| Kubernetes | Container orchestration API |
| Portainer | Docker management UI |
| Prometheus | Monitoring system |
| Swagger/OpenAPI | API documentation |
| TeamCity | CI/CD server |
| Vault | HashiCorp secrets management |
#### वेब सर्वर और फ्रेमवर्क (10)
| मॉड्यूल | विवरण |
|--------|-------------|
| Apache HTTPD | Apache HTTP Server |
| Express.js | Node.js web framework |
| GoAhead | Embedded web server |
| Gotenberg | PDF generation service |
| Guacamole | Apache remote desktop gateway |
| SOAP | Web services |
| Tengine | Alibaba web server |
| Tomcat | Apache Tomcat |
| WordPress | CMS platform |
| UPnP | Universal Plug and Play |
#### एंटरप्राइज़ और व्यवसाय (8)
| मॉड्यूल | विवरण |
|--------|-------------|
| AEM | Adobe Experience Manager |
| Dynamics 365 | Microsoft Dynamics 365 / Power Apps |
| Oracle Service Cloud | Oracle CRM platform |
| SAP NetWeaver | SAP enterprise platform |
| Splunk | Log management platform |
| VMware Horizon | Virtual desktop infrastructure |
| QNAP QTS | NAS management |
| Exchange | Microsoft Exchange Server |
#### होम और IoT (2)
| मॉड्यूल | विवरण |
|--------|-------------|
| Home Assistant | Home automation platform |
| UniFi/EdgeOS | Ubiquiti network devices |
#### अन्य (3)
| मॉड्यूल | विवरण |
|--------|-------------|
| .NET Remoting HTTP | Microsoft .NET Remoting HTTP channel |
| Go pprof | Go profiling endpoints |
| NATS | Message broker |
### डेटाबेस (20)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट |
|----------|-----------|---------------|
| 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 |
### रिमोट एक्सेस (6)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट |
|----------|-----------|---------------|
| SSH | TCP | 22, 2222 |
| RDP | TCP/TLS | 3389 |
| Telnet | TCP | 23 |
| VNC | TCP | 5900 |
| AnyDesk | TCP | 7070 |
| TeamViewer | TCP | 5938 |
### वेब और API (2)
| प्रोटोकॉल | ट्रांसपोर्ट | नोट्स |
|----------|-----------|-------|
| HTTP/HTTPS | TCP | HTTP/2, tech detection via Wappalyzer |
| Kubernetes | TCP | API server detection |
### मैसेजिंग और क्यूज़ (10)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट |
|----------|-----------|---------------|
| 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 |
### फ़ाइल और डायरेक्टरी सेवाएँ (7)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट |
|----------|-----------|---------------|
| FTP | TCP | 21 |
| SMB | TCP | 445 |
| NFS | TCP/UDP | 2049 |
| Rsync | TCP | 873 |
| TFTP | UDP | 69 |
| SVN | TCP | 3690 |
| LDAP | TCP/TLS | 389, 636 |
### नेटवर्क सेवाएँ (11)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट |
|----------|-----------|---------------|
| 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 |
### औद्योगिक नियंत्रण प्रणालियाँ (18)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट | नोट्स |
|----------|-----------|---------------|-------|
| Modbus | TCP | 502 | SCADA/PLC |
| S7comm | TCP | 102 | Siemens PLC |
| EtherNet/IP | TCP | 44818 | Rockwell/Allen-Bradley |
| PROFINET | TCP | 34962-34964 | Siemens industrial |
| BACnet | UDP | 47808 | Building automation |
| OPC UA | TCP | 4840 | Industrial interop |
| OMRON FINS | TCP/UDP | 9600 | OMRON PLC |
| MELSEC-Q | TCP | 5006, 5007 | Mitsubishi PLC |
| KNXnet/IP | UDP | 3671 | Building automation |
| IEC 104 | TCP | 2404 | Power grid SCADA |
| DNP3 | TCP | 20000 | Power grid SCADA |
| Codesys | TCP | 1200, 2455 | PLC runtime |
| Fox | TCP | 1911 | Tridium Niagara |
| PC WORX | TCP | 1962 | Phoenix Contact |
| ProConOS | TCP | 20547 | PLC runtime |
| HART-IP | TCP | 5094 | Process automation |
| EtherCAT | UDP | 34980 | Motion control |
| Crimson v3 | TCP | 789 | Red Lion HMI |
| PCOM | TCP | 20256 | Unitronics PLC |
| GE SRTP | TCP | 18245 | GE PLC |
| ATG | TCP | 10001 | Tank gauges |
### टेलीकॉम और VoIP (17)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट | नोट्स |
|----------|-----------|---------------|-------|
| Diameter | TCP/SCTP | 3868 | LTE/5G AAA |
| M3UA | SCTP | 2905 | SS7 over 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 over IP |
| SIP | TCP/UDP/TLS | 5060, 5061 | VoIP signaling |
| MEGACO/H.248 | UDP | 2944, 2945 | Media gateway |
| MGCP | UDP | 2427, 2727 | Media gateway |
| H.323 | TCP | 1720 | Video conferencing |
| SCCP/Skinny | TCP | 2000, 2443 | Cisco IP phones |
| IAX2 | UDP | 4569 | Asterisk protocol |
| GTP-C | UDP | 2123 | GPRS control |
| GTP-U | UDP | 2152 | GPRS user plane |
| GTP' | UDP | 3386 | GPRS charging |
| PFCP | UDP | 8805 | 5G user plane |
### VPN और सुरक्षा (11)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट |
|----------|-----------|---------------|
| 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 |
### रिमोट एक्सेस और प्रबंधन (10)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट |
|----------|-----------|---------------|
| 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 |
### डेवलपर टूल्स (8)
| प्रोटोकॉल | ट्रांसपोर्ट | डिफ़ॉल्ट पोर्ट |
|----------|-----------|---------------|
| 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 |
## लाइब्रेरी उपयोग
Nerva को अपने 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)
}
}
```
पूर्ण कार्यशील उदाहरण के लिए [examples/service-fingerprinting-example.go](https://github.com/praetorian-inc/nerva/blob/main/examples/service-fingerprinting-example.go) देखें।
## उपयोग के मामले
### पेनेट्रेशन टेस्टिंग
संभावित हमले के वेक्टर की पहचान करने के लिए रेकॉनिसेंस के दौरान खोजी गई सेवाओं को तेज़ी से फिंगरप्रिंट करें।
### एसेट डिस्कवरी पाइपलाइन
बड़े पैमाने पर एसेट इन्वेंटरी के लिए Naabu या Masscan के साथ संयोजित करें:
```sh
naabu -host 10.0.0.0/24 -silent | nerva --json | jq '.protocol'
```
### CI/CD सुरक्षा स्कैनिंग
केवल अपेक्षित सेवाएँ उजागर हैं यह सत्यापित करने के लिए डिप्लॉयमेंट पाइपलाइनों में एकीकृत करें।
### बग बाउंटी टोह
दिलचस्प एंडपॉइंट खोजने के लिए स्कोप लक्ष्यों में सेवाओं की शीघ्र गणना करें।
### टेलीकॉम नेटवर्क विश्लेषण
SCTP ट्रांसपोर्ट (Linux) का उपयोग करके LTE/5G नेटवर्क में Diameter नोड्स की फिंगरप्रिंटिंग करें:
```sh
nerva -t mme.telecom.local:3868 -S --json
```
## आर्किटेक्चर
```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]
```
## Nerva क्यों?
### Nmap की तुलना में
- **बेहतर डिफ़ॉल्ट**: Nerva पोर्ट नंबर के आधार पर सबसे संभावित प्रोटोकॉल की पहले जाँच करता है
- **संरचित आउटपुट**: आसान पार्सिंग और पाइपलाइन एकीकरण के लिए मूल JSON/CSV समर्थन
- **केंद्रित**: केवल सेवा फिंगरप्रिंटिंग — डिस्कवरी के लिए समर्पित पोर्ट स्कैनर के साथ जोड़ें
### zgrab2 की तुलना में
- **स्वतः पहचान**: पहले से प्रोटोकॉल निर्दिष्ट करने की आवश्यकता नहीं
- **सरल उपयोग**: `nerva -t host:port` बनाम `echo host | zgrab2 http -p port`
## समस्या निवारण
### कोई आउटपुट नहीं
**कारण**: पोर्ट बंद है या कोई समर्थित सेवा नहीं मिली।
**समाधान**: सत्यापित करें कि पोर्ट खुला है:
```sh
nc -zv example.com 80
```
### टाइमआउट त्रुटियाँ
**कारण**: धीमी सेवाओं के लिए डिफ़ॉल्ट 2-सेकंड का टाइमआउट बहुत कम है।
**समाधान**: टाइमआउट बढ़ाएँ:
```sh
nerva -t example.com:80 -w 5000 # 5 seconds
```
### UDP सेवाएँ पता नहीं चलीं
**कारण**: UDP स्कैनिंग डिफ़ॉल्ट रूप से अक्षम है।
**समाधान**: `-U` फ़्लैग के साथ सक्षम करें:
```sh
nerva -t example.com:53 -U
```
Nerva UDP स्कैन कनेक्टेड डेटाग्राम सॉकेट्स का उपयोग करते हैं और इन्हें root की आवश्यकता नहीं होती।
### SCTP काम नहीं कर रहा
**कारण**: SCTP केवल Linux पर समर्थित है।
**समाधान**: Linux सिस्टम या कंटेनर पर चलाएँ:
```sh
docker run --rm nerva -t telecom:3868 -S
```
## शब्दावली
- **Service**: किसी पोर्ट पर चल रही नेटवर्क सेवा (SSH, HTTP, PostgreSQL, आदि)
- **Fingerprinting**: सेवा के प्रकार, संस्करण और कॉन्फ़िगरेशन का पता लगाना और पहचानना
- **Plugin**: प्रोटोकॉल-विशिष्ट डिटेक्शन मॉड्यूल
- **Fast Mode**: प्रत्येक प्रोटोकॉल के लिए केवल डिफ़ॉल्ट पोर्ट स्कैन करना (80/20 अनुकूलन)
- **Transport**: नेटवर्क लेयर प्रोटोकॉल (TCP, UDP, या SCTP)
## सहायता
यदि आपको Nerva उपयोगी लगता है, तो कृपया इसे स्टार देने पर विचार करें:
[](https://github.com/praetorian-inc/nerva)
## योगदान
हम योगदान का स्वागत करते हैं! दिशानिर्देशों के लिए [CONTRIBUTING.md](https://github.com/praetorian-inc/nerva/blob/main/CONTRIBUTING.md) देखें।
## लाइसेंस
Apache 2.0 — विवरण के लिए [LICENSE](https://github.com/praetorian-inc/nerva/blob/main/LICENSE) देखें।
## आभार
Nerva, [fingerprintx](https://github.com/praetorian-inc/fingerprintx) का एक अनुरक्षित फोर्क है, जिसे मूल रूप से Praetorian की 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)