O Nmap, conhecido como mapeador de rede, é um conjunto de ferramentas essencial para realizar testes de funcionalidade e penetração em redes, abrangendo a varredura de portas e a identificação de vulnerabilidades.
O Mecanismo de Script do Nmap (NSE) é um dos recursos mais valiosos e populares do Nmap. Esses scripts de varredura de vulnerabilidades são amplamente utilizados por profissionais de testes de penetração e especialistas em segurança para detectar vulnerabilidades comuns e conhecidas.
O banco de dados Vulnerabilidades e Exposições Comuns (CVE) é um repositório de problemas de segurança de dados que foram divulgados publicamente. Ele serve como um ponto de referência fundamental na detecção de vulnerabilidades e ameaças relacionadas à segurança de sistemas de informação.
Neste artigo, vamos explorar como usar o Nmap para realizar a verificação de vulnerabilidades em sistemas.
Vamos começar!
Instalação do Nmap
O Nmap geralmente já vem instalado em quase todas as distribuições Linux. No entanto, caso não esteja presente, você precisará instalá-lo manualmente. A instalação pode ser feita de forma simples utilizando o seguinte comando:
apt-get install nmap
Você também tem a opção de instalar o Nmap clonando o repositório oficial do Git:
git clone https://github.com/nmap/nmap.git
Após a clonagem, navegue até o diretório recém-criado e execute os seguintes comandos para instalar as dependências necessárias:
./configure make make install
As versões mais recentes do software, bem como os instaladores binários para Windows, macOS e Linux (RPM), podem ser encontradas aqui.
Verificação de Vulnerabilidades com Nmap
Scripts como nmap-vulners, vulscan e vuln são os mais populares e frequentemente usados para detecção de CVEs no mecanismo de scripts do Nmap. Esses scripts são cruciais para revelar informações importantes sobre falhas de segurança em sistemas.
Nmap Vulners
O Nmap Vulners é um dos scanners de vulnerabilidade mais reconhecidos. Vamos analisar como configurar essa ferramenta e como conduzir uma verificação CVE básica. O script do Nmap analisa respostas HTTP para identificar CPEs (Configurações de Produtos de Software) para o script em questão.
Instalação
Para instalar o script Nmap-vulners, acesse o diretório de scripts do Nmap usando o seguinte comando:
cd /usr/share/nmap/scripts/
O próximo passo é clonar o repositório do Git:
git clone https://github.com/vulnersCom/nmap-vulners.git
Após a clonagem do repositório, nenhuma configuração adicional é necessária. A ferramenta será instalada automaticamente.
Para visualizar os scripts NSE presentes no banco de dados Nmap-vulners, use o comando ‘ls’. Ele exibirá todos os scripts com a extensão .nse no terminal.
Uso
O uso dos scripts NSE é simples. Utilize o argumento ‘-script’ em seu comando Nmap, especificando qual script NSE deseja utilizar.
nmap -sV --script vulners [--script-args mincvss=<arg_val>] <alvo>
É importante lembrar de incluir o argumento ‘-sV’ ao utilizar scripts NSE. O Nmap-vulners precisa das informações de versão do Nmap para acessar o banco de dados de exploits do Vulners. Portanto, o parâmetro -sV é sempre necessário.
Comando de Exemplo
A sintaxe é direta. Basta chamar o script com a opção “–script” e especificar o mecanismo e o alvo para iniciar a varredura:
nmap -sV --script nmap-vulners/ <alvo>
Para verificar portas específicas, utilize a opção “-p” ao final do comando, indicando o número da porta desejada:
nmap -sV --script nmap-vulners/ <alvo> -p80,223
Nmap – Vulnerabilidade
Os scripts NSE são classificados em categorias predefinidas. Algumas dessas categorias incluem autenticação, broadcast, força bruta, intrusivo, malware, seguro, versão e vuln. Para uma lista completa das categorias de scripts NSE e suas fases, você pode consultar aqui.
Os scripts da categoria “vuln” são projetados para identificar vulnerabilidades conhecidas e específicas, relatando apenas as que forem encontradas no sistema de destino.
nmap -sV --script vuln <alvo>
Nmap-vulscan
O Vulscan é um script NSE que auxilia o Nmap na detecção de vulnerabilidades em serviços e detecções de versão. Ele atua como um módulo que transforma o Nmap em um scanner de vulnerabilidades. A opção -sV do Nmap permite a detecção de versão por serviço, usada para identificar possíveis exploits para as vulnerabilidades encontradas no sistema.
Atualmente, os seguintes bancos de dados pré-instalados estão disponíveis:
- exploitdb.csv
- osvdb.csv
- securitytracker.csv
- openvas.csv
- scipvuldb.csv
- xforce.csv
- securityfocus.csv
- cve.csv
Instalação
Para instalar o Vulscan, comece acessando o diretório de scripts do Nmap:
cd /usr/share/nmap/scripts/
Em seguida, clone o repositório do Git e instale as dependências necessárias:
git clone https://github.com/scipag/vulscan.git ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
O Vulscan usa bancos de dados pré-configurados armazenados localmente. Para atualizar o banco de dados, navegue até o diretório do atualizador:
cd vulscan/utilities/updater/
Em seguida, altere as permissões do arquivo para torná-lo executável:
chmod +x updateFiles.sh
Finalmente, atualize os bancos de dados de exploração utilizando o seguinte comando:
./updateFiles.sh
Uso
Vamos usar o Vulscan para realizar uma verificação de vulnerabilidade no Nmap. O script vulscan NSE pode ser usado de maneira similar ao nmap-vulners:
nmap -sV --script vulscan <alvo>
Por padrão, o Vulscan pesquisa todos os bancos de dados simultaneamente. Isso pode levar um tempo considerável. Para otimizar o processo, você pode utilizar o parâmetro vulscandb para especificar apenas um banco de dados CVE por vez:
--script-args vulscandb=nome_do_banco_de_dados
Comando de Exemplo
nmap -sV --script vulscan --script-args vulscandb=exploit.csv <alvo> -p 80,233
Verificação Individual de Vulnerabilidades
A verificação individual de vulnerabilidades também pode ser realizada utilizando scripts específicos dentro de cada categoria. Aqui está uma lista com mais de 600 scripts NSE e 139 bibliotecas NSE.
Exemplos
- http-csrf: Este script detecta vulnerabilidades CSRF (Cross-Site Request Forgery).
nmap -sV --script http-csrf <alvo>
- http-sherlock: Este script tem como objetivo explorar a vulnerabilidade “shellshock” em aplicações web.
nmap -sV --script http-sherlock <alvo>
- http-slowloris-attack: Este script verifica se um servidor web ou sistema de destino está vulnerável ao ataque Slowloris DoS, sem iniciar um ataque propriamente dito.
nmap -sV --script http-slowloris-check <alvo>
- http-vmware-path-vuln: Este script testa se VMWare ESX, ESXi e Server são vulneráveis a path traversal.
nmap -sV --script http-vmware-path-vuln <alvo>
- http-passwd: Este script tenta obter /etc/passwd ou boot.ini para verificar se um servidor web é vulnerável a directory traversal.
nmap -sV --script http-passwd <alvo>
- http-internal-ip-disclosure: Este script verifica se um servidor web vaza seu endereço IP interno ao enviar uma requisição HTTP/1.0 sem um cabeçalho Host.
nmap -sV --script http-internal-ip-disclosure <alvo>
- http-vuln-cve2013-0156: Este script detecta servidores Ruby on Rails vulneráveis a ataques de DOS e injeção de comandos.
nmap -sV --script http-vuln-cve2013-0156 <endereço-alvo>
Você pode encontrar uma lista completa de scripts NSE da categoria “vulnerabilidade” aqui.
Seu Sistema Consegue Detectar Varreduras do Nmap?
O reconhecimento é a primeira etapa do hacking ético e dos testes de penetração. Hackers utilizam o reconhecimento para encontrar falhas em um sistema, visando um ataque. Portanto, sistemas de defesa devem ser capazes de detectar tais atividades.
Ferramentas de SIEM (Security Information and Event Management), firewalls e outras medidas defensivas podem gerar alertas em caso de varreduras do Nmap. A seguir, apresentamos uma lista das melhores ferramentas SIEM para proteger sua empresa ou organização contra ataques cibernéticos. Essas ferramentas também auxiliam no registro de varreduras do Nmap. As varreduras de vulnerabilidades são importantes, pois a identificação precoce pode evitar danos futuros aos sistemas.
Conclusão
Esperamos que este artigo tenha sido útil para aprender a utilizar o Nmap na verificação de vulnerabilidades.
Você também pode ter interesse em conhecer a lista de Scanners de Segurança Web Open Source para encontrar vulnerabilidades.