Introdução
Neste laboratório, você transformará o Nmap de um simples scanner de portas em uma ferramenta de auditoria versátil. Você explorará o Nmap Scripting Engine (NSE), um dos recursos mais poderosos e flexíveis do Nmap.
O NSE permite que os usuários escrevam e compartilhem scripts simples para automatizar uma ampla variedade de tarefas de rede. Esses scripts são executados em paralelo com a velocidade e eficiência que você espera do Nmap. Ao final deste laboratório, você saberá como localizar esses scripts em seu sistema Linux, executar scripts padrão não intrusivos e executar scripts específicos para extrair automaticamente informações, como títulos de páginas da web HTTP.
O NSE é importante porque transforma o Nmap de um mapeador em uma pequena plataforma de auditoria. Uma vez que uma porta é encontrada, os scripts podem fazer perguntas mais detalhadas sobre a aplicação sem a necessidade imediata de uma ferramenta separada.
Localizar Scripts NSE
Nesta etapa, você explorará onde o Nmap armazena seus scripts e como pesquisar por scripts específicos.
O Nmap Scripting Engine (NSE) utiliza scripts escritos na linguagem de programação Lua. Quando você instala o Nmap em um sistema Linux, ele vem pré-embalado com centenas desses scripts, cobrindo desde a descoberta básica de rede até a exploração complexa de vulnerabilidades.
Saber onde os scripts residem é útil porque tanto defensores quanto testadores precisam entender qual lógica eles estão realmente executando contra um alvo.
Por padrão, o Nmap armazena todos os seus scripts NSE no diretório /usr/share/nmap/scripts/. Você pode listar o conteúdo deste diretório para ver o que está disponível.
Execute o seguinte comando para listar os primeiros scripts no diretório:
ls /usr/share/nmap/scripts/ | head -n 10
Você verá uma saída semelhante a esta:
acarsd-info.nse
address-info.nse
afp-brute.nse
afp-ls.nse
afp-path-vuln.nse
afp-serverinfo.nse
afp-showmount.nse
ajp-auth.nse
ajp-brute.nse
ajp-headers.nse
Observe que todos os arquivos terminam com a extensão .nse, que significa Nmap Scripting Engine.
Como existem mais de 600 scripts, é frequentemente útil pesquisar scripts relacionados a um serviço específico. Por exemplo, se você quiser encontrar scripts relacionados a HTTP (servidores web), pode usar o comando grep para filtrar os resultados.
Execute o seguinte comando para encontrar scripts relacionados a HTTP:
ls /usr/share/nmap/scripts/ | grep http | head -n 10
Isso exibirá uma lista de scripts projetados para interagir com servidores web, como o http-title.nse, que captura o título de uma página da web, ou o http-auth.nse, que verifica mecanismos de autenticação.
Executar Scripts Padrão (-sC)
Nesta etapa, você aprenderá como executar o conjunto padrão de scripts do Nmap.
O Nmap categoriza seus scripts em diferentes grupos com base em seu propósito e no nível de intrusão. A categoria default contém scripts considerados seguros, rápidos e confiáveis. Eles coletam informações úteis sem atacar agressivamente o alvo ou causar interrupções no serviço.
As categorias são, na verdade, uma classificação de risco e intenção. Elas ajudam você a escolher scripts que se adequam ao contexto, em vez de executar cegamente tudo o que está disponível.
Para executar o conjunto padrão de scripts, você pode usar a flag -sC. Isso é equivalente a digitar --script=default.
Para este laboratório, um servidor web leve foi iniciado em segundo plano na porta 8080, e o serviço SSH padrão está rodando na porta 22. Vamos escanear a máquina local (localhost) nessas portas específicas usando os scripts padrão.
Execute o seguinte comando:
nmap -sC -p 22,8080 localhost
Você verá uma saída semelhante a esta:
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 14:56 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
22/tcp open ssh
8080/tcp open http-proxy
|_http-title: LabEx Nmap NSE Target
Nmap done: 1 IP address (1 host up) scanned in 0.49 seconds
Observe atentamente a saída. Na porta 8080, o Nmap executou automaticamente o script http-title e extraiu com sucesso o título da página da web: "LabEx Nmap NSE Target". O Nmap usa esses scripts padrão para coletar mais informações sobre as portas abertas de forma transparente.
Isso demonstra como a flag -sC atualiza instantaneamente o Nmap de um simples scanner de portas para uma ferramenta de coleta de informações.
Executar Scripts de Categorias Específicas
Nesta etapa, você aprenderá como executar scripts específicos ou categorias inteiras de scripts usando o argumento --script.
Embora os scripts padrão (-sC) sejam ótimos para reconhecimento geral, às vezes você precisa executar um script específico para uma tarefa direcionada. Você pode fazer isso passando o nome do script para o argumento --script.
Por exemplo, se você quiser apenas capturar o título HTTP do servidor web rodando na porta 8080 sem executar nenhum outro script padrão, você pode especificar o script http-title diretamente.
Execute o seguinte comando:
nmap --script=http-title -p 8080 localhost
A saída será altamente focada, mostrando apenas o status da porta e o resultado do script http-title:
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 14:56 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000057s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
8080/tcp open http-proxy
|_http-title: LabEx Nmap NSE Target
Nmap done: 1 IP address (1 host up) scanned in 0.28 seconds
Além de nomes de scripts individuais, você também pode especificar categorias de scripts. O Nmap agrupa scripts em categorias como safe, intrusive, vuln (detecção de vulnerabilidades), discovery e exploit.
Execute o seguinte comando para executar todos os scripts safe contra a porta 8080:
nmap --script=safe -p 8080 localhost
Nota: Executar uma categoria inteira de scripts pode levar uma quantidade significativa de tempo (às vezes mais de 9 minutos!), dependendo do ambiente de rede e do número de scripts nessa categoria. Alguns scripts também podem aguardar por timeouts. Se você não quiser esperar, pode pressionar
Ctrl+Cpara cancelar a varredura e pular esta etapa.
A saída incluirá o título HTTP, mas também pode incluir outras verificações seguras, dependendo da versão exata do Nmap e do ambiente:
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 14:56 CST
Pre-scan script results:
| targets-asn:
|_ targets-asn.asn is a mandatory parameter
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000057s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
8080/tcp open http-proxy
|_http-date: Mon, 09 Mar 2026 06:57:04 GMT; 0s from local time.
|_http-fetch: Please enter the complete path of the directory to save data in.
| http-headers:
| Server: SimpleHTTP/0.6 Python/3.10.12
| Date: Mon, 09 Mar 2026 06:57:03 GMT
| Content-type: text/html
| Content-Length: 103
| Last-Modified: Mon, 09 Mar 2026 06:55:32 GMT
|
|_ (Request type: HEAD)
|_http-title: LabEx Nmap NSE Target
Host script results:
| dns-blacklist:
| SPAM
| list.quorum.to - SPAM
| l2.apews.org - FAIL
|_ bl.nszones.com - SPAM
|_fcrdns: FAIL (No PTR record)
| resolveall:
| Host 'localhost' also resolves to:
| Use the 'newtargets' script-arg to add the results as targets
|_ Use the --resolve-all option to scan all resolved addresses without using this script.
| unusual-port:
|_ WARNING: this script depends on Nmap's service/version detection (-sV)
Post-scan script results:
| reverse-index:
|_ 8080/tcp: 127.0.0.1
Nmap done: 1 IP address (1 host up) scanned in 551.51 seconds
Usar o argumento --script oferece controle granular sobre o seu processo de auditoria, permitindo que você adapte suas varreduras às suas necessidades específicas de teste de segurança.
Resumo
Parabéns! Você concluiu com sucesso o laboratório de Fundamentos do Nmap Scripting Engine (NSE).
Neste laboratório, você aprendeu a:
- Localizar o diretório padrão para scripts NSE (
/usr/share/nmap/scripts/) e pesquisar por scripts específicos usando comandos padrão do Linux. - Usar a flag
-sCpara executar uma coleção de scripts padrão e seguros para coletar informações automaticamente, como chaves de host SSH e títulos de páginas da web HTTP. - Usar o argumento
--scriptpara executar scripts individuais pelo nome ou executar categorias inteiras de scripts, proporcionando controle preciso sobre suas tarefas de auditoria de rede.
Essas habilidades fundamentais permitirão que você aproveite o Nmap como uma ferramenta poderosa e automatizada de auditoria de segurança em suas futuras explorações de rede e empreendimentos de teste de penetração.



