O Nmap seria uma ferramenta notável mesmo se parasse no que já vimos. Mas há um recurso que o eleva de "scanner de portas" a "plataforma de reconhecimento e detecção de vulnerabilidades": o Nmap Scripting Engine (NSE). O NSE permite que o Nmap execute scripts — pequenos programas que automatizam tarefas de enumeração, detecção de vulnerabilidades e até exploração leve — contra os serviços que ele encontra. É o que faz o Nmap não só te dizer "a porta 445 está aberta com Samba tal versão", mas também "e essa versão é vulnerável a tal falha". Esta aula fecha a trilogia Nmap mostrando como transformar scanning em análise, sempre no laboratório.
Centenas de scripts por categoria
A ideia é simples e poderosa: o Nmap vem com centenas de scripts prontos, organizados por categoria, cada um especializado em interrogar um tipo de serviço ou verificar um tipo de condição. Em vez de você conhecer manualmente cada protocolo, os scripts encapsulam esse conhecimento. Eles se agrupam em categorias como default (os seguros e úteis, executados com -sC), safe (não intrusivos), vuln (detecção de vulnerabilidades), discovery (enumeração aprofundada), auth (relacionados a autenticação), brute (tentativas de força bruta), entre outras. Você invoca scripts de várias formas:
nmap -sC 192.168.1.10 # roda os scripts "default" (comuns e úteis)
nmap --script vuln 192.168.1.10 # roda a categoria de detecção de vulnerabilidades
nmap --script smb-enum-shares 192.168.1.10 # um script específico (enumera compartilhamentos SMB)
nmap --script "http-*" 192.168.1.10 # todos os scripts relacionados a HTTP (curinga)
nmap -sV --script vuln 192.168.1.10 # combina detecção de versão com busca de vulnerabilidades
Versão mais categoria vuln, um mini-scanner
Esse último comando é particularmente valioso: o -sV identifica versões e a categoria vuln verifica falhas conhecidas — juntos, aproximam-se de um mini scanner de vulnerabilidades (que veremos formalmente na aula Scanners de vulnerabilidade: automação, virtudes e armadilhas).
Onde o NSE brilha: enumeração por serviço
Onde o NSE realmente brilha é na enumeração de serviços específicos — que é justamente o tema do restante do Bloco VI. Cada protocolo tem scripts dedicados que extraem informação profunda. Para o SMB (que enumeraremos a fundo na aula Enumeração SMB: o protocolo mais explorado do mundo Windows), há scripts que listam compartilhamentos, usuários, e detectam vulnerabilidades famosas:
nmap --script smb-os-discovery 192.168.1.10 # descobre SO e detalhes via SMB
nmap --script smb-enum-users 192.168.1.10 # enumera usuários
nmap --script smb-vuln-ms17-010 192.168.1.10 # verifica a vulnerabilidade do EternalBlue!
Um comando diz se o EternalBlue funciona
Aquele último — smb-vuln-ms17-010 — verifica se o alvo é vulnerável ao EternalBlue (que exploraremos na aula EternalBlue: anatomia de um exploit devastador). Perceba a potência: com um único comando, o Nmap te diz se um dos exploits mais impactantes da história funciona naquele alvo. O NSE conecta diretamente a fase de scanning com a de exploração, sinalizando exatamente onde atacar.
Uma plataforma extensível em Lua
Há um aspecto que revela a profundidade da ferramenta: os scripts NSE são escritos em Lua, uma linguagem de scripting, e você pode escrever os seus. Isso significa que o NSE não é um conjunto fechado — é uma plataforma extensível. Quando surge uma vulnerabilidade nova, a comunidade frequentemente publica um script NSE para detectá-la rapidamente, e você pode adicioná-lo ao seu arsenal ou criar um sob medida para uma necessidade específica. Você não precisa dominar a escrita de scripts NSE agora, mas saber que a ferramenta é extensível muda como você a enxerga: é infraestrutura, não utilitário fechado. É o mesmo princípio do curso — entender a ferramenta a fundo permite estendê-la além do que veio pronto.
As categorias que interagem e podem quebrar
Um ponto de responsabilidade importante sobre as categorias mais agressivas: nem todo script é inofensivo. Os scripts das categorias vuln, brute e exploit interagem ativamente e podem ter impacto — um script de brute force gera tentativas de login (que podem bloquear contas), e alguns scripts de detecção de vulnerabilidade chegam a testar a falha de formas que podem afetar o serviço. Por isso, a categoria safe existe para os que não causam efeitos colaterais, e por isso você lê o que um script faz antes de rodá-lo contra algo sensível — a documentação de cada script (disponível em nmap.org e via --script-help) descreve seu comportamento e riscos. Rodar --script vuln cegamente contra um sistema de produção frágil é o tipo de descuido que derruba serviços e viola as Regras de Engajamento. No laboratório, experimente à vontade; em alvos reais, com critério.
Do lado defensivo, o NSE é uma faca de dois gumes que o Blue Team também empunha: administradores usam scripts NSE para auditar suas próprias redes — verificar se seus sistemas têm as vulnerabilidades conhecidas antes que um atacante o faça, enumerar suas próprias exposições, validar configurações. E, como sempre, entender o que os scripts fazem ajuda a reconhecer sua assinatura nos logs quando alguém os usa contra você. Com o NSE, encerramos a trilogia Nmap: você domina o scanning do host discovery à detecção de vulnerabilidades. Daqui em diante vem a enumeração serviço por serviço, começando pelo SMB, um dos protocolos mais ricos e mais explorados do mundo Windows. O inventário vira alvo específico.
Fontes e leituras recomendadas
- nmap.org/nsedoc — documentação de todos os scripts NSE, por categoria
- Nmap Network Scanning — Fyodor (capítulo dedicado ao NSE)
nmap --script-help "nome-do-script"— ajuda embutida sobre o que cada script faz- Repositório de scripts NSE no GitHub — para estudar como são escritos (em Lua)
Exercícios
-
O que é o NSE e como ele transforma o papel do Nmap para além de um scanner de portas?
✓ Resposta:O NSE (Nmap Scripting Engine) permite ao Nmap executar scripts que automatizam enumeração, detecção de vulnerabilidades e exploração leve contra os serviços encontrados. Isso o transforma de scanner de portas em plataforma de reconhecimento e detecção de vulnerabilidades.
-
Explique o propósito das categorias
default,vuln,safeebrute.✓ Resposta:defaultreúne scripts comuns, seguros e úteis (executados com-sC);vulnverifica vulnerabilidades conhecidas;safereúne scripts não intrusivos, sem efeitos colaterais;bruterealiza tentativas de força bruta contra autenticação. -
Por que o comando
nmap -sV --script vulné especialmente valioso? O que a combinação entrega?✓ Resposta:Porque
-sVidentifica as versões dos serviços e a categoriavulnverifica falhas conhecidas; juntos, correlacionam versão com vulnerabilidade, funcionando como um mini scanner de vulnerabilidades que aponta diretamente onde há potencial de exploração. -
O que o script
smb-vuln-ms17-010verifica, e como isso conecta a fase de scanning com a de exploração?✓ Resposta:Verifica se o alvo é vulnerável ao EternalBlue (MS17-010). Conecta scanning e exploração porque, com um único comando, informa se um exploit específico e impactante funcionará naquele alvo, sinalizando exatamente onde atacar.
-
Por que se deve ter cautela ao rodar scripts das categorias
vuln,bruteeexploitcontra sistemas reais, e onde encontrar a descrição do comportamento de um script?✓ Resposta:Porque esses scripts interagem ativamente e podem causar impacto — brute force pode bloquear contas, e testes de vulnerabilidade podem afetar o serviço, chegando a derrubá-lo. A descrição do comportamento e riscos de cada script está na documentação (nmap.org/nsedoc) e via
nmap --script-help "nome".