Se existe uma única ferramenta que todo profissional de segurança do planeta conhece e usa, é o Nmap (Network Mapper). Criado por Gordon Lyon há mais de duas décadas, ele é o padrão absoluto para varredura de redes — tão icônico que já apareceu em filmes. O Nmap implementa, de forma robusta e refinada, exatamente essa teoria: ele envia os pacotes, interpreta as respostas e te entrega o inventário do alvo. Nesta aula você aprende o Nmap essencial, sempre contra as máquinas do seu laboratório (a Metasploitable da aula Alvos vulneráveis: conhecendo o campo de batalha é o alvo ideal para praticar tudo isto). Rode cada comando; a fluência vem do uso.
O primeiro comando
O uso mais básico é apontar o Nmap para um alvo:
nmap 192.168.1.10 # scan padrão das 1000 portas mais comuns
nmap 192.168.1.0/24 # scan de toda uma faixa de rede (host discovery + portas)
nmap exemplo.com # aceita nomes, resolvendo o DNS antes
Sem opções, o Nmap já faz muito: descobre se o host está vivo e escaneia as 1000 portas TCP mais comuns, reportando quais estão abertas, fechadas ou filtradas. Só isso já te dá o esqueleto do alvo. Mas o poder está nas opções, que ajustam o que e como escanear.
Descobrir quem está vivo antes de bater na porta
Comece pelo host discovery — descobrir o que está vivo numa faixa antes de escanear portas. O -sn faz só isso, um "ping sweep" (a versão profissional daquele seu script Bash da aula Bash scripting: automatizando o trabalho sujo):
nmap -sn 192.168.1.0/24 # apenas descobre hosts vivos, sem escanear portas
Isso te dá rapidamente o mapa de máquinas ativas na rede, para então focar o scan de portas só no que existe. Para a seleção de portas, você controla o alcance:
nmap -p 80,443 192.168.1.10 # apenas as portas 80 e 443
nmap -p 1-1000 192.168.1.10 # o intervalo 1 a 1000
nmap -p- 192.168.1.10 # TODAS as 65535 portas (completo, mais lento)
nmap -F 192.168.1.10 # "fast": só as 100 portas mais comuns
O -p- é importante: o scan padrão só vê as 1000 portas mais comuns, mas serviços interessantes às vezes se escondem em portas altas e incomuns justamente para passar despercebidos. Um scan completo (-p-) demora mais, mas não deixa esse ponto cego — e encontrar um serviço numa porta atípica é frequentemente o achado que abre o alvo.
De lista de portas a inteligência acionável
Agora as duas opções que transformam uma lista de portas em inteligência acionável, e que você usará quase sempre: detecção de serviço/versão (-sV) e detecção de sistema operacional (-O):
nmap -sV 192.168.1.10 # identifica o serviço E a versão em cada porta aberta
nmap -O 192.168.1.10 # tenta identificar o sistema operacional
nmap -sV -O 192.168.1.10 # ambos
O -sV é decisivo. Sem ele, você sabe que a porta 21 está aberta; com ele, você descobre que ali roda "vsftpd 2.3.4" — e essa versão específica tem uma vulnerabilidade notória (aliás, presente na Metasploitable). É a ponte direta entre scanning e exploração: a versão é o que você cruza com bases de vulnerabilidades (aula CVE, CVSS e CWE: a linguagem das vulnerabilidades) para saber se há um exploit conhecido. O -sV faz, de forma sistemática, o banner grabbing que você programou manualmente na aula Python para pentest I: construindo seu próprio scanner de portas.
O atalho -A e o que ele esconde
Há uma opção "atalho" muito usada, o -A, que agrega detecção de versão, de SO, scripts padrão e traceroute num só comando — conveniente, porém barulhento, então use com consciência do rastro. E controle de velocidade com os templates de timing (-T0 a -T5): -T4 é o equilíbrio comum para redes rápidas, -T5 é agressivo e ruidoso, e -T0/-T1 são lentíssimos e discretos, para quando evadir detecção importa. E sempre salve a saída — evidência para o relatório:
nmap -sV -A 192.168.1.10 # scan abrangente (versão, SO, scripts, traceroute)
nmap -sV -oN scan.txt 192.168.1.10 # salva a saída em texto
nmap -sV -oA resultado 192.168.1.10 # salva em todos os formatos (inclui XML)
O -oA salvar em múltiplos formatos não é detalhe: o formato XML pode ser importado por outras ferramentas (inclusive o Metasploit do Bloco VIII), encadeando seu fluxo de trabalho.
Rode agora contra a sua Metasploitable
Um exercício que consolida tudo e que eu recomendo fazer agora: rode nmap -sV -p- <sua Metasploitable>, e leia a saída com atenção — cada linha é uma porta aberta, um serviço e uma versão. Essa lista é o seu inventário de superfície de ataque, e cada entrada é uma hipótese a investigar na enumeração. Do lado defensivo, entender o Nmap é entender o que o atacante vê da sua rede: administradores usam o próprio Nmap para auditar suas superfícies (o que está exposto que não deveria?), e o Blue Team aprende a reconhecer a assinatura de um scan nos logs — rajadas de conexões a muitas portas de uma mesma origem — para detectar reconhecimento ativo em curso.
Fontes e leituras recomendadas
- Nmap Network Scanning — Fyodor (o livro oficial, com referência completa de opções)
- nmap.org — documentação, cheat sheets e a página de referência de comandos
- TryHackMe e HackTheBox — salas dedicadas ao Nmap para prática guiada
- Metasploitable — o alvo ideal para experimentar todas as opções desta aula
Exercícios
-
O que o Nmap faz por padrão quando você o executa sem opções contra um alvo?
✓ Resposta:Ele verifica se o host está vivo e escaneia as 1000 portas TCP mais comuns, reportando quais estão abertas, fechadas ou filtradas — entregando o esqueleto do alvo.
-
Qual a diferença entre
-sn,-F,-p-e-p 80,443, e quando usar cada um?✓ Resposta:-snfaz apenas host discovery (sem escanear portas);-Fescaneia só as 100 portas mais comuns (rápido);-p-escaneia todas as 65535 portas (completo, lento);-p 80,443escaneia apenas portas específicas. Usa-se-snpara mapear hosts vivos,-Fpara uma visão rápida,-p-para não ter pontos cegos, e-pquando se quer mirar portas conhecidas. -
Por que a opção
-sVé considerada a ponte entre scanning e exploração? A que técnica manual da aula Python para pentest I: construindo seu próprio scanner de portas ela corresponde?✓ Resposta:Porque
-sVidentifica a versão exata do serviço em cada porta, e a versão é o que se cruza com bases de vulnerabilidades para localizar exploits conhecidos. Corresponde ao banner grabbing programado manualmente na aula Python para pentest I: construindo seu próprio scanner de portas. -
Explique o que os templates de timing (
-T0a-T5) controlam e como eles se relacionam com a tensão discrição vs. velocidade.✓ Resposta:Controlam a velocidade/agressividade do scan. Timings altos (
-T4,-T5) são rápidos, mas ruidosos e mais detectáveis; timings baixos (-T0,-T1) são lentos, porém discretos. Refletem diretamente o trade-off entre ser minucioso/rápido e ser invisível. -
Por que salvar a saída com
-oA(múltiplos formatos) é útil além de servir como evidência?✓ Resposta:Porque o formato XML gerado pode ser importado por outras ferramentas (como o Metasploit), encadeando o fluxo de trabalho e permitindo reaproveitar os resultados do scan nas fases seguintes.