
Script NSE do Nmap que consulta a API do Vulners para identificar vulnerabilidades conhecidas (CVEs) em serviços de rede detectados, aprimorando a varredura de portas padrão com busca automatizada de CVEs e pontuação CVSS.
Transforme uma varredura de serviços do nmap em uma lista classificada de CVEs, exploits e o que está sendo atacado na natureza.
Um script NSE que pega o software que o nmap já identificou, consulta o banco de dados Vulners sobre o que é conhecido a respeito dele e imprime a resposta dentro do relatório da varredura — do pior para o melhor, com base no que é realmente explorável.
Varreduras reais de hosts publicados para escaneamento. Sem chave, depois com chave e, em seguida, uma porta web: o -sV do nmap relata um banner Coyote e a varredura identifica o Tomcat e o jQuery por trás dele.
Para cada porta aberta, ele consulta o software que o nmap identificou — os CPEs que o -sV produziu — e imprime o que o Vulners sabe sobre ele: do pior para o melhor, com base no que está sendo explorado em vez de apenas pela pontuação, e cada linha é um link para a página correspondente.
Em uma porta HTTP, ele também faz a impressão digital da própria pilha web, o que identifica softwares que o -sV não consegue ver — um framework de aplicação, um CMS, a versão do PHP por trás de um proxy reverso. 721 regras leem as partes de uma resposta que carregam uma versão: o cabeçalho Server, X-Powered-By, cookies, o título da página, tags <meta>, nomes de arquivos <script src> e o corpo. Essas identidades também são consultadas e publicadas na porta para que o restante da varredura possa usá-las.
Duas coisas que ele faz além da varredura:
-sV não consegue nomear um serviço, o banner bruto é comparado com regras para FTP, SMTP, SSH, MySQL, DNS, NTP, LDAP e outros. Isso não custa nenhuma solicitação extra, e é o caso em que uma porta não reportaria nada de outra forma./CHANGELOG.txt para Drupal, /administrator/manifests/files/joomla.xml para Joomla. Um host que não executa nenhum dos seis produtos sondados não recebe nada extra.```sh
nmap -sV --script vulners Essa é a interface completa. Ela funciona sem uma chave de API; com uma, ela te informa
mais. Não há alternância de modo.```
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
Com uma chave, a mesma varredura do mesmo host responde de forma diferente - KEV significa que a CISA registrou a vulnerabilidade como explorada na natureza, e EPSS é a probabilidade publicada de que ela será:```
| 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
Mesmas 272 descobertas, uma ordem diferente, uma linha superior diferente — e 22 delas a mais
conhecidas como exploráveis, porque uma chave liga cada exploit aos CVEs que ele
explora. Ambas são respostas reais do vulners.com, capturadas contra um
servidor local que apresenta esse banner.
## Classificação
Fatos superam previsões. As descobertas são ordenadas:
1. **CISA KEV** — registrado como explorado na natureza
2. **SSVC `active`** — o julgamento de um coordenador de que a exploração está ocorrendo
3. **existe um exploit** — o código está publicado, para este ou para um CVE que ele nomeia
4. **EPSS alto** — um modelo espera exploração
5. todo o resto
O CVSS desempata dentro de uma faixa, não entre elas: um 7.5 explorado é um
problema pior do que um 9.8 não explorado, e esta é a ordem que diz isso.
As colunas seguem os dados. Um sinal que a resposta não carregou perde sua
coluna em vez de mostrar uma célula vazia, porque um EPSS em branco é lido como
"silencioso", e isso é uma afirmação que um campo ausente não pode sustentar.
## O que uma chave de API adiciona
| | |
|---|---|
| **Sem chave** | Cada CPE que o nmap encontrou é consultado no endpoint gratuito. Descobertas, pontuações, sinalizadores de exploit e a própria pontuação de IA do Vulners. Sem créditos, sem conta |
| **Uma chave, sem créditos** | Cada descoberta ganha o que o endpoint de id sabe: títulos, datas, a página upstream de aviso ou exploit, a ligação exploit-para-CVE, CISA KEV e — dependendo da licença — EPSS e SSVC |
| **Uma chave, um crédito** | Software que o caminho gratuito não conseguiu nomear é identificado a partir do seu banner bruto. Esta é a única coisa aqui que custa algo, e apenas para um serviço sem CPE |
Uma porta que já carrega um CPE nunca custa um crédito: medido em quatro
produtos, a consulta gratuita retorna os **mesmos CVEs** que a paga para um CPE.
O que um crédito compra é identificação, não mais vulnerabilidades.
Chaves gratuitas estão em [vulners.com/userinfo](https://vulners.com/userinfo).
## Instalação
**macOS, Linux, Kali, WSL** — uma linha, sem argumentos:```sh
curl -fsSL https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.sh | sh
Windows - PowerShell como Administrador:```powershell irm https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/install.ps1 | iex
O instalador pergunta ao nmap onde ele guarda os seus dados, copia os scripts e os seus
ficheiros de dados para lá, reconstrói a base de dados de scripts e, em seguida, verifica se
`--script vulners` realmente resolve para o que acabou de instalar - o nmap inclui um
`vulners.nse` próprio, e este substitui-o.