Introdução
Bem-vindo ao laboratório de Varredura de Vulnerabilidades com NSE.
O Nmap (Network Mapper) é uma ferramenta de código aberto poderosa usada para descoberta de rede e auditoria de segurança. Um de seus recursos mais flexíveis e potentes é o Nmap Scripting Engine (NSE). O NSE permite que os usuários escrevam e compartilhem scripts simples para automatizar uma ampla variedade de tarefas de rede.
Usar o NSE para varredura de vulnerabilidades é eficaz, mas também altera o propósito da varredura. Você não está mais apenas observando a exposição; você está sondando ativamente por fraquezas conhecidas. Isso torna o controle de escopo e a interpretação cuidadosa ainda mais importantes.
Neste laboratório, você aprenderá a transformar o Nmap de um simples scanner de portas em um scanner de vulnerabilidades ativo. Você utilizará categorias específicas de scripts, como vuln, para sondar ativamente os serviços de destino. Esse processo ajuda a identificar Common Vulnerabilities and Exposures (CVEs) conhecidas e configurações incorretas perigosas no servidor. Ao final deste laboratório, você será capaz de atualizar o banco de dados de scripts, executar varreduras baseadas em categorias, auditar serviços específicos como HTTP e SMB, e analisar os resultados da varredura.
Atualizar o Banco de Dados de Scripts NSE
Nesta etapa, você aprenderá como atualizar o banco de dados do Nmap Scripting Engine (NSE).
O Nmap vem pré-instalado com centenas de scripts localizados no diretório /usr/share/nmap/scripts/. Esses scripts são categorizados por seu propósito, como default, discovery, safe, intrusive, vuln e exploit.
Antes de executar qualquer varredura de vulnerabilidades, é uma boa prática garantir que o banco de dados interno de scripts do Nmap esteja atualizado. Este banco de dados atua como um índice, permitindo que o Nmap encontre e categorize scripts rapidamente. Quando novos scripts são adicionados ao sistema ou os existentes são modificados, o banco de dados deve ser atualizado para que o Nmap saiba como utilizá-los.
Isso reflete um princípio de segurança mais amplo: o conteúdo de detecção e avaliação envelhece rapidamente. As ferramentas são tão atuais quanto as regras, assinaturas ou modelos nos quais se baseiam.
Para atualizar o banco de dados de scripts NSE, você precisa usar o argumento --script-updatedb. Como este comando modifica arquivos do sistema no diretório de instalação do Nmap, ele requer privilégios administrativos.
Execute o seguinte comando no seu terminal:
sudo nmap --script-updatedb
Você deverá ver uma saída semelhante a esta, indicando que o banco de dados foi atualizado com sucesso:
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 15:25 CST
NSE: Updating rule database.
NSE: Script Database updated successfully.
Nmap done: 0 IP addresses (0 hosts up) scanned in 1.09 seconds
Isso confirma que o Nmap atualizou com sucesso seu índice de scripts e categorias disponíveis. Agora você está pronto para começar a varredura.
Executar Varreduras de Vulnerabilidades (categoria vuln)
Nesta etapa, você usará a categoria vuln de scripts NSE para procurar vulnerabilidades conhecidas em sua máquina local.
A categoria vuln contém scripts projetados especificamente para verificar vulnerabilidades conhecidas e relatá-las. Quando você especifica uma categoria em vez de um nome de script individual, o Nmap executará automaticamente todos os scripts que pertencem a essa categoria contra as portas abertas que ele descobrir.
As descobertas desses scripts são pistas, não provas definitivas de comprometimento. Um resultado positivo geralmente significa "este serviço parece consistente com um problema conhecido" e ainda precisa da revisão de um analista.
Para obter os resultados mais precisos, é altamente recomendável combinar os scripts NSE com a detecção de versão. A detecção de versão (-sV) tenta determinar o software exato e a versão em execução em uma porta aberta. Muitos scripts de vulnerabilidade dependem dessas informações de versão para decidir se um alvo pode estar vulnerável antes de enviar sondas intrusivas.
Você fará a varredura da sua máquina local (localhost) usando a detecção de versão e a categoria de script vuln.
Execute o seguinte comando:
nmap -sV --script vuln -p 80,139,445 localhost
A varredura pode levar um ou dois minutos para ser concluída, pois os scripts de vulnerabilidade realizam verificações complexas. Sua saída será semelhante à seguinte:
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 15:25 CST
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0014s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-enum:
|_ /server-status/: Potentially interesting folder
|_http-server-header: Apache/2.4.52 (Ubuntu)
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| vulners:
| cpe:/a:apache:http_server:2.4.52:
| PACKETSTORM:176334 9.8 https://vulners.com/packetstorm/PACKETSTORM:176334 *EXPLOIT*
| HTTPD:C072933AA965A86DA3E2C9172FFC1569 9.8 https://vulners.com/httpd/HTTPD:C072933AA965A86DA3E2C9172FFC1569
| ... (truncated for brevity)
139/tcp open netbios-ssn Samba smbd 4.6.2
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
| vulners:
| cpe:/a:samba:samba:4.6.2:
| SSV:93139 10.0 https://vulners.com/seebug/SSV:93139 *EXPLOIT*
| SAMBA_IS_KNOWN_PIPENAME 10.0 https://vulners.com/canvas/SAMBA_IS_KNOWN_PIPENAME *EXPLOIT*
| ... (truncated for brevity)
445/tcp open netbios-ssn Samba smbd 4.6.2
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
| vulners:
| cpe:/a:samba:samba:4.6.2:
| SSV:93139 10.0 https://vulners.com/seebug/SSV:93139 *EXPLOIT*
| ... (truncated for brevity)
Host script results:
|_samba-vuln-cve-2012-1182: Could not negotiate a connection:SMB: ERROR: Server returned less data than it was supposed to (one or more fields are missing); aborting [9]
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: ERROR: Server returned less data than it was supposed to (one or more fields are missing); aborting [9]
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 66.86 seconds
Nesta saída, o Nmap descobriu o servidor web Apache na porta 80 e o serviço Samba nas portas 139 e 445. Os scripts da categoria vuln foram executados automaticamente contra esses serviços, verificando problemas comuns, como diretórios HTTP interessantes e vulnerabilidades SMB conhecidas.
Auditar Serviços Específicos (ex: SMB/HTTP)
Nesta etapa, você aprenderá como direcionar serviços específicos usando scripts NSE individuais, em vez de executar uma categoria inteira.
Executar uma categoria inteira como vuln pode ser ruidoso e demorado. Frequentemente, durante uma avaliação de segurança, você identificará um serviço específico (como um servidor web ou um compartilhamento de arquivos) e desejará executar scripts direcionados contra ele.
Por exemplo, o script http-enum enumera diretórios usados por servidores e aplicações web populares. É uma ótima maneira de encontrar painéis administrativos ocultos ou pastas de backup. Para tornar a varredura mais rápida, você pode usar a flag -p para dizer ao Nmap para escanear apenas a porta específica onde o serviço está sendo executado (por exemplo, porta 80 para HTTP).
Execute o seguinte comando para auditar o servidor web Apache local:
nmap -p 80 --script http-enum localhost
Você verá uma saída focada apenas na porta 80:
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 15:27 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000096s latency).
PORT STATE SERVICE
80/tcp open http
| http-enum:
|_ /server-status/: Potentially interesting folder
Nmap done: 1 IP address (1 host up) scanned in 0.62 seconds
Da mesma forma, você pode direcionar o serviço Samba (SMB). O SMB é um protocolo de compartilhamento de arquivos de rede que, historicamente, tem sido um alvo frequente de explorações. Você pode usar o script smb-os-discovery para coletar informações detalhadas sobre o sistema operacional e a configuração do SMB. O SMB normalmente é executado nas portas 139 e 445.
Execute o seguinte comando para auditar o serviço SMB local:
nmap -p 139,445 --script smb-os-discovery localhost
A saída fornecerá informações detalhadas sobre o serviço SMB:
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 15:27 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000087s latency).
PORT STATE SERVICE
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds
Ao direcionar portas e scripts específicos, você reduz significativamente o tempo de varredura e gera resultados altamente focados e acionáveis.
Analisar a Saída do NSE
Nesta etapa final, você aprenderá como salvar os resultados da sua varredura do Nmap em um arquivo e analisar a saída em busca de palavras-chave específicas.
Ao realizar varreduras de vulnerabilidades, a saída pode ser extensa. É crucial salvar os resultados em um arquivo para que você possa revisá-los mais tarde, compartilhá-los com sua equipe ou analisá-los usando outras ferramentas de linha de comando. O Nmap oferece vários formatos de saída. A flag -oN salva a saída em um formato de texto normal e legível por humanos.
Você executará uma varredura de vulnerabilidades contra a máquina local e salvará os resultados em um arquivo chamado vuln_scan.txt no seu diretório de projeto.
Execute o seguinte comando:
nmap -sV --script vuln -p 80,139,445 localhost -oN ~/project/vuln_scan.txt
Aguarde a conclusão da varredura. Assim que terminar, os resultados estarão armazenados com segurança em ~/project/vuln_scan.txt.
Agora, você pode analisar este arquivo. Em um cenário real, você pode estar procurando por indicadores específicos de comprometimento ou vulnerabilidades críticas. Você pode usar o comando grep para pesquisar no arquivo de texto. Por exemplo, você pode pesquisar pela palavra "VULNERABLE" (ignorando maiúsculas/minúsculas usando a flag -i) para identificar rapidamente quaisquer problemas confirmados.
Execute o seguinte comando para pesquisar no arquivo de saída:
grep -i "VULNERABLE" ~/project/vuln_scan.txt
|_ Hosts are all up (not vulnerable).
Para verificar se o arquivo foi criado e contém os dados da varredura, você pode visualizar as primeiras linhas do arquivo usando o comando head:
head -n 10 ~/project/vuln_scan.txt
Você deverá ver o cabeçalho padrão do Nmap e o início do relatório de varredura:
## Nmap 7.80 scan initiated Mon Mar 9 15:27:21 2026 as: nmap -sV --script vuln -p 80,139,445 -oN /home/labex/project/vuln_scan.txt localhost
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000085s latency).
Salvar e analisar a saída é uma habilidade fundamental para qualquer profissional de segurança, permitindo que você gerencie grandes quantidades de dados com eficiência.
Resumo
Parabéns! Você concluiu com sucesso o laboratório de Varredura de Vulnerabilidades com NSE.
Neste laboratório, você aprendeu como elevar o Nmap de um scanner de portas padrão para uma ferramenta de avaliação de vulnerabilidades ativa. Você começou atualizando o banco de dados do Nmap Scripting Engine para garantir que tinha os scripts mais recentes disponíveis. Em seguida, utilizou a categoria vuln para sondar automaticamente os serviços descobertos em busca de vulnerabilidades conhecidas. Além disso, praticou o direcionamento de serviços específicos, como HTTP e SMB, com scripts individuais para realizar auditorias focadas. Finalmente, aprendeu como salvar os resultados da sua varredura em um arquivo e analisá-los usando ferramentas de linha de comando para uma análise eficiente.
Essas habilidades formam uma base sólida para auditoria de segurança de rede e gerenciamento de vulnerabilidades.



