العودة إلى التحديثات
New releaseJul 25, 2026

nerva v1.48.1

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

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

Nerva
نيرفا: واجهة سطر أوامر سريعة لتحليل بصمة الخدمات

Release Build Status Go Report Card License Stars

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

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

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

الميزات

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

الاستخدام```

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

| العلم | المختصر | الوصف | الافتراضي |
|------|-------|-------------|---------|
| `--targets` | `-t` | الهدف أو قائمة أهداف مفصولة بفواصل | — |
| `--list` | `-l` | ملف الإدخال الذي يحتوي على الأهداف | — |
| `--output` | `-o` | مسار ملف الإخراج | stdout |
| `--json` | | الإخراج بصيغة JSON | false |
| `--csv` | | الإخراج بصيغة CSV | false |
| `--misconfigs` | | تمكين كشف الأخطاء في التكوين الأمني | false |
| `--proxy` | | رابط الوكيل (مثال: 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 (لينكس فقط) | 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 (لينكس فقط):```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 IDSeverityDescription
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://` - بروكسي 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)

الوحدةالوصف
Checkpointبوابة الأمان من Check Point
Cisco ASA/FTDأجهزة جدار ناري/VPN من Cisco
FortiGateجدار ناري/VPN من Fortinet
GlobalProtectVPN من Palo Alto Networks
Juniperجدران نارية Juniper SRX
OPNsenseجدار ناري OPNsense
pfSenseجدار ناري pfSense
SonicWallجدران نارية SonicWall
AnyConnectVPN SSL من Cisco AnyConnect
Cisco Expresswayبوابة التعاون من Cisco
BigIPموازن التحميل F5 BIG-IP
WinRMإدارة Windows عن بُعد

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

الوحدةالوصف
Ollamaخادم استدلال LLM ذاتي الاستضافة
LocalAIاستدلال LLM ذاتي الاستضافة (متوافق مع OpenAI)
Open WebUIواجهة ويب LLM (على نمط ChatGPT)
Tritonخادم استدلال NVIDIA Triton
Weaviateقاعدة بيانات متجهة للذكاء الاصطناعي
ChromaDBقاعدة بيانات متجهة

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

الوحدةالوصف
ArangoDBقاعدة بيانات متعددة النماذج
CockroachDBقاعدة بيانات SQL موزعة
CouchDBقاعدة بيانات مستندات Apache
Elasticsearchمحرك بحث وتحليلات
etcdمخزن مفاتيح-قيم موزع
Milvusقاعدة بيانات متجهة
MinIOتخزين كائنات متوافق مع S3
Pineconeقاعدة بيانات متجهة
Redis Commanderواجهة إدارة ويب لـ Redis
TiDBقاعدة بيانات SQL موزعة
YugabyteDBقاعدة بيانات SQL موزعة
Qdrantقاعدة بيانات متجهة

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

الوحدةالوصف
Artifactoryمستودع القطع الأثرية من JFrog
Consulشبكة الخدمات من HashiCorp
Docker Registryسجل صور الحاويات
Giteaخدمة Git ذاتية الاستضافة
Grafanaمنصة المراقبة
Harborسجل الحاويات
Jaegerالتتبع الموزع
Jenkinsأتمتة CI/CD
Kubernetesواجهة برمجة تطبيقات تنسيق الحاويات
Portainerواجهة إدارة Docker
Prometheusنظام المراقبة
Swagger/OpenAPIتوثيق API
TeamCityخادم CI/CD
Vaultإدارة الأسرار من HashiCorp

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

الوحدةالوصف
Apache HTTPDخادم HTTP من Apache
Express.jsإطار عمل ويب Node.js
GoAheadخادم ويب مضمن
Gotenbergخدمة إنشاء PDF
Guacamoleبوابة سطح المكتب البعيد من Apache
SOAPخدمات الويب
Tengineخادم ويب من Alibaba
TomcatApache Tomcat
WordPressمنصة CMS
UPnPالتوصيل والتشغيل العالمي

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

الوحدةالوصف
AEMAdobe Experience Manager
Dynamics 365Microsoft Dynamics 365 / Power Apps
Oracle Service Cloudمنصة CRM من Oracle
SAP NetWeaverمنصة المؤسسات من SAP
Splunkمنصة إدارة السجلات
VMware Horizonبنية سطح المكتب الافتراضي
QNAP QTSإدارة NAS
Exchangeخادم Microsoft Exchange

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

الوحدةالوصف
Home Assistantمنصة أتمتة المنزل
UniFi/EdgeOSأجهزة شبكات Ubiquiti

أخرى (2)

الوحدةالوصف
Go pprofنقاط نهاية تحليل أداء Go
NATSوسيط الرسائل

قواعد البيانات (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, كشف التقنيات عبر Wappalyzer
KubernetesTCPكشف خادم API

الرسائل وقوائم الانتظار (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

الاتصالات والصوت عبر IP (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/HEAD/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 (قد يتطلب صلاحيات الجذر):```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 مفيدًا، يرجى التفكير في منحه نجمة:

GitHub stars

المساهمة

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

الترخيص

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

الشكر والتقدير

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

الفئات