
nerva v1.48.1
170+ प्रोटोकॉल (TCP/UDP/SCTP) के लिए तेज़ सेवा फ़िंगरप्रिंटिंग CLI - Praetorian द्वारा निर्मित
Nerva
Nerva: तेज़ सेवा फ़िंगरप्रिंटिंग CLI
सुविधाएँ • स्थापना • त्वरित आरंभ • उपयोग • प्रोटोकॉल • लाइब्रेरी • उपयोग के मामले • समस्या निवारण
Go में लिखा गया उच्च-प्रदर्शन सेवा फ़िंगरप्रिंटिंग। TCP, UDP और SCTP ट्रांसपोर्ट पर समृद्ध मेटाडेटा निष्कर्षण के साथ 170+ नेटवर्क प्रोटोकॉल की पहचान करें।
Nerva खुले नेटवर्क पोर्ट पर चल रही सेवाओं का तेज़ी से पता लगाता है और पहचान करता है। खोजी गई सेवाओं की फ़िंगरप्रिंटिंग के लिए इसे पोर्ट स्कैनर जैसे Naabu के साथ उपयोग करें, या स्वचालित टोही के लिए अपनी सुरक्षा पाइपलाइनों में एकीकृत करें।
सुविधाएँ
- 170+ प्रोटोकॉल प्लगइन्स — डेटाबेस, दूरस्थ पहुँच, वेब सेवाएँ, मैसेजिंग, औद्योगिक और दूरसंचार प्रोटोकॉल
- 76 HTTP फ़िंगरप्रिंटर — फ़ायरवॉल, डेटाबेस, AI/LLM सर्वर और अधिक सहित वेब तकनीकों का पता लगाएँ
- सुरक्षा गलत कॉन्फ़िगरेशन का पता लगाना — अनप्रमाणित APIs और क्लियरटेक्स्ट प्रोटोकॉल जैसी सामान्य सुरक्षा समस्याओं की पहचान करें (
--misconfigs) - मल्टी-ट्रांसपोर्ट समर्थन — TCP (डिफ़ॉल्ट), UDP (
--udp), और SCTP (--sctp, केवल Linux) - प्रॉक्सी समर्थन — कॉन्फ़िगरेबल DNS रिज़ॉल्यूशन के साथ SOCKS5 या HTTP प्रॉक्सी के माध्यम से स्कैनिंग ट्रैफ़िक को पारदर्शी रूप से रूट करें
- समृद्ध मेटाडेटा — प्रत्येक सेवा से संस्करण, कॉन्फ़िगरेशन और सुरक्षा-प्रासंगिक विवरण निकालें
- फ़ास्ट मोड — तीव्र टोही के लिए केवल डिफ़ॉल्ट पोर्ट स्कैन करें (
--fast) - लचीला आउटपुट — JSON, CSV या मानव-पठनीय प्रारूप
- पाइपलाइन-अनुकूल — Naabu, Nmap या किसी भी उपकरण से पाइप करें जो
host:portआउटपुट करता है - Go लाइब्रेरी — अपने Go अनुप्रयोगों में सीधे आयात करें
स्थापना
रिलीज़
रिलीज़ पृष्ठ से पूर्व-निर्मित बाइनरी डाउनलोड करें।
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
उपयोग```
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
### झंडे
| झंडा | संक्षिप्त | विवरण | डिफ़ॉल्ट |
|------|-----------|--------|---------|
| `--targets` | `-t` | लक्ष्य या अल्पविराम से अलग किया गया लक्ष्य सूची | — |
| `--list` | `-l` | लक्ष्यों वाली इनपुट फ़ाइल | — |
| `--output` | `-o` | आउटपुट फ़ाइल पथ | stdout |
| `--json` | | JSON प्रारूप में आउटपुट | false |
| `--csv` | | CSV प्रारूप में आउटपुट | false |
| `--misconfigs` | | सुरक्षा गलत कॉन्फ़िगरेशन जाँच सक्षम करें | false |
| `--proxy` | | प्रॉक्सी URL (उदा. socks5://127.0.0.1:1080) | — |
| `--proxy-auth` | | SOCKS5 प्रॉक्सी प्रमाणीकरण (उदा. username:password) | — |
| `--dns-order` | | DNS रिज़ॉल्यूशन क्रम: `p`, `l`, `lp`, `pl` | `lp` |
| `--fast` | `-f` | तेज़ मोड (केवल डिफ़ॉल्ट पोर्ट) | false |
| `--capabilities` | `-c` | उपलब्ध क्षमताओं की सूची दिखाएँ और बाहर निकलें | false |
| `--udp` | `-U` | UDP प्लगइन चलाएँ | false |
| `--sctp` | `-S` | SCTP प्लगइन चलाएँ (केवल Linux) | false |
| `--timeout` | `-w` | मिलीसेकंड में टाइमआउट | 2000 |
| `--verbose` | `-v` | stderr पर विस्तृत आउटपुट | false |
| `--workers` | `-W` | समवर्ती स्कैन कर्मचारी | 50 |
| `--max-host-conn` | `-H` | प्रति होस्ट IP अधिकतम समवर्ती कनेक्शन (0=असीमित) | 0 |
| `--rate-limit` | `-R` | वैश्विक रूप से प्रति सेकंड अधिकतम स्कैन (0=असीमित) | 0 |
### उदाहरण
**एकाधिक लक्ष्य:**```sh
nerva -t example.com:22,example.com:80,example.com:443
फ़ाइल से:```sh nerva -l targets.txt --json -o results.json
**UDP स्कैनिंग** (रूट की आवश्यकता हो सकती है):```sh
sudo nerva -t example.com:53 -U
# dns://example.com:53
SCTP scanning (केवल लिनक्स):```sh nerva -t telecom-server:3868 -S
diameter://telecom-server:3868
**तेज़ मोड** (केवल डिफ़ॉल्ट पोर्ट):```sh
nerva -l large-target-list.txt --fast --json
Proxy routing के साथ remote DNS resolution:```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
पहचानी गई गलत कॉन्फ़िगरेशन:
| पहचान आईडी | गंभीरता | विवरण |
|---|---|---|
docker-unauth-api | गंभीर | प्रमाणीकरण के बिना Docker API सुलभ |
x11-unauth-access | गंभीर | X11 सर्वर बिना प्रमाणीकरण के कनेक्शन की अनुमति देता है |
smb-signing-not-required | मध्यम | SMB साइनिंग आवश्यक नहीं (रिले हमले का जोखिम) |
telnet-cleartext | मध्यम | Telnet क्रेडेंशियल्स को सादे टेक्स्ट में प्रेषित करता है |
vnc-detected | मध्यम | VNC का पता चला (अक्सर कमजोर प्रमाणीकरण) |
ssh-password-auth | मध्यम | सर्वर पासवर्ड प्रमाणीकरण की अनुमति देता है |
ssh-weak-cipher | निम्न | सर्वर कमजोर सिफ़र प्रदान करता है (RC4, 3DES, Blowfish) |
ssh-weak-kex | निम्न | सर्वर कमजोर कुंजी विनिमय एल्गोरिदम प्रदान करता है |
ssh-weak-mac | निम्न | सर्वर कमजोर MAC एल्गोरिदम प्रदान करता है |
ftp-cleartext | निम्न | FTP क्रेडेंशियल्स को सादे टेक्स्ट में प्रेषित करता है |
गलत कॉन्फ़िगरेशन के साथ उदाहरण आउटपुट:```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 SOCKS5 और HTTP प्रॉक्सी के माध्यम से स्कैनिंग ट्रैफ़िक को कॉन्फ़िगरेबल DNS रिज़ॉल्यूशन के साथ रूट करने का समर्थन करता है।
**समर्थित प्रॉक्सी स्कीम:**
- `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 | चेक पॉइंट सुरक्षा गेटवे |
| Cisco ASA/FTD | सिस्को फ़ायरवॉल/VPN उपकरण |
| FortiGate | फोर्टिनेट फ़ायरवॉल/VPN |
| GlobalProtect | पालो ऑल्टो नेटवर्क्स VPN |
| Juniper | जुनिपर SRX फ़ायरवॉल |
| OPNsense | OPNsense फ़ायरवॉल |
| pfSense | pfSense फ़ायरवॉल |
| SonicWall | सोनिकवॉल फ़ायरवॉल |
| AnyConnect | सिस्को AnyConnect SSL VPN |
| Cisco Expressway | सिस्को सहयोग गेटवे |
| BigIP | F5 BIG-IP लोड बैलेंसर |
| WinRM | विंडोज रिमोट मैनेजमेंट |
AI/LLM और मशीन लर्निंग (6)
| मॉड्यूल | विवरण |
|---|---|
| Ollama | स्व-होस्टेड LLM अनुमान सर्वर |
| LocalAI | स्व-होस्टेड LLM अनुमान (OpenAI-संगत) |
| Open WebUI | LLM वेब इंटरफ़ेस (ChatGPT-शैली) |
| Triton | NVIDIA ट्राइटन अनुमान सर्वर |
| Weaviate | AI के लिए वेक्टर डेटाबेस |
| ChromaDB | वेक्टर डेटाबेस |
डेटाबेस और डेटा स्टोर (12)
| मॉड्यूल | विवरण |
|---|---|
| ArangoDB | मल्टी-मॉडल डेटाबेस |
| CockroachDB | वितरित SQL डेटाबेस |
| CouchDB | अपाचे दस्तावेज़ डेटाबेस |
| Elasticsearch | खोज और विश्लेषण इंजन |
| etcd | वितरित की-वैल्यू स्टोर |
| Milvus | वेक्टर डेटाबेस |
| MinIO | S3-संगत ऑब्जेक्ट स्टोरेज |
| Pinecone | वेक्टर डेटाबेस |
| Redis Commander | रेडिस वेब प्रबंधन UI |
| TiDB | वितरित SQL डेटाबेस |
| YugabyteDB | वितरित SQL डेटाबेस |
| Qdrant | वेक्टर डेटाबेस |
DevOps और बुनियादी ढाँचा (14)
| मॉड्यूल | विवरण |
|---|---|
| Artifactory | JFrog आर्टिफैक्ट रिपॉजिटरी |
| Consul | हैशीकॉर्प सर्विस मेश |
| Docker Registry | कंटेनर इमेज रजिस्ट्री |
| Gitea | स्व-होस्टेड Git सेवा |
| Grafana | ऑब्ज़र्वेबिलिटी प्लेटफ़ॉर्म |
| Harbor | कंटेनर रजिस्ट्री |
| Jaeger | वितरित ट्रेसिंग |
| Jenkins | CI/CD ऑटोमेशन |
| Kubernetes | कंटेनर ऑर्केस्ट्रेशन API |
| Portainer | डॉकर प्रबंधन UI |
| Prometheus | मॉनिटरिंग सिस्टम |
| Swagger/OpenAPI | API दस्तावेज़ीकरण |
| TeamCity | CI/CD सर्वर |
| Vault | हैशीकॉर्प सीक्रेट्स प्रबंधन |
वेब सर्वर और फ्रेमवर्क (10)
| मॉड्यूल | विवरण |
|---|---|
| Apache HTTPD | अपाचे HTTP सर्वर |
| Express.js | Node.js वेब फ्रेमवर्क |
| GoAhead | एम्बेडेड वेब सर्वर |
| Gotenberg | PDF जनरेशन सेवा |
| Guacamole | अपाचे रिमोट डेस्कटॉप गेटवे |
| SOAP | वेब सेवाएँ |
| Tengine | अलीबाबा वेब सर्वर |
| Tomcat | अपाचे टॉमकैट |
| WordPress | CMS प्लेटफ़ॉर्म |
| UPnP | यूनिवर्सल प्लग एंड प्ले |
एंटरप्राइज और व्यवसाय (8)
| मॉड्यूल | विवरण |
|---|---|
| AEM | एडोबी एक्सपीरियंस मैनेजर |
| Dynamics 365 | माइक्रोसॉफ्ट डायनेमिक्स 365 / पावर ऐप्स |
| Oracle Service Cloud | ओरेकल CRM प्लेटफ़ॉर्म |
| SAP NetWeaver | SAP एंटरप्राइज प्लेटफ़ॉर्म |
| Splunk | लॉग प्रबंधन प्लेटफ़ॉर्म |
| VMware Horizon | वर्चुअल डेस्कटॉप इन्फ्रास्ट्रक्चर |
| QNAP QTS | NAS प्रबंधन |
| Exchange | माइक्रोसॉफ्ट एक्सचेंज सर्वर |
होम और IoT (2)
| मॉड्यूल | विवरण |
|---|---|
| Home Assistant | होम ऑटोमेशन प्लेटफ़ॉर्म |
| UniFi/EdgeOS | यूनीफाई नेटवर्क डिवाइस |
अन्य (2)
| मॉड्यूल | विवरण |
|---|---|
| Go pprof | Go प्रोफाइलिंग एंडपॉइंट्स |
| NATS | मैसेज ब्रोकर |
डेटाबेस (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, Wappalyzer के माध्यम से तकनीकी पहचान |
| Kubernetes | TCP | API सर्वर पहचान |
मैसेजिंग और क्यूज़ (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 | सीमेंस PLC |
| EtherNet/IP | TCP | 44818 | रॉकवेल/एलन-ब्रैडली |
| PROFINET | TCP | 34962-34964 | सीमेंस औद्योगिक |
| BACnet | UDP | 47808 | भवन ऑटोमेशन |
| OPC UA | TCP | 4840 | औद्योगिक अंतर-संचालन |
| OMRON FINS | TCP/UDP | 9600 | ओमरॉन PLC |
| MELSEC-Q | TCP | 5006, 5007 | मित्सुबिशी PLC |
| KNXnet/IP | UDP | 3671 | भवन ऑटोमेशन |
| IEC 104 | TCP | 2404 | पावर ग्रिड SCADA |
| DNP3 | TCP | 20000 | पावर ग्रिड SCADA |
| Codesys | TCP | 1200, 2455 | PLC रनटाइम |
| Fox | TCP | 1911 | ट्रिडियम नियाग्रा |
| PC WORX | TCP | 1962 | फीनिक्स कॉन्टैक्ट |
| ProConOS | TCP | 20547 | PLC रनटाइम |
| HART-IP | TCP | 5094 | प्रक्रिया ऑटोमेशन |
| EtherCAT | UDP | 34980 | मोशन कंट्रोल |
| Crimson v3 | TCP | 789 | रेड लायन HMI |
| PCOM | TCP | 20256 | यूनिट्रोनिक्स PLC |
| GE SRTP | TCP | 18245 | GE PLC |
| ATG | TCP | 10001 | टैंक गेज |
दूरसंचार और VoIP (17)
| प्रोटोकॉल | परिवहन | डिफ़ॉल्ट पोर्ट | नोट्स |
|---|---|---|---|
| Diameter | TCP/SCTP | 3868 | LTE/5G AAA |
| M3UA | SCTP | 2905 | IP पर SS7 |
| M2UA | SCTP | 2904 | MTP2 उपयोगकर्ता अनुकूलन |
| M2PA | SCTP | 3565 | MTP2 पीयर अनुकूलन |
| SGsAP | SCTP | 29118 | सर्किट-स्विच्ड फ़ॉलबैक |
| X2AP | SCTP | 36422 | LTE अंतर-eNodeB |
| IUA | SCTP | 9900 | IP पर ISDN |
| SIP | TCP/UDP/TLS | 5060, 5061 | VoIP सिग्नलिंग |
| MEGACO/H.248 | UDP | 2944, 2945 | मीडिया गेटवे |
| MGCP | UDP | 2427, 2727 | मीडिया गेटवे |
| H.323 | TCP | 1720 | वीडियो कॉन्फ्रेंसिंग |
| SCCP/Skinny | TCP | 2000, 2443 | सिस्को IP फ़ोन |
| IAX2 | UDP | 4569 | एस्टेरिस्क प्रोटोकॉल |
| GTP-C | UDP | 2123 | GPRS नियंत्रण |
| GTP-U | UDP | 2152 | GPRS उपयोगकर्ता प्लेन |
| GTP' | UDP | 3386 | GPRS चार्जिंग |
| PFCP | UDP | 8805 | 5G उपयोगकर्ता प्लेन |
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 |
लाइब्रेरी उपयोग
अपने Go अनुप्रयोगों में Nerva आयात करें:```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.
## उपयोग के मामले
### पैठ परीक्षण
टोही के दौरान खोजी गई सेवाओं का तेजी से फिंगरप्रिंट लें, ताकि संभावित हमले के वैक्टर की पहचान हो सके।
### एसेट डिस्कवरी पाइपलाइनें
बड़े पैमाने पर एसेट इन्वेंट्री के लिए Naabu या Masscan के साथ संयोजित करें:```sh
naabu -host 10.0.0.0/24 -silent | nerva --json | jq '.protocol'
CI/CD सुरक्षा स्कैनिंग
तैनाती पाइपलाइनों में एकीकृत करें ताकि केवल अपेक्षित सेवाओं के उजागर होने की पुष्टि हो सके।
बग बाउंटी टोही
दिलचस्प एंडपॉइंट्स खोजने के लिए दायरे वाले लक्ष्यों पर सेवाओं की त्वरित गणना करें।
दूरसंचार नेटवर्क विश्लेषण
LTE/5G नेटवर्कों में SCTP ट्रांसपोर्ट (Linux) का उपयोग करके डायमीटर नोड्स की पहचान करें:```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
sudo nerva -t example.com:53 -U
### SCTP काम नहीं कर रहा है
**कारण**: SCTP केवल Linux पर समर्थित है।
**समाधान**: Linux सिस्टम या कंटेनर पर चलाएँ:```sh
docker run --rm nerva -t telecom:3868 -S
शब्दावली
- सेवा: एक नेटवर्क सेवा जो एक पोर्ट पर चलती है (SSH, HTTP, PostgreSQL, आदि)
- फिंगरप्रिंटिंग: सेवा प्रकार, संस्करण और कॉन्फ़िगरेशन का पता लगाना और पहचानना
- प्लगइन: एक प्रोटोकॉल-विशिष्ट पहचान मॉड्यूल
- फास्ट मोड: प्रत्येक प्रोटोकॉल के लिए केवल डिफ़ॉल्ट पोर्ट को स्कैन करना (80/20 अनुकूलन)
- ट्रांसपोर्ट: नेटवर्क लेयर प्रोटोकॉल (TCP, UDP, या SCTP)
सहायता
यदि आपको Nerva उपयोगी लगता है, तो कृपया इसे एक स्टार देने पर विचार करें:
योगदान
हम योगदान का स्वागत करते हैं! दिशानिर्देशों के लिए CONTRIBUTING.md देखें।
लाइसेंस
Apache 2.0 — विवरण के लिए LICENSE देखें।
आभार
Nerva fingerprintx का एक अनुरक्षित फोर्क है, जिसे मूल रूप से प्रेटोरियन के 2022 के इंटर्न क्लास द्वारा विकसित किया गया था: