
Nmap NSE स्क्रिप्ट जो पहचाने गए नेटवर्क सेवाओं के लिए ज्ञात कमजोरियों (CVEs) की पहचान करने के लिए Vulners API से क्वेरी करती है, मानक पोर्ट स्कैनिंग को स्वचालित CVE लुकअप और CVSS स्कोरिंग के साथ बढ़ाती है।
nmap सेवा स्कैन को CVEs, एक्सप्लॉइट्स और उन चीज़ों की रैंक्ड सूची में बदलें जिन पर वास्तविक दुनिया में हमला हो रहा है।
एक NSE स्क्रिप्ट जो nmap द्वारा पहले से पहचाने गए सॉफ़्टवेयर को लेती है, Vulners डेटाबेस से पूछती है कि उसके बारे में क्या ज्ञात है, और उत्तर को स्कैन रिपोर्ट के अंदर प्रिंट करती है - सबसे खराब को पहले, उसके आधार पर जो वास्तव में एक्सप्लॉइट करने योग्य है।
स्कैनिंग के लिए प्रकाशित होस्ट्स के वास्तविक स्कैन। कोई कुंजी नहीं, फिर एक कुंजी, फिर एक वेब पोर्ट: nmap का एक Coyote बैनर रिपोर्ट करता है और स्कैन उसके पीछे के Tomcat और jQuery का नाम बताता है।
-sVहर खुले पोर्ट के लिए यह उस सॉफ़्टवेयर को देखता है जिसे nmap ने पहचाना है - वे CPEs जो -sV ने उत्पन्न किए - और प्रिंट करता है कि Vulners उसके बारे में क्या जानता है: सबसे खराब को पहले, उसके आधार पर जो एक्सप्लॉइट किया जा रहा है न कि केवल स्कोर के आधार पर, और हर पंक्ति उसके पीछे के पेज का एक लिंक है।
HTTP पोर्ट पर यह वेब स्टैक का भी फ़िंगरप्रिंट लेता है, जो उस सॉफ़्टवेयर का नाम बताता है जिसे -sV नहीं देख सकता - एक एप्लिकेशन फ्रेमवर्क, एक CMS, रिवर्स प्रॉक्सी के पीछे का PHP संस्करण। 721 नियम प्रतिक्रिया के उन हिस्सों को पढ़ते हैं जो संस्करण रखते हैं: Server हेडर, X-Powered-By, कुकीज़, पेज का शीर्षक, <meta> टैग, <script src> फ़ाइलनाम और बॉडी। उन पहचानों को भी देखा जाता है, और पोर्ट पर प्रकाशित किया जाता है ताकि बाकी स्कैन उनका उपयोग कर सके।
स्कैन से परे यह दो चीज़ें करता है:
-sV किसी सेवा का नाम नहीं बता पाता, तो कच्चे बैनर को FTP, SMTP, SSH, MySQL, DNS, NTP, LDAP और अधिक के नियमों के विरुद्ध मिलान किया जाता है। इसके लिए कोई अतिरिक्त अनुरोध नहीं लगता, और यह वह स्थिति है जहाँ एक पोर्ट अन्यथा कुछ भी रिपोर्ट नहीं करता।/CHANGELOG.txt, Joomla के लिए /administrator/manifests/files/joomla.xml। छह जांचे गए उत्पादों में से कोई भी नहीं चलाने वाले होस्ट को कुछ भी अतिरिक्त नहीं भेजा जाता।```sh
nmap -sV --script vulners यह पूरा इंटरफ़ेस है। यह API key के बिना काम करता है; key के साथ यह आपको
अधिक जानकारी देता है। कोई mode switch नहीं है।```
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
| vulners: cpe:/a:apache:http_server:2.4.7 272 findings, 56 exploitable
| SEVERITY CVSS AI FLAGS LINK
| ======== ==== ==== ======= ==============================================================
| CRITICAL 10.0 8.8 EXP https://vulners.com/gitee/3E6BA608-776F-5B1F-9BA5-589CD2A5A351
| CRITICAL 9.8 9.9 EXP https://vulners.com/zdt/1337DAY-ID-39214
| CRITICAL 9.8 9.6 EXP https://vulners.com/packetstorm/PACKETSTORM:171631
| CRITICAL 9.8 9.9 https://vulners.com/cve/CVE-2021-44790
| CRITICAL 9.8 9.8 https://vulners.com/cve/CVE-2023-25690
|_ 262 more not shown; -v shows all, -vv adds where each was found
कुंजी के साथ, उसी होस्ट का वही स्कैन अलग-अलग उत्तर देता है - KEV का मतलब है कि CISA ने भेद्यता को वास्तविक दुनिया में शोषित के रूप में दर्ज किया है, और EPSS प्रकाशित संभावना है कि यह होगा:```
| vulners: cpe:/a:apache:http_server:2.4.7 272 findings, 78 exploitable
| SEVERITY CVSS EPSS FLAGS LINK
| ======== ==== ==== ======= ==============================================================
| CRITICAL 9.1 >99% KEV EXP https://vulners.com/cve/CVE-2024-38475
| CRITICAL 9.0 >99% KEV EXP https://vulners.com/cve/CVE-2021-40438
| CRITICAL 9.1 >99% KEV https://vulners.com/cnvd/CNVD-2024-36387
| CRITICAL 10.0 71% EXP https://vulners.com/gitee/3E6BA608-776F-5B1F-9BA5-589CD2A5A351
| CRITICAL 9.8 97% EXP https://vulners.com/cve/CVE-2021-44790
|_ 262 more not shown; -v shows all, -vv adds where each was found
वही 272 निष्कर्ष, एक अलग क्रम, एक अलग शीर्ष पंक्ति - और उनमें से 22 और
शोषण योग्य (exploitable) के रूप में ज्ञात हैं, क्योंकि एक कुंजी प्रत्येक शोषण को उन CVE से जोड़ती है जिनका वह
शोषण करता है। ये दोनों vulners.com के वास्तविक उत्तर हैं, जो उस बैनर को प्रस्तुत करने वाले
स्थानीय सर्वर के विरुद्ध कैप्चर किए गए हैं।
## रैंकिंग
तथ्य भविष्यवाणियों से ऊपर हैं। निष्कर्ष इस प्रकार क्रमबद्ध हैं:
1. **CISA KEV** - जंगल में शोषण किए जाने के रूप में दर्ज
2. **SSVC `active`** - किसी समन्वयक का निर्णय कि शोषण हो रहा है
3. **एक शोषण मौजूद है** - कोड प्रकाशित है, इसके लिए या किसी ऐसे CVE के लिए जिसे यह नामित करता है
4. **उच्च EPSS** - एक मॉडल शोषण की उम्मीद करता है
5. बाकी सब कुछ
CVSS एक बैंड के भीतर टाई तोड़ता है, बैंड के पार नहीं: एक शोषित 7.5 एक बदतर
समस्या है एक अशोषित 9.8 की तुलना में, और यह वही क्रम है जो यह कहता है।
कॉलम डेटा का अनुसरण करते हैं। एक संकेत जो उत्तर ने नहीं दिया वह अपना कॉलम खो देता है
बजाय एक खाली सेल दिखाने के, क्योंकि एक रिक्त EPSS "शांत" के रूप में पढ़ा जाता है, और
वह एक दावा है जिसे एक अनुपस्थित फ़ील्ड समर्थन नहीं कर सकती।
## एक API कुंजी क्या जोड़ती है
| | |
|---|---|
| **बिना कुंजी के** | nmap द्वारा पाया गया हर CPE मुफ्त एंडपॉइंट पर देखा जाता है। निष्कर्ष, स्कोर, शोषण फ़्लैग और Vulners का अपना AI स्कोर। कोई क्रेडिट नहीं, कोई खाता नहीं |
| **एक कुंजी, कोई क्रेडिट नहीं** | प्रत्येक निष्कर्ष वह प्राप्त करता है जो id एंडपॉइंट जानता है: शीर्षक, तिथियाँ, ऊपरी एडवाइज़री या शोषण पृष्ठ, शोषण-से-CVE लिंकेज, CISA KEV, और - लाइसेंस के आधार पर - EPSS और SSVC |
| **एक कुंजी, एक क्रेडिट** | वह सॉफ़्टवेयर जिसे मुफ्त पथ बिल्कुल भी नाम नहीं दे सका, उसके कच्चे बैनर से पहचाना जाता है। यही एकमात्र चीज़ है जिसकी यहाँ कोई लागत है, और केवल उस सेवा के लिए जिसमें कोई CPE नहीं है |
एक पोर्ट जो पहले से ही एक CPE रखता है वह कभी क्रेडिट नहीं खर्च करता: चार उत्पादों में मापा गया,
मुफ्त लुकअप एक CPE के लिए भुगतान किए गए के समान **समान CVE** लौटाता है।
एक क्रेडिट जो खरीदता है वह पहचान है, अधिक कमज़ोरियाँ नहीं।
मुफ्त कुंजियाँ [vulners.com/userinfo](https://vulners.com/userinfo) पर हैं।
## इंस्टॉल
**macOS, Linux, Kali, WSL** - एक पंक्ति, कोई तर्क नहीं:```sh
curl -fsSL https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.sh | sh
Windows - PowerShell व्यवस्थापक के रूप में:```powershell irm https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.ps1 | iex
इंस्टॉलर nmap से पूछता है कि वह अपना डेटा कहाँ रखता है, स्क्रिप्ट्स और उनकी डेटा फ़ाइलों को वहाँ कॉपी करता है, स्क्रिप्ट डेटाबेस को फिर से बनाता है, और फिर जाँचता है कि `--script vulners` वास्तव में उस चीज़ को हल करता है जो उसने अभी इंस्टॉल की है - nmap अपनी खुद की एक `vulners.nse` भेजता है, और यह उसे बदल देता है।
<details>
<summary><b>रूट के बिना, और अन्य विकल्प</b></summary>```sh
# into ~/.nmap, no sudo; the installer prints the NMAPDIR line to add to your profile
curl -fsSL https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.sh | sh -s -- --user
# a specific directory
./install.sh --prefix /usr/local/share/nmap
# a specific release
./install.sh --ref v2.0
# remove everything it installed
./install.sh --uninstall
PowerShell समान विकल्प लेता है: -User, -Prefix, -Ref, -Uninstall।
एक फ़ाइल: vulners.nse को <nmap data dir>/scripts/ में कॉपी करें और
sudo nmap --script-updatedb चलाएँ। रखने के लिए और कुछ नहीं है - स्क्रिप्ट
स्कैन समय पर अपने शब्दकोश डाउनलोड करती है और डिस्क पर कुछ भी नहीं लिखती है - और इसलिए
भूलने के लिए कुछ भी नहीं है, जो पहले एक ऐसी स्क्रिप्ट उत्पन्न करती थी जो चलती थी, कुछ नहीं पाती थी, और
इसके कारण के बारे में कुछ नहीं कहती थी।
यदि आप 1.x से अपग्रेड कर रहे हैं, तो उस निर्देशिका से vulners_enterprise.nse और
http-vulners-regex.nse भी हटा दें। एक बचा हुआ
http-vulners-regex.nse अभी भी default श्रेणी रखता है और सादे -sC के तहत
लक्ष्यों को स्कैन करता रहता है। इंस्टॉलर आपके लिए ऐसा करता है।
nmap डेटा निर्देशिका आमतौर पर /usr/share/nmap (Debian, Ubuntu, Kali),
/usr/local/share/nmap (स्रोत से निर्मित), /opt/homebrew/share/nmap
(Homebrew) या C:\Program Files (x86)\Nmap (Windows) होती है। निश्चित होने के लिए, nmap से पूछें:```sh
nmap -d2 --script-help probe 2>&1 | grep nse_main.lua
`nse_main.lua` वाली निर्देशिका वही है जिसका उपयोग यह nmap करता है।
</details>
## स्क्रिप्ट तर्क
| तर्क | डिफ़ॉल्ट | अर्थ |
|---|---|---|
| `vulners.mincvss` | `0` | इससे नीचे स्कोर किए गए निष्कर्ष छिपाएँ। बिना स्कोर वाले बुलेटिन और जिनमें ज्ञात शोषण है, वे किसी भी सीमा पर दिखाए जाते हैं |
| `vulners.paths` | प्रकाशित 939 पथ | वेब स्वीप के लिए पथ: एक Lua सूची, एक स्ट्रिंग जो किसी फ़ाइल का नाम देती है जिसमें प्रति पंक्ति एक पथ हो, या स्वीप बंद करने के लिए `none`। आपके द्वारा नामित फ़ाइल जिसे पढ़ा नहीं जा सकता, वह स्वीप रोक देती है और ऐसा बताती है, न कि प्रकाशित सूची पर वापस गिरती है |
| `vulners.width` | `80` | टर्मिनल चौड़ाई जिसके लिए तालिका बनाई गई है |
| `vulners.max_items` | `32` | पूरे स्कैन के लिए बिल किए गए आइटम की सीमा |
| `vulners.api_key` | - | API टोकन। लीकी: nmap अपनी कमांड लाइन को `-oX` में कॉपी करता है |
| `vulners.api_key_file` | - | किसी फ़ाइल का पूर्ण पथ जिसकी पहली पंक्ति टोकन है |
| `vulners.api_host` | `vulners.com` | API का होस्ट नाम |
| `vulners.api_port` | `443` | `api_host` पर पोर्ट |
एक सादा नाम भी काम करता है, इसलिए `--script-args mincvss=7` पर्याप्त है।
1.x तर्क उपसर्ग - `vulners_enterprise.*` और
`http-vulners-regex.paths` - एक रिलीज़ के लिए स्वीकार किए जाते हैं और
अप्रचलन सूचना प्रिंट करते हैं।
## API कुंजी कहाँ रखें
प्राथमिकता के क्रम में:
1. `~/.nmap/vulners.key`, एक पंक्ति, मोड 600 - इंस्टॉलर इसे लिखने की पेशकश करता है
2. पर्यावरण में `VULNERS_API_KEY`
3. `--script-args vulners.api_key_file=/absolute/path`
4. `--script-args vulners.api_key=<token>`
अंतिम वाला सुविधाजनक और लीकी है: nmap अपनी कमांड लाइन को हर रिपोर्ट में कॉपी करता है, इसलिए टोकन `-oX` आउटपुट के `args` विशेषता और आपके शेल इतिहास में समाप्त हो जाता है। स्क्रिप्ट स्वयं टोकन को कहीं नहीं लिखती, जिसमें उसका डिबग आउटपुट भी शामिल है - एक रिग्रेशन परीक्षण है जो ऐसा कहता है।
एक कुंजी फ़ाइल जिसे आप स्पष्ट रूप से नामित करते हैं और जिसे पढ़ा नहीं जा सकता, वह चुपचाप वापस गिरने के बजाय रन रोक देती है - एक ऑपरेटर जो फ़ाइल का नाम देता है उसका मतलब है कि वह फ़ाइल - और रिपोर्ट बताती है कि वह कौन सी फ़ाइल थी। एक गलत टाइप किया गया पथ स्वच्छ स्कैन जैसा नहीं दिख सकता।
## फ़िंगरप्रिंट कहाँ से आते हैं
स्क्रिप्ट उन्हें साथ नहीं रखती। यह प्रति स्कैन तीन शब्दकोश डाउनलोड करती है, पहले होस्ट को छूने से पहले:```
https://raw.githubusercontent.com/vulnersCom/nmap-vulners/catalog/
index.json what exists, at which serial
fingerprints.json 721 product and version rules
paths.json 939 paths the sweep requests
probes.json targeted version probes
यह प्रति स्कैन चार अनुरोध हैं - प्रति फ़ाइल एक, न कि प्रति होस्ट और न ही प्रति पोर्ट - 250 KB JSON में से 40 KB संपीड़ित, nmap के प्री-स्कैन चरण में। प्रकाशित ब्रांच के विरुद्ध मापा गया। इसलिए एक स्थापित स्क्रिप्ट बिना अपडेट किए नई फ़िंगरप्रिंट उठा लेती है।
यह आपके फ़ाइलसिस्टम में कुछ नहीं लिखती। शब्दकोश स्कैन की अवधि के लिए रखे जाते हैं और फिर छोड़ दिए जाते हैं, जैसा हर स्क्रिप्ट व्यवहार करती है जो nmap भेजता है: उनमें से 611 में से, 26 लिखने के लिए एक फ़ाइल खोलती हैं और हर एक केवल वहीं लिखती है जहाँ एक स्क्रिप्ट तर्क ने उसे बताया। कोई भी कैश नहीं रखती, और यह भी नहीं रखती।
यदि उन्हें डाउनलोड नहीं किया जा सकता, तो स्कैन फिर भी चलता है। शब्दकोश वेब फ़िंगरप्रिंटिंग को फ़ीड करते हैं और कुछ और नहीं, इसलिए GitHub का कोई रूट नहीं रखने वाली मशीन वह क्षमता खो देती है और बाकी सब रखती है: nmap द्वारा स्वयं पहचाना गया सॉफ़्टवेयर अभी भी देखा जाता है, और रिपोर्ट बताती है कि कौन सी क्षमता गायब थी, बजाय इसके कि आप एक खाली परिणाम को स्वच्छ नेटवर्क के रूप में पढ़ें।
| तर्क | यह क्या करता है |
|---|---|
vulners.catalog_url=<url> | इसके बजाय एक मिरर से लाएँ - एयरगैप्ड नेटवर्क के लिए। एक होस्ट नाम या कोष्ठक में एक IPv6 पता, http://[fd00::1]/catalog/ |
vulners.catalog=none | बिल्कुल न लाएँ; केवल वही देखें जो nmap ने नाम दिया |
एक HTTP पोर्ट पर स्क्रिप्ट हर पथ का अनुरोध करती है जो कैटलॉग प्रकाशित करता है - 939
पथ - और सभी 721 नियमों को हर उत्तर के विरुद्ध मिलाती है। पथ WhatWeb,
nuclei और FingerprintHub से आते हैं: वे स्थान जहाँ एक उत्पाद पहचाना जाता है, न कि
अनुमान। यहाँ तक कि एक पथ जो उस सॉफ़्टवेयर का है जिसे आप नहीं चला रहे, वह अनुरोध
के लायक है, क्योंकि उत्तर में अभी भी Server, X-Powered-By, एक कुकी और
एक शीर्षक होता है, और वे ही वे स्थान हैं जहाँ नियम उसके सामने का स्टैक पाते हैं।
यह कितनी तेज़ी से चलता है यह आपका -T है, हमारी कोई सेटिंग नहीं। सूची
कभी घटती नहीं; दर घटती है:
सभी छह एक ही स्थानीय सर्वर के विरुद्ध एक ही रन में मापे गए। अकेले उसके विरुद्ध
-sV 6.1 s है, इसलिए स्वीप डिफ़ॉल्ट पर डेढ़ सेकंड खर्च करता है। दो धीमी
पंक्तियाँ -T0 और -T1 हैं जो अपना काम कर रही हैं: 188 और 94 बैच, प्रत्येक के
बीच एक जानबूझकर प्रतीक्षा के साथ।
अनुरोध 34-48 कनेक्शनों पर पाइपलाइन किए जाते हैं जिनमें एक बार में अधिकतम चार
खुले होते हैं, जो nselib का pipeline_go है - वही तंत्र जो nmap का अपना
http-enum उपयोग करता है, सर्वर के Keep-Alive: max= और
--script-args http.max-pipeline=N का सम्मान करते हुए।
--script-args vulners.paths=none स्वीप को पूरी तरह बंद कर देता है।
nmap -sV | +-- service fingerprint --> port.version.cpe --------------+ | | +-- vulners.nse | reads nmap's banner for services -sV could not name | on an HTTP port: requests the path list in one | pipeline, matches 721 rules against the header, the | title, the meta tags, the scripts and the body | probes for a version when a product hid it | publishes everything it recognised ------------------+ | v GET /api/v3/burp/software/ per identity free, no key, CDN-cached | POST /api/v3/search/id/ per 100 findings free, needs a key: enrichment | POST /api/v4/audit/smart only for a service with no CPE: 1 credit | ranked, filtered, printed
उत्तर पूरे स्कैन के लिए कैश किए जाते हैं, प्रत्येक पहचान के अनुसार कुंजीबद्ध, इसलिए सौ समान सर्वरों की लागत एक ही लुकअप होती है। एनरिचमेंट प्रत्येक फाइंडिंग आईडी के अनुसार कैश किया जाता है, इसलिए ओवरलैपिंग सॉफ़्टवेयर चलाने वाले दो वेब पोर्ट प्रत्येक दस्तावेज़ को एक बार लाते हैं।
## मशीन-पठनीय आउटपुट
जो कुछ भी मुद्रित होता है वह संरचित भी होता है, इसलिए `-oX` को मानव-पठनीय टेक्स्ट को छुए बिना पार्स किया जा सकता है। स्क्रिप्ट आईडी, दो टेबल स्तर और पाँच मूल एलिमेंट कुंजियाँ 1.x से अपरिवर्तित हैं, जो DefectDojo, Faraday, nmap2csv और raven पढ़ते हैं:```xml
<script id="vulners">
<elem key="schema">2.0</elem>
<elem key="mode">keyed</elem>
<table key="cpe:/a:apache:http_server:2.4.7">
<table>
<elem key="id">CVE-2021-40438</elem>
<elem key="type">cve</elem>
<elem key="severity">CRITICAL</elem>
<elem key="cvss">9.0</elem>
<elem key="cvss_type">cvss3.1</elem>
<elem key="is_exploit">false</elem>
<elem key="exploit_known">true</elem>
<elem key="kev">true</elem>
<elem key="epss">0.99612</elem>
<elem key="exploitation">active</elem>
<elem key="title">Apache HTTP Server SSRF in mod_proxy</elem>
<elem key="href">https://vulners.com/cve/CVE-2021-40438</elem>
<elem key="source_href">https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-40438</elem>
</table>
</table>
</script>
2.0 में नया: schema, mode, severity, exploit_known, kev, epss,
epss_percentile, exploitation, ai_score, title, published, href,
source_href और found_on। हर एक मौजूद-या-अनुपस्थित है, कभी खाली नहीं।
पहले से अधिक गहराई से कुछ भी नेस्टेड नहीं है, क्योंकि तीसरा टेबल स्तर
जांचे गए हर इम्पोर्टर के लिए अदृश्य है।
href हमेशा दोनों मोड में फाइंडिंग के लिए vulners.com पेज होता है। एंडपॉइंट का
अपना href अपस्ट्रीम पता है - CVE के लिए nvd.nist.gov,
स्क्रैप किए गए एक्सप्लॉइट के लिए github.com - और वह अलग से यात्रा करता है,
source_href के रूप में, इसलिए किसी भी फ़ील्ड का अर्थ इस बात पर निर्भर नहीं करता कि किस मोड ने इसे उत्पन्न किया।
संरचित आउटपुट हमेशा हर उस फाइंडिंग को ले जाता है जो mincvss पास करती है, यहाँ तक कि
वे भी जिन्हें वर्बोसिटी सीढ़ी टेक्स्ट से छिपाती है - इसलिए कोई ऑटोमेशन -v पास न करके
फाइंडिंग नहीं खोता।
रेंडर किया गया टेक्स्ट एक ब्रेक है। *EXPLOIT* और *HAS EXPLOIT* टोकन
और टैब-डिलिमिटेड लेआउट चले गए हैं, उनकी जगह ऊपर संरेखित तालिका ने ले ली है।
प्रति-पंक्ति vulners.com लिंक बना रहा: यह अंतिम कॉलम है, और यह एकमात्र सेल है
जिसे लेआउट छोटा नहीं करेगा, क्योंकि आधा URL URL नहीं होता। टेक्स्ट-स्क्रैपिंग
उपभोक्ताओं को अपडेट की आवश्यकता है; -oX उपभोक्ताओं को नहीं।
नेटवर्क का स्कैन API से उतना कम पूछता है जितना दिखता है:
परीक्षण, हाइजीन गेट और CONTRIBUTING.md केवल git रिपॉजिटरी में हैं;
रिलीज़ आर्काइव स्क्रिप्ट और उनका डेटा भेजता है। आठ गेट, सभी ऑफ़लाइन सिवाय जहाँ नोट किया गया है, और CI बिल्कुल यही चलाता है:```sh
nmap -sn -Pn --script ./tests/run.nse --script-args testdir=tests,root=. 127.0.0.1
python3 tests/e2e/run_e2e.py
python3 tools/check.py
python3 tools/catalog.py --check
python3 tools/xml_contract.py --selftest
python3 tools/fingerprints/selftest.py
python3 tools/catalog_diff.py --selftest
python3 tools/nmap_style.py
270 यूनिट केस nmap के अंदर वास्तविक NSE लाइब्रेरीज़ के विरुद्ध चलते हैं; 64 एंड-टू-एंड केस वास्तविक nmap बाइनरी को एक स्थानीय वेब सर्वर और एक स्टैंड-इन Vulners API के विरुद्ध चलाते हैं जो वही लागू करता है जो वास्तविक वाला लागू करता है; हाइजीन गेट सीक्रेट्स, स्कैन आउटपुट और एडिटर क्लटर को ट्री से बाहर रखता है और एक ग्लोबल रीड को मना करता है जिसे NSE एक खोया हुआ परिणाम बना देगा; और अंतिम चार डेटा और उसे प्रकाशित करने वाले टूल्स को रखते हैं - कैटलॉग का आकार, XML अनुबंध जिसे हर इम्पोर्टर पढ़ता है, पैटर्न ट्रांसलेटर, और वह गेट जो तय करता है कि रीबिल्ड प्रकाशित करना सुरक्षित है। अंतिम वाला पूरे रिपॉजिटरी को
[Nmap के अपने कोड स्टैंडर्ड्स](https://secwiki.org/w/Nmap/Code_Standards) के अधीन रखता है, जिसे
`HACKING` उस स्क्रिप्ट के लिए अधिकार के रूप में नामित करता है जो nmap के
ट्री में रहना चाहती है: कोई टैब नहीं, कोई ट्रेलिंग व्हाइटस्पेस नहीं, 80 कॉलम से कम की लाइनें, कोई सेमीकोलन नहीं,
`--;` से शुरू होने वाला निजी NSEdoc, Python के लिए PEP 8।
`python3 tests/e2e/run_e2e.py --live` वास्तविक सेवा के विरुद्ध जाँच जोड़ता है।
देखें [CONTRIBUTING.md](https://github.com/vulnerscom/nmap-vulners/blob/master/CONTRIBUTING.md)।
## FAQ
**क्या यह कुछ एक्सप्लॉइट करता है?** नहीं। यह बैनर और पेज पढ़ता है और एक
डेटाबेस से पूछता है - यह कोई पेलोड नहीं भेजता और कोई क्रेडेंशियल आज़माता नहीं। इसे
`safe` के बजाय `discovery, intrusive, vuln, external` श्रेणी में रखा गया है, एक कारण से: पाथ
स्वीप एक वेब पोर्ट के 939 पाथ अनुरोध करता है, और nmap की `safe` की परिभाषा
उन स्क्रिप्ट्स को बाहर करती है जो बड़ी मात्रा में बैंडविड्थ का उपयोग करती हैं। nmap का अपना `http-enum`
2 204 अनुरोध करता है और वही लेबल रखता है। आपका `-T` तय करता है कि वे कितनी तेज़ी से बाहर जाते हैं
और कभी नहीं कि कितने, और `--script-args vulners.paths=none` स्वीप को पूरी तरह बंद कर देता है।
**क्या यह API कुंजी के बिना काम करता है?** हाँ, पूरी तरह। इसके बिना यह मुफ्त
एंडपॉइंट का उपयोग करता है, जो एक CPE के लिए वही कमज़ोरियाँ लौटाता है जो भुगतान वाला करता है। एक
कुंजी प्रति निष्कर्ष विवरण जोड़ती है, और उस सॉफ़्टवेयर का नाम बता सकती है जो मुफ्त पाथ नहीं बता सकता।
**`-sC` ने वेब सॉफ़्टवेयर ढूंढना क्यों बंद कर दिया?** क्योंकि `vulners` अब nmap की
`default` श्रेणी में नहीं है, और न ही वह फ़िंगरप्रिंट स्वीप है जो पहले
`http-vulners-regex.nse` में रहता था। किसी लक्ष्य के सॉफ़्टवेयर की पहचान किसी
तृतीय पक्ष को भेजना कुछ ऐसा होना चाहिए जो आपने माँगा हो: चलाएँ `--script vulners`।
**एक कमज़ोरी `cvss2.0` क्यों दिखाती है जबकि दूसरी `cvss3.1` दिखाती है?** लेबल उस पैमाने का नाम बताता है जिस पर स्कोर है। Vulners वही लौटाता है जो स्रोत ने प्रकाशित किया; 9.3 का v2 स्कोर 9.3 का v3 स्कोर नहीं है।
**जब मैं `mincvss` सेट करता हूँ तो कम स्कोर वाली प्रविष्टि क्यों दिखाई जाती है?** क्योंकि इसका एक ज्ञात एक्सप्लॉइट है, या क्योंकि स्रोत ने इसे कभी स्कोर नहीं किया। दोनों जानबूझकर हैं।
**रिपोर्ट कहती है कि कैटलॉग डाउनलोड नहीं किया जा सका।** तब वेब फ़िंगरप्रिंटिंग नहीं चली और बाकी सब चला: जिस सॉफ़्टवेयर का नाम nmap ने स्वयं रखा था, उसे फिर भी खोजा गया। यह उसी कारण से ज़ोर से कहा जाता है - एक क्षमता जो नहीं चली, उसे एक क्षमता के रूप में पढ़ा जाता है जिसने कुछ नहीं पाया। दो कारणों के अलग शब्द हैं: "डाउनलोड नहीं किया जा सका" नेटवर्क है, और "जवाब दिया, लेकिन उसका एक शब्दकोश पढ़ा नहीं जा सका" वह मिरर है जिस पर आपने इसे इंगित किया।
**यह एक ऐसे होस्ट पर कुछ नहीं पाया जिसे मैं जानता हूँ कि कमज़ोर है।** `-d2` के साथ चलाएँ: यह हर उस पहचान को लॉग करता है जिसके बारे में उसने पूछा। आमतौर पर nmap ने सेवा का नाम बताया लेकिन उसका संस्करण नहीं, और खोजने के लिए कोई संस्करण नहीं है।
## लाइसेंस
स्क्रिप्ट्स Nmap के समान ही लाइसेंस प्राप्त हैं - [LICENSE](https://github.com/vulnerscom/nmap-vulners/blob/master/LICENSE) देखें
Nmap पब्लिक सोर्स लाइसेंस के लिए, और
[nmap.org/npsl](https://nmap.org/npsl/) इसका अर्थ जानने के लिए।
कमज़ोरी डेटा [Vulners](https://vulners.com) से आता है और उनकी शर्तों के अधीन है।
## संबंधित
* [vulners.com](https://vulners.com) - इन स्क्रिप्ट्स के पीछे का डेटाबेस
* [vulnersCom/api](https://github.com/vulnersCom/api) - Python क्लाइंट
* [vulnersCom/burp-vulners-scanner](https://github.com/vulnersCom/burp-vulners-scanner) - Burp Suite के अंदर वही डेटा
* [nmap.org/book/nse.html](https://nmap.org/book/nse.html) - NSE स्क्रिप्ट्स कैसे काम करती हैं
---
<div align="center">
Vulners टीम द्वारा अनुरक्षित <[email protected]>
`#nmap` `#nse` `#vulnerability-scanner` `#cve` `#cvss` `#cpe` `#vulners`
`#security-tools` `#pentest` `#infosec` `#network-scanner` `#exploit-database`
`#lua` `#vulnerability-detection` `#security-automation`
</div>
| बैच | उनके बीच प्रतीक्षा | मापा गया, एक वेब पोर्ट |
|---|
-T0 paranoid | 188 x 5 | 2 s | 11 m 22 s |
-T1 sneaky | 94 x 10 | 1 s | 1 m 56 s |
-T2 polite | 38 x 25 | 0.5 s | 26.2 s |
-T3 normal | 10 x 100 | 0.1 s | 7.6 s |
-T4 aggressive | 4 x 250 | कोई नहीं | 6.7 s |
-T5 insane | 1 | कोई नहीं | 6.6 s |