
Nmap NSE स्क्रिप्ट जो पहचाने गए नेटवर्क सेवाओं के लिए ज्ञात कमजोरियों (CVEs) की पहचान करने के लिए Vulners API से क्वेरी करती है, मानक पोर्ट स्कैनिंग को स्वचालित CVE लुकअप और CVSS स्कोरिंग के साथ बढ़ाती है।
<div align="center">
# nmap-vulners
**nmap सेवा स्कैन को CVEs, एक्सप्लॉइट्स और उन चीज़ों की रैंक्ड सूची में बदलें जिन पर वास्तविक दुनिया में हमला हो रहा है।**
एक NSE स्क्रिप्ट जो nmap द्वारा पहले से पहचाने गए सॉफ़्टवेयर को लेती है, [Vulners](https://vulners.com) डेटाबेस से पूछती है कि उसके बारे में क्या ज्ञात है, और उत्तर को स्कैन रिपोर्ट के अंदर प्रिंट करती है - सबसे खराब को पहले, उसके आधार पर जो वास्तव में एक्सप्लॉइट करने योग्य है।
[](https://github.com/vulnersCom/nmap-vulners/actions)
[](LICENSE)
[](https://nmap.org)
[](https://vulners.com)
[](https://github.com/vulnersCom/nmap-vulners/stargazers)
<img src="https://assets.kitploit.com/production/public/readmes/1680/0a17fe209e2ad4d8bbd8bf49c72243a8c8b3f0fb9e603317b21c8a2cd6982b0f.gif" alt="तीन स्कैन: बिना API कुंजी वाला एक SSH पोर्ट, कुंजी के साथ वही पोर्ट, और एक वेब पोर्ट जहाँ स्कैन Coyote बैनर के पीछे के Tomcat का नाम बताता है" width="900">
<sub>स्कैनिंग के लिए प्रकाशित होस्ट्स के वास्तविक स्कैन। कोई कुंजी नहीं, फिर एक कुंजी, फिर एक वेब पोर्ट: nmap का <code>-sV</code> एक Coyote बैनर रिपोर्ट करता है और स्कैन उसके पीछे के Tomcat और jQuery का नाम बताता है।</sub>
</div>
---
## यह क्या करता है
हर खुले पोर्ट के लिए यह उस सॉफ़्टवेयर को देखता है जिसे nmap ने पहचाना है - वे CPEs जो `-sV` ने उत्पन्न किए - और प्रिंट करता है कि Vulners उसके बारे में क्या जानता है: सबसे खराब को पहले, उसके आधार पर जो एक्सप्लॉइट किया जा रहा है न कि केवल स्कोर के आधार पर, और हर पंक्ति उसके पीछे के पेज का एक लिंक है।
HTTP पोर्ट पर यह वेब स्टैक का भी फ़िंगरप्रिंट लेता है, जो उस सॉफ़्टवेयर का नाम बताता है जिसे `-sV` नहीं देख सकता - एक एप्लिकेशन फ्रेमवर्क, एक CMS, रिवर्स प्रॉक्सी के पीछे का PHP संस्करण। 721 नियम प्रतिक्रिया के उन हिस्सों को पढ़ते हैं जो संस्करण रखते हैं: `Server` हेडर, `X-Powered-By`, कुकीज़, पेज का शीर्षक, `<meta>` टैग, `<script src>` फ़ाइलनाम और बॉडी। उन पहचानों को भी देखा जाता है, और पोर्ट पर प्रकाशित किया जाता है ताकि बाकी स्कैन उनका उपयोग कर सके।
स्कैन से परे यह दो चीज़ें करता है:
* **यह nmap के अपने सेवा बैनर को पढ़ता है।** जब `-sV` किसी सेवा का नाम नहीं बता पाता, तो कच्चे बैनर को FTP, SMTP, SSH, MySQL, DNS, NTP, LDAP और अधिक के नियमों के विरुद्ध मिलान किया जाता है। इसके लिए कोई अतिरिक्त अनुरोध नहीं लगता, और यह वह स्थिति है जहाँ एक पोर्ट अन्यथा कुछ भी रिपोर्ट नहीं करता।
* **यह ऐसे उत्पाद से पूछता है जो नहीं बताएगा।** एक CMS जो अपना नाम बताता है और अपना संस्करण छिपाता है, सामान्य है, और कोई भी पैटर्न मिलान उस संख्या को नहीं निकाल सकता जो पेज पर नहीं है। जब उत्पाद पहचाना जाता है और संस्करण नहीं, तो एक अनुरोध उस स्थान पर जाता है जो उत्तर देता है - Drupal के लिए `/CHANGELOG.txt`, Joomla के लिए `/administrator/manifests/files/joomla.xml`। छह जांचे गए उत्पादों में से कोई भी नहीं चलाने वाले होस्ट को कुछ भी अतिरिक्त नहीं भेजा जाता।```sh
nmap -sV --script vulners <target>
```
यह पूरा इंटरफ़ेस है। यह 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`।
</details>
<details>
<summary><b>चेकआउट से</b></summary>```sh
git clone https://github.com/vulnersCom/nmap-vulners
cd nmap-vulners
./install.sh
```
इंस्टॉलर अपने बगल में मौजूद फ़ाइलों का उपयोग करता है, इसलिए यह ठीक वही इंस्टॉल करता है जो आपने
क्लोन किया है। चेकआउट से सीधे स्क्रिप्ट चलाना भी काम करता है:```sh
nmap -sV --script "$PWD/vulners.nse" <target>
```
> चेकआउट से चलाते समय **पूर्ण** पथ का उपयोग करें। nmap एक
> सापेक्ष `--script ./vulners.nse` को पहले अपने स्वयं के `script.db` के विरुद्ध हल करता है, और
> चुपचाप उस प्रति को चलाता है जो nmap के साथ आई थी, आपकी नहीं।
</details>
<details>
<summary><b>हाथ से</b></summary>
एक फ़ाइल: `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` है**, हमारी कोई सेटिंग नहीं। सूची
कभी घटती नहीं; दर घटती है:
| | बैच | उनके बीच प्रतीक्षा | मापा गया, एक वेब पोर्ट |
|---|---|---|---|
| `-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 |
सभी छह एक ही स्थानीय सर्वर के विरुद्ध एक ही रन में मापे गए। अकेले उसके विरुद्ध
`-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`,
---
[Read more](https://github.com/vulnerscom/nmap-vulners)