
nmap-vulners v1.5
Nmap NSE-Skript, das die Vulners-API abfragt, um bekannte Schwachstellen (CVEs) für erkannte Netzwerkdienste zu identifizieren und das standardmäßige Port-Scannen durch automatisierte CVE-Suche und CVSS-Bewertung verbessert.
nmap-vulners
Verwandelt einen nmap-Dienstscan in eine sortierte Liste von CVEs, Exploits und dem, was in freier Wildbahn angegriffen wird.
Ein NSE-Skript, das die Software nimmt, die nmap bereits identifiziert hat, die Vulners-Datenbank fragt, was darüber bekannt ist, und die Antwort im Scanbericht ausgibt – zuerst die schlimmsten, nach dem, was tatsächlich ausnutzbar ist.
Echte Scans von Hosts, die zum Scannen veröffentlicht wurden. Ohne Schlüssel, dann mit einem Schlüssel, dann ein Web-Port: nmaps -sV meldet ein Coyote-Banner und der Sweep benennt den Tomcat und das jQuery dahinter.
Was es tut
Für jeden offenen Port schlägt es die Software nach, die nmap identifiziert hat – die CPEs, die -sV erzeugt hat – und gibt aus, was Vulners darüber weiß: zuerst die schlimmsten nach dem, was ausgenutzt wird, statt nur nach dem Score, und jede Zeile ein Link zur dahinterliegenden Seite.
Auf einem HTTP-Port nimmt es außerdem einen Fingerabdruck des Web-Stacks selbst, was Software benennt, die -sV nicht sehen kann – ein Anwendungs-Framework, ein CMS, die PHP-Version hinter einem Reverse-Proxy. 721 Regeln lesen die Teile einer Antwort, die eine Version tragen: den Server-Header, X-Powered-By, Cookies, den Seitentitel, <meta>-Tags, <script src>-Dateinamen und den Body. Diese Identitäten werden ebenfalls nachgeschlagen und auf den Port veröffentlicht, damit der Rest des Scans sie nutzen kann.
Zwei Dinge, die es über den Sweep hinaus tut:
- Es liest nmaps eigenen Dienst-Banner. Wenn
-sVeinen Dienst nicht benennen konnte, wird das rohe Banner gegen Regeln für FTP, SMTP, SSH, MySQL, DNS, NTP, LDAP und mehr abgeglichen. Das kostet keine zusätzliche Anfrage, und es ist der Fall, in dem ein Port sonst überhaupt nichts melden würde. - Es fragt ein Produkt, das nicht sprechen will. Ein CMS, das sich selbst benennt und seine Version verbirgt, ist üblich, und kein noch so viel Musterabgleich extrahiert eine Zahl, die nicht auf der Seite steht. Wenn das Produkt erkannt wird und die Version nicht, geht eine Anfrage an den Ort, der antwortet –
/CHANGELOG.txtfür Drupal,/administrator/manifests/files/joomla.xmlfür Joomla. Ein Host, der keines der sechs abgefragten Produkte ausführt, bekommt nichts Zusätzliches gesendet.```sh nmap -sV --script vulners
Das ist die gesamte Oberfläche. Sie funktioniert ohne API-Schlüssel; mit einem verrät sie dir mehr. Es gibt keinen Moduswechsel.```
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
Mit einem Schlüssel antwortet derselbe Scan desselben Hosts unterschiedlich – KEV bedeutet, dass CISA die Schwachstelle als in freier Wildbahn ausgenutzt erfasst hat, und EPSS ist die veröffentlichte Wahrscheinlichkeit, dass sie ausgenutzt wird:```
| 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
Gleiche 272 Befunde, eine andere Reihenfolge, eine andere oberste Zeile – und 22 weitere davon
als bekanntermaßen ausnutzbar, weil ein Schlüssel jeden Exploit mit den CVEs verknüpft, die er
ausnutzt. Beides sind echte Antworten von vulners.com, erfasst gegen einen
lokalen Server, der dieses Banner präsentiert.
## Ranking
Fakten schlagen Vorhersagen. Befunde sind geordnet:
1. **CISA KEV** – als in freier Wildbahn ausgenutzt erfasst
2. **SSVC `active`** – das Urteil eines Koordinators, dass Ausnutzung stattfindet
3. **ein Exploit existiert** – der Code ist veröffentlicht, für diesen oder für eine CVE, die er nennt
4. **hoher EPSS** – ein Modell erwartet Ausnutzung
5. alles andere
CVSS entscheidet Gleichstände innerhalb einer Gruppe, nicht über sie hinweg: eine ausgenutzte 7.5 ist ein
schlimmeres Problem als eine nicht ausgenutzte 9.8, und dies ist die Reihenfolge, die das aussagt.
Spalten folgen den Daten. Ein Signal, das die Antwort nicht trug, verliert seine Spalte,
statt eine leere Zelle zu zeigen, denn ein leerer EPSS liest sich als „ruhig“, und
das ist eine Behauptung, die ein fehlendes Feld nicht stützen kann.
## Was ein API-Schlüssel hinzufügt
| | |
|---|---|
| **Ohne Schlüssel** | Jede CPE, die nmap fand, wird auf dem kostenlosen Endpunkt nachgeschlagen. Befunde, Scores, Exploit-Flags und Vulners' eigener KI-Score. Keine Credits, kein Konto |
| **Ein Schlüssel, keine Credits** | Jeder Befund erhält, was der id-Endpunkt weiß: Titel, Daten, die vorgelagerte Advisory- oder Exploit-Seite, die Exploit-zu-CVE-Verknüpfung, CISA KEV und – je nach Lizenz – EPSS und SSVC |
| **Ein Schlüssel, ein Credit** | Software, die der kostenlose Pfad gar nicht benennen konnte, wird aus ihrem rohen Banner identifiziert. Dies ist das Einzige hier, das etwas kostet, und nur für einen Dienst ohne CPE |
Ein Port, der bereits eine CPE trägt, kostet nie einen Credit: gemessen über vier
Produkte liefert die kostenlose Suche für eine CPE die **gleichen CVEs** wie die bezahlte.
Was ein Credit kauft, ist Identifikation, nicht mehr Schwachstellen.
Kostenlose Schlüssel gibt es unter [vulners.com/userinfo](https://vulners.com/userinfo).
## Installation
**macOS, Linux, Kali, WSL** – eine Zeile, keine Argumente:```sh
curl -fsSL https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.sh | sh
Windows – PowerShell als Administrator:```powershell irm https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.ps1 | iex
Der Installer fragt nmap, wo es seine Daten aufbewahrt, kopiert die Skripte und deren Datendateien dorthin, baut die Skriptdatenbank neu auf und prüft anschließend, dass `--script vulners` tatsächlich auf das gerade Installierte auflöst – nmap bringt ein eigenes `vulners.nse` mit, und dieses ersetzt es.