
Escaneamento avançado de vulnerabilidades com Nmap NSE
Vulscan é um módulo que transforma o nmap em um scanner de vulnerabilidades. A opção -sV do nmap ativa a detecção de versão por serviço, que é usada para determinar possíveis falhas de acordo com o produto identificado. Os dados são consultados em uma versão offline do VulDB.
Por favor, instale os arquivos na seguinte pasta da sua instalação do Nmap:
Nmap\scripts\vulscan\*
Clone o repositório do GitHub desta forma:
git clone https://github.com/scipag/vulscan scipag_vulscan
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Você deve executar o seguinte comando mínimo para iniciar uma varredura de vulnerabilidades simples:
nmap -sV --script=vulscan/vulscan.nse www.example.com
As seguintes bases de dados pré-instaladas estão disponíveis no momento:
Você pode executar o vulscan com o seguinte argumento para usar uma única base de dados:
--script-args vulscandb=your_own_database
Também é possível criar e referenciar suas próprias bases de dados. Isso requer a criação de um arquivo de base de dados com a seguinte estrutura:
<id>;<title>
Basta executar o vulscan como faria referindo-se a uma das bases de dados pré-entregues. Sinta-se à vontade para compartilhar sua própria base de dados e conexão de vulnerabilidades comigo, para adicioná-la ao repositório oficial.
As bases de dados de vulnerabilidades são atualizadas e montadas regularmente. Para suportar as vulnerabilidades mais recentes divulgadas, mantenha suas bases de dados locais atualizadas.
Para atualizar automaticamente as bases de dados, basta definir permissões de execução para o arquivo update.sh e executá-lo:
chmod 744 update.sh
./update.sh
Se você quiser atualizar manualmente suas bases de dados, acesse o seguinte site e baixe estes arquivos:
Copie os arquivos para sua pasta vulscan:
/vulscan/
Se a detecção de versão conseguir identificar a versão do software e a base de dados de vulnerabilidades fornecer tais detalhes, esses dados também são correspondidos.
Desabilitar este recurso pode introduzir falsos positivos, mas também pode eliminar falsos negativos e aumentar ligeiramente o desempenho. Se você deseja desabilitar a correspondência adicional de versão, use o seguinte argumento:
--script-args vulscanversiondetection=0
A detecção de versão do vulscan é tão boa quanto a detecção de versão do Nmap e as entradas da base de dados de vulnerabilidades. Algumas bases de dados não fornecem informações conclusivas sobre a versão, o que pode levar a muitos falsos positivos (como pode ser visto para servidores Apache).
O script tenta identificar apenas as melhores correspondências. Se nenhuma correspondência positiva for encontrada, a melhor correspondência possível (que pode ser um falso positivo) é exibida.
Se você quiser mostrar todas as correspondências, o que pode introduzir muitos falsos positivos, mas pode ser útil para investigação adicional, use o seguinte argumento:
--script-args vulscanshowall=1
O modo interativo ajuda você a substituir os resultados da detecção de versão para cada porta. Use o seguinte argumento para ativar o modo interativo:
--script-args vulscaninteractive=1
Todos os resultados correspondentes são impressos um por linha. O layout padrão para isso é:
[{id}] {title}\n
É possível usar outra estrutura de relatório pré-definida com o seguinte argumento:
--script-args vulscanoutput=details
--script-args vulscanoutput=listid
--script-args vulscanoutput=listlink
--script-args vulscanoutput=listtitle
Você pode impor sua própria estrutura de relatório usando o seguinte argumento (alguns exemplos):
--script-args vulscanoutput='{link}\n{title}\n\n'
--script-args vulscanoutput='ID: {id} - Title: {title} ({matches})\n'
--script-args vulscanoutput='{id} | {product} | {version}\n'
Os seguintes elementos são suportados para um modelo de relatório dinâmico:
Cada base de dados padrão vem com uma url e um link, que são usados durante a varredura e podem ser acessados como {link} dentro do modelo de relatório personalizado. Para usar links de base de dados personalizados, use o seguinte argumento:
--script-args "vulscandblink=http://example.org/{id}"
Tenha em mente que este tipo de varredura de vulnerabilidades derivada depende fortemente da confiança na detecção de versão do nmap, da quantidade de vulnerabilidades documentadas e da precisão da correspondência de padrões. A existência de possíveis falhas não é verificada com varreduras adicionais nem técnicas de exploração.