العودة إلى التحديثات
New releaseAug 26, 2026

nerva v1.69.2

CLI سريع لتعريف الخدمات لأكثر من 170 بروتوكول (TCP/UDP/SCTP) - مبني بواسطة Praetorian

مشاركة
Nerva - أداة سريعة لسطر أوامر لبصمة الخدمات لاستطلاع الشبكات تدعم أكثر من 170 بروتوكولاً

Nerva
Nerva: أداة سريعة لسطر أوامر لبصمة الخدمات

Release Build Status Go Report Card License Stars

الميزاتالتثبيتالبدء السريعالاستخدامالبروتوكولاتالمكتبةحالات الاستخداماستكشاف الأخطاء وإصلاحها

بصمة خدمات عالية الأداء مكتوبة بلغة Go. حدد أكثر من 170 بروتوكول شبكة عبر وسائط النقل TCP وUDP وSCTP مع استخراج غني للبيانات الوصفية.

تكتشف Nerva وتحدد بسرعة الخدمات التي تعمل على منافذ الشبكة المفتوحة. استخدمها إلى جانب ماسحات المنافذ مثل Naabu لبصمة الخدمات المكتشفة، أو دمجها في خطوط أنابيب الأمان لديك للاستطلاع الآلي.

الميزات

  • أكثر من 170 إضافة بروتوكول — قواعد البيانات، الوصول عن بُعد، خدمات الويب، المراسلة، البروتوكولات الصناعية والاتصالات
  • 76 أداة بصمة HTTP — اكتشف تقنيات الويب بما في ذلك جدران الحماية وقواعد البيانات وخوادم الذكاء الاصطناعي/LLM والمزيد
  • كشف سوء التكوين الأمني — حدد المشكلات الأمنية الشائعة مثل واجهات API غير المصادق عليها والبروتوكولات النصية الصريحة (--misconfigs)
  • دعم وسائط نقل متعددة — TCP (افتراضي)، UDP (--udp)، وSCTP (--sctp، Linux فقط)
  • دعم الوكيل — وجّه حركة الفحص بشفافية عبر وكلاء SOCKS5 أو HTTP مع دقة DNS قابلة للتكوين
  • بيانات وصفية غنية — استخرج الإصدارات والتكوينات والتفاصيل ذات الصلة بالأمان من كل خدمة
  • الوضع السريع — افحص المنافذ الافتراضية فقط للاستطلاع السريع (--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

المرجع الكامل — كل أمر فرعي واسم مستعار وعلم، بما في ذلك تلك المخفية من --help — يتم توليده في 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

### أمثلة

**أهداف متعددة:**```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 (لينكس فقط):```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

التكوينات الخاطئة المكتشفة:

معرّف النتيجةالخطورةالوصف
docker-unauth-apiحرجةواجهة Docker API متاحة دون مصادقة
x11-unauth-accessحرجةخادم X11 يسمح باتصالات غير موثّقة
smb-signing-not-requiredمتوسطةتوقيع SMB غير مطلوب (خطر هجوم relay)
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://` - بروكسي SOCKS5 مع دقة DNS محلية
- `socks5h://` - بروكسي SOCKS5 مع دقة DNS من جانب البروكسي (دائمًا)
- `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: دعم UDP عبر SOCKS5 محدود. لا تدعم جميع خوادم 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

البروتوكولات المدعومة

أكثر من 170 إضافة لكشف الخدمات عبر TCP و UDP و SCTP:

وحدات بصمة HTTP (66)

كشف التقنيات لخدمات الويب، مُنظَّمة حسب الفئة:

الجدران النارية وأمن الشبكات (12)

الوحدةالوصف
CheckpointCheck Point Security Gateway
Cisco ASA/FTDCisco firewall/VPN appliances
FortiGateFortinet firewall/VPN
GlobalProtectPalo Alto Networks VPN
JuniperJuniper SRX firewalls
OPNsenseOPNsense firewall
pfSensepfSense firewall
SonicWallSonicWall firewalls
AnyConnectCisco AnyConnect SSL VPN
Cisco ExpresswayCisco collaboration gateway
BigIPF5 BIG-IP load balancer
WinRMWindows Remote Management

الذكاء الاصطناعي/LLM وتعلّم الآلة (6)

الوحدةالوصف
OllamaSelf-hosted LLM inference server
LocalAISelf-hosted LLM inference (OpenAI-compatible)
Open WebUILLM web interface (ChatGPT-style)
TritonNVIDIA Triton Inference Server
WeaviateVector database for AI
ChromaDBVector database

قواعد البيانات ومخازن البيانات (12)

الوحدةالوصف
ArangoDBMulti-model database
CockroachDBDistributed SQL database
CouchDBApache document database
ElasticsearchSearch and analytics engine
etcdDistributed key-value store
MilvusVector database
MinIOS3-compatible object storage
PineconeVector database
Redis CommanderRedis web management UI
TiDBDistributed SQL database
YugabyteDBDistributed SQL database
QdrantVector database

DevOps والبنية التحتية (14)

الوحدةالوصف
ArtifactoryJFrog artifact repository
ConsulHashiCorp service mesh
Docker RegistryContainer image registry
GiteaSelf-hosted Git service
GrafanaObservability platform
HarborContainer registry
JaegerDistributed tracing
JenkinsCI/CD automation
KubernetesContainer orchestration API
PortainerDocker management UI
PrometheusMonitoring system
Swagger/OpenAPIAPI documentation
TeamCityCI/CD server
VaultHashiCorp secrets management

خوادم الويب وأطر العمل (10)

الوحدةالوصف
Apache HTTPDApache HTTP Server
Express.jsNode.js web framework
GoAheadEmbedded web server
GotenbergPDF generation service
GuacamoleApache remote desktop gateway
SOAPWeb services
TengineAlibaba web server
TomcatApache Tomcat
WordPressCMS platform
UPnPUniversal Plug and Play

المؤسسات والأعمال (8)

الوحدةالوصف
AEMAdobe Experience Manager
Dynamics 365Microsoft Dynamics 365 / Power Apps
Oracle Service CloudOracle CRM platform
SAP NetWeaverSAP enterprise platform
SplunkLog management platform
VMware HorizonVirtual desktop infrastructure
QNAP QTSNAS management
ExchangeMicrosoft Exchange Server

المنزل وإنترنت الأشياء (2)

الوحدةالوصف
Home AssistantHome automation platform
UniFi/EdgeOSUbiquiti network devices

أخرى (2)

الوحدةالوصف
Go pprofGo profiling endpoints
NATSMessage broker

قواعد البيانات (20)

البروتوكولالنقلالمنافذ الافتراضية
PostgreSQLTCP5432
MySQLTCP3306
MSSQLTCP1433
OracleTCP1521
MongoDBTCP27017
RedisTCP/TLS6379, 6380
CassandraTCP9042
InfluxDBTCP8086
Neo4jTCP/TLS7687
DB2TCP446, 50000
SybaseTCP5000
FirebirdTCP3050
MemcachedTCP11211
ZooKeeperTCP2181
MilvusTCP19530, 9091
CouchDBHTTP5984
ElasticsearchHTTP9200
ArangoDBHTTP8529
ChromaDBHTTP8000
PineconeHTTP443

الوصول عن بُعد (6)

البروتوكولالنقلالمنافذ الافتراضية
SSHTCP22, 2222
RDPTCP/TLS3389
TelnetTCP23
VNCTCP5900
AnyDeskTCP7070
TeamViewerTCP5938

الويب وواجهات API (2)

البروتوكولالنقلملاحظات
HTTP/HTTPSTCPHTTP/2, tech detection via Wappalyzer
KubernetesTCPAPI server detection

المراسلة وقوائم الانتظار (10)

البروتوكولالنقلالمنافذ الافتراضية
KafkaTCP/TLS9092, 9093
MQTT 3/5TCP/TLS1883, 8883
AMQPTCP/TLS5672, 5671
ActiveMQTCP/TLS61616, 61617
NATSTCP/TLS4222, 6222
PulsarTCP/TLS6650, 6651
SMTPTCP/TLS25, 465, 587
POP3TCP/TLS110, 995
IMAPTCP/TLS143, 993
SMPPTCP2775, 2776

خدمات الملفات والمجلدات (7)

البروتوكولالنقلالمنافذ الافتراضية
FTPTCP21
SMBTCP445
NFSTCP/UDP2049
RsyncTCP873
TFTPUDP69
SVNTCP3690
LDAPTCP/TLS389, 636

خدمات الشبكة (11)

البروتوكولالنقلالمنافذ الافتراضية
DNSTCP/UDP53
DHCPUDP67, 68
NTPUDP123
SNMPUDP161
NetBIOS-NSUDP137
STUNUDP3478
OpenVPNUDP1194
IPsecUDP500
IPMIUDP623
CoAPUDP5683
EchoTCP/UDP7

أنظمة التحكم الصناعي (18)

البروتوكولالنقلالمنافذ الافتراضيةملاحظات
ModbusTCP502SCADA/PLC
S7commTCP102Siemens PLC
EtherNet/IPTCP44818Rockwell/Allen-Bradley
PROFINETTCP34962-34964Siemens industrial
BACnetUDP47808Building automation
OPC UATCP4840Industrial interop
OMRON FINSTCP/UDP9600OMRON PLC
MELSEC-QTCP5006, 5007Mitsubishi PLC
KNXnet/IPUDP3671Building automation
IEC 104TCP2404Power grid SCADA
DNP3TCP20000Power grid SCADA
CodesysTCP1200, 2455PLC runtime
FoxTCP1911Tridium Niagara
PC WORXTCP1962Phoenix Contact
ProConOSTCP20547PLC runtime
HART-IPTCP5094Process automation
EtherCATUDP34980Motion control
Crimson v3TCP789Red Lion HMI
PCOMTCP20256Unitronics PLC
GE SRTPTCP18245GE PLC
ATGTCP10001Tank gauges

الاتصالات وVoIP (17)

البروتوكولالنقلالمنافذ الافتراضيةملاحظات
DiameterTCP/SCTP3868LTE/5G AAA
M3UASCTP2905SS7 over IP
M2UASCTP2904MTP2 User Adaptation
M2PASCTP3565MTP2 Peer Adaptation
SGsAPSCTP29118Circuit-switched fallback
X2APSCTP36422LTE inter-eNodeB
IUASCTP9900ISDN over IP
SIPTCP/UDP/TLS5060, 5061VoIP signaling
MEGACO/H.248UDP2944, 2945Media gateway
MGCPUDP2427, 2727Media gateway
H.323TCP1720Video conferencing
SCCP/SkinnyTCP2000, 2443Cisco IP phones
IAX2UDP4569Asterisk protocol
GTP-CUDP2123GPRS control
GTP-UUDP2152GPRS user plane
GTP'UDP3386GPRS charging
PFCPUDP88055G user plane

VPN والأمن (11)

البروتوكولالنقلالمنافذ الافتراضية
SSHTCP22, 2222
OpenVPNUDP1194
WireGuardUDP51820
IPsec/IKEv2UDP500, 4500
L2TPUDP1701
SSTPTCP443
GlobalProtectHTTP443
AnyConnectHTTP443
FortiGateHTTP443
STUN/TURNUDP3478, 5349
KerberosTCP88

الوصول عن بُعد والإدارة (10)

البروتوكولالنقلالمنافذ الافتراضية
RDPTCP/TLS3389
VNCTCP5900
TelnetTCP23
WinRMHTTP5985, 5986
IPMIUDP623
SNMPUDP161
Zabbix AgentTCP10050
NRPETCP/TLS5666
DockerTCP/TLS2375, 2376
X11TCP6000-6063

أدوات المطوّرين (8)

البروتوكولالنقلالمنافذ الافتراضية
HTTP/HTTPSTCP80, 443, 8080, 8443
Java RMITCP1099
JDWPTCP5005
RTSPTCP554
Linux RPCTCP111
JetDirectTCP9100
CUPS/IPPTCP631
SonarQubeTCP9000

استخدام المكتبة

استورد 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

دمج في خطوط أنابيب النشر للتحقق من أن الخدمات المتوقعة فقط هي المكشوفة.

استطلاع Bug Bounty

تعداد الخدمات بسرعة عبر أهداف النطاق للعثور على نقاط نهاية مثيرة للاهتمام.

تحليل شبكات الاتصالات

بصمة عقد Diameter في شبكات 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

### أخطاء المهلة الزمنية

**السبب**: المهلة الافتراضية البالغة ثانيتين قصيرة جدًا للخدمات البطيئة.

**الحل**: قم بزيادة المهلة:```sh
nerva -t example.com:80 -w 5000  # 5 seconds

خدمات UDP غير المكتشفة

السبب: فحص UDP معطّل افتراضيًا.

الحل: فعّله باستخدام العلامة -U (قد يتطلب صلاحيات root):```sh sudo nerva -t example.com:53 -U

### 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 مفيدًا، يُرجى التفكير في منحه نجمة:

GitHub stars

المساهمة

نرحب بالمساهمات! راجع CONTRIBUTING.md للحصول على الإرشادات.

الترخيص

Apache 2.0 — راجع LICENSE للحصول على التفاصيل.

شكر وتقدير

Nerva هو fork مُصان من fingerprintx، الذي طورته في الأصل دفعة المتدربين لعام 2022 في Praetorian:

الفئات