
nmap-vulners v1.5
Script NSE di Nmap che interroga l'API di Vulners per identificare vulnerabilità note (CVE) per i servizi di rete rilevati, migliorando la scansione delle porte standard con ricerca automatica di CVE e punteggio CVSS.
nmap-vulners
Trasforma una scansione dei servizi di nmap in una lista classificata di CVE, exploit e di ciò che viene attaccato in natura.
Uno script NSE che prende il software già identificato da nmap, interroga il database di Vulners per sapere cosa è noto al riguardo e stampa la risposta all'interno del report di scansione - dal peggiore al migliore, in base a ciò che è realmente sfruttabile.
Scansioni reali di host pubblicati per essere scansionati. Nessuna chiave, poi una chiave, poi una porta web: l'opzione -sV di nmap riporta un banner Coyote e la scansione identifica il Tomcat e la jQuery dietro di esso.
Cosa fa
Per ogni porta aperta cerca il software identificato da nmap - i CPE prodotti da -sV - e stampa ciò che Vulners sa al riguardo: dal peggiore al migliore in base a ciò che viene sfruttato piuttosto che solo al punteggio, e ogni riga è un collegamento alla pagina corrispondente.
Su una porta HTTP esegue anche il fingerprinting dello stack web stesso, che identifica software che -sV non può vedere - un framework applicativo, un CMS, la versione di PHP dietro un reverse proxy. 721 regole leggono le parti di una risposta che contengono una versione: l'header Server, X-Powered-By, i cookie, il titolo della pagina, i tag <meta>, i nomi dei file <script src> e il corpo. Anche quelle identità vengono cercate e pubblicate sulla porta così che il resto della scansione possa usarle.
Due cose che fa oltre alla scansione:
- legge il banner di servizio di nmap stesso. Quando
-sVnon riesce a identificare un servizio, il banner grezzo viene confrontato con regole per FTP, SMTP, SSH, MySQL, DNS, NTP, LDAP e altro. Questo non costa alcuna richiesta extra, ed è il caso in cui una porta altrimenti non riporterebbe nulla. - interroga un prodotto che non vuole rivelarsi. Un CMS che dichiara il proprio nome ma nasconde la versione è comune, e nessuna quantità di pattern matching può estrarre un numero che non è sulla pagina. Quando il prodotto viene riconosciuto ma la versione no, una richiesta va al posto che risponde -
/CHANGELOG.txtper Drupal,/administrator/manifests/files/joomla.xmlper Joomla. A un host che non esegue nessuno dei sei prodotti sondati non viene inviato nulla di extra.```sh nmap -sV --script vulners
Questa è l'intera interfaccia. Funziona senza una chiave API; con una ti fornisce
più informazioni. Non c'è alcun cambio di modalità.```
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
Con una chiave, la stessa scansione dello stesso host risponde in modo diverso: KEV indica che CISA ha registrato la vulnerabilità come sfruttata in natura, mentre EPSS è la probabilità pubblicata che venga sfruttata:```
| 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
Stessi 272 risultati, un ordine diverso, una prima riga diversa - e 22 in più
noti come sfruttabili, perché una chiave collega ogni exploit alle CVE che
sfrutta. Entrambe sono risposte reali di vulners.com, catturate contro un
server locale che presenta quel banner.
## Classifica
I fatti superano le previsioni. I risultati sono ordinati:
1. **CISA KEV** - registrato come sfruttato in natura
2. **SSVC `active`** - il giudizio di un coordinatore che lo sfruttamento è in corso
3. **esiste un exploit** - il codice è pubblicato, per questo o per una CVE che nomina
4. **EPSS alto** - un modello prevede lo sfruttamento
5. tutto il resto
Il CVSS rompe i pareggi all'interno di una fascia, non tra le fasce: un 7.5 sfruttato è un problema
peggiore di un 9.8 non sfruttato, e questo è l'ordine che lo dice.
Le colonne seguono i dati. Un segnale che la risposta non conteneva perde la sua colonna
piuttosto che mostrare una cella vuota, perché un EPSS vuoto si legge come "tranquillo", e
questa è un'affermazione che un campo assente non può sostenere.
## Cosa aggiunge una chiave API
| | |
|---|---|
| **Senza chiave** | Ogni CPE trovato da nmap viene cercato sull'endpoint gratuito. Risultati, punteggi, flag di exploit e il punteggio AI di Vulners. Nessun credito, nessun account |
| **Una chiave, nessun credito** | Ogni risultato ottiene ciò che l'endpoint id conosce: titoli, date, la pagina dell'advisory o dell'exploit a monte, il collegamento exploit-CVE, CISA KEV e - a seconda della licenza - EPSS e SSVC |
| **Una chiave, un credito** | Il software che il percorso gratuito non poteva nominare affatto viene identificato dal suo banner grezzo. Questa è l'unica cosa qui che costa qualcosa, e solo per un servizio senza CPE |
Una porta che ha già un CPE non costa mai un credito: misurato su quattro
prodotti, la ricerca gratuita restituisce le **stesse CVE** di quella a pagamento per un CPE.
Ciò che un credito compra è l'identificazione, non più vulnerabilità.
Le chiavi gratuite sono su [vulners.com/userinfo](https://vulners.com/userinfo).
## Installazione
**macOS, Linux, Kali, WSL** - una riga, nessun argomento:```sh
curl -fsSL https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.sh | sh
Windows - PowerShell come Amministratore:```powershell irm https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.ps1 | iex
L'installatore chiede a nmap dove conserva i propri dati, copia lì gli script e i loro file di dati, ricostruisce il database degli script e poi verifica che `--script vulners` risolva davvero a ciò che ha appena installato: nmap include una propria `vulners.nse`, e questa la sostituisce.