Guia de Referência Nmap
Referência completa de comandos para varredura de redes
Da descoberta básica de hosts aos scripts NSE avançados — todos os comandos que você precisa
📑 Navegação rápida
O que é Nmap?
Nmap (Network Mapper) é uma ferramenta gratuita e de código aberto para descoberta de redes e auditoria de segurança. Criado por Gordon Lyon (Fyodor) em 1997, tornou-se o padrão da indústria para varredura de redes, utilizado por profissionais de segurança, administradores de sistemas e testadores de penetração em todo o mundo.
O Nmap usa pacotes IP brutos para determinar hosts disponíveis, serviços, sistemas operacionais, configurações de firewall e dezenas de outras características. Ele roda em todos os principais sistemas operacionais e pacotes oficiais estão disponíveis em nmap.org.
📦 Instalação
Debian/Ubuntu/Kali
sudo apt install nmap
RHEL/CentOS/Fedora
sudo dnf install nmap
macOS (Homebrew)
brew install nmap
Windows
Download em nmap.org/download
🎯 Comandos básicos de varredura
| Comando | Descrição |
|---|---|
| nmap <target> | Varrer host único (padrão: top 1000 portas) |
| nmap 192.168.1.1-254 | Varrer faixa de IPs |
| nmap 192.168.1.0/24 | Varrer sub-rede inteira (notação CIDR) |
| nmap -iL targets.txt | Varrer alvos de um arquivo |
| nmap --exclude 192.168.1.1 | Excluir hosts específicos da varredura |
| nmap --excludefile exclude.txt | Excluir hosts listados em arquivo |
🔎 Descoberta de hosts (varredura ping)
| Flag | Descrição | Exemplo |
|---|---|---|
| -sn | Somente varredura ping (sem varredura de portas) | nmap -sn 192.168.1.0/24 |
| -Pn | Pular descoberta de hosts (tratar todos como online) | nmap -Pn <target> |
| -PS | Ping TCP SYN nas portas especificadas | nmap -PS22,80,443 <target> |
| -PA | Ping TCP ACK | nmap -PA80,443 <target> |
| -PU | Ping UDP | nmap -PU53 <target> |
| -PE | Ping ICMP echo | nmap -PE <target> |
| -PP | Ping ICMP timestamp | nmap -PP <target> |
| -PM | Ping ICMP netmask | nmap -PM <target> |
| -PR | Ping ARP (somente rede local) | nmap -PR 192.168.1.0/24 |
💡 Dica profissional
Use -sn para varreduras rápidas de rede sem acionar detecção de varredura de portas. Combine com -PR em redes locais para descoberta baseada em ARP mais rápida.
🔌 Técnicas de varredura de portas
| Flag | Tipo de varredura | Descrição |
|---|---|---|
| -sS | TCP SYN (Stealth) | Varredura half-open, rápida e furtiva (requer root) |
| -sT | TCP Connect | Conexão TCP completa (não requer root) |
| -sU | Varredura UDP | Varrer portas UDP (mais lenta que TCP) |
| -sA | TCP ACK | Mapear regras de firewall (filtrado vs não filtrado) |
| -sW | TCP Window | Como ACK mas detecta portas abertas via tamanho de janela |
| -sN | TCP Null | Nenhuma flag definida (evade alguns firewalls) |
| -sF | TCP FIN | Somente flag FIN definida |
| -sX | TCP Xmas | Flags FIN, PSH, URG definidas |
| -sM | TCP Maimon | Probe FIN/ACK |
| -sI | Idle/Zombie | Varredura furtiva usando host zombie |
🎚️ Especificação de portas
| Flag | Descrição | Exemplo |
|---|---|---|
| -p 80 | Varrer porta única | nmap -p 80 <target> |
| -p 80,443,8080 | Varrer portas específicas | nmap -p 80,443,8080 <target> |
| -p 1-1000 | Varrer faixa de portas | nmap -p 1-1000 <target> |
| -p- | Varrer todas as 65535 portas | nmap -p- <target> |
| -p U:53,T:80 | Especificar portas UDP e TCP | nmap -p U:53,T:80,443 <target> |
| --top-ports N | Varrer as N portas mais comuns | nmap --top-ports 100 <target> |
| -F | Varredura rápida (top 100 portas) | nmap -F <target> |
| -r | Varrer portas sequencialmente | nmap -r <target> |
🔍 Detecção de serviços e versões
| Flag | Descrição |
|---|---|
| -sV | Detectar versões de serviços em portas abertas |
| --version-intensity 0-9 | Definir intensidade da varredura de versão (0=leve, 9=todos os probes) |
| --version-light | Varredura de versão leve (intensidade 2) |
| --version-all | Tentar todos os probes (intensidade 9) |
| -A | Varredura agressiva: -sV -O -sC --traceroute |
📋 Exemplo: Detecção completa de serviços
nmap -sV --version-all -p 22,80,443,3306,8080 <target>
💻 Detecção de sistema operacional
| Flag | Descrição |
|---|---|
| -O | Habilitar detecção de SO |
| --osscan-limit | Tentar detecção de SO apenas em alvos promissores |
| --osscan-guess | Adivinhar SO de forma mais agressiva |
| --max-os-tries N | Limitar tentativas de detecção de SO por alvo |
📋 Exemplo: Detecção de SO com adivinhação agressiva
sudo nmap -O --osscan-guess <target>
📜 Nmap Scripting Engine (NSE)
O NSE contém centenas de scripts para detecção de vulnerabilidades, força bruta, descoberta e mais. Os scripts estão localizados em /usr/share/nmap/scripts/ na maioria dos sistemas Linux.
| Flag | Descrição |
|---|---|
| -sC | Executar scripts padrão (mesmo que --script=default) |
| --script=<name> | Executar script(s) específico(s) |
| --script=<category> | Executar todos os scripts de uma categoria |
| --script-args=<args> | Fornecer argumentos aos scripts |
| --script-updatedb | Atualizar banco de dados de scripts |
| --script-help=<name> | Mostrar ajuda do script |
Categorias de scripts
Detecção de vulnerabilidades
Exploração ativa
Ataques de força bruta
Scripts não intrusivos
Descoberta de serviços
Verificações de autenticação
Scripts padrão seguros
Pode derrubar serviços
Exemplos comuns de scripts NSE
# Varredura de vulnerabilidadesnmap --script vuln <target># Enumeração HTTPnmap --script http-enum -p 80,443 <target># Verificação de vulnerabilidades SMBnmap --script smb-vuln* -p 445 <target># Transferência de zona DNSnmap --script dns-zone-transfer -p 53 <target># Força bruta SSHnmap --script ssh-brute -p 22 <target># Análise SSL/TLSnmap --script ssl-enum-ciphers -p 443 <target># Verificação de login anônimo FTPnmap --script ftp-anon -p 21 <target># Enumeração MySQLnmap --script mysql-info -p 3306 <target>
⚡ Timing e performance
Templates de timing
| Flag | Nome | Caso de uso |
|---|---|---|
| -T0 | Paranoid | Evasão de IDS, extremamente lento |
| -T1 | Sneaky | Evasão de IDS, lento |
| -T2 | Polite | Reduzir carga de rede |
| -T3 | Normal | Timing padrão |
| -T4 | Aggressive | Varredura rápida em redes confiáveis |
| -T5 | Insane | Muito rápido, pode perder portas |
Controles de timing refinados
| Flag | Descrição |
|---|---|
| --min-rate N | Enviar pelo menos N pacotes por segundo |
| --max-rate N | Enviar no máximo N pacotes por segundo |
| --min-parallelism N | Número mínimo de probes paralelos |
| --max-parallelism N | Número máximo de probes paralelos |
| --min-hostgroup N | Mínimo de hosts para varrer em paralelo |
| --max-hostgroup N | Máximo de hosts para varrer em paralelo |
| --max-retries N | Limitar retransmissões de probes de portas |
| --host-timeout TIME | Desistir do host após este tempo |
| --scan-delay TIME | Aguardar entre probes |
📄 Formatos de saída
| Flag | Formato | Descrição |
|---|---|---|
| -oN file.txt | Normal | Saída legível por humanos |
| -oX file.xml | XML | XML legível por máquina |
| -oG file.gnmap | Grepable | Fácil de usar grep e parsear |
| -oS file.txt | Script Kiddie | Saída em L33t speak (para diversão) |
| -oA basename | Todos os formatos | Saída em todos os formatos (.nmap, .xml, .gnmap) |
💡 Dica profissional
Sempre use -oA para salvar resultados em todos os formatos. Isso dá flexibilidade para relatórios (normal), automação (XML) e buscas rápidas (grepable).
Verbosidade e debugging
| -v / -vv / -vvv | Aumentar nível de verbosidade |
| -d / -dd | Aumentar nível de debugging |
| --reason | Mostrar razão para estado da porta |
| --open | Mostrar apenas portas abertas |
| --packet-trace | Mostrar todos os pacotes enviados e recebidos |
🛡️ Evasão de firewall e IDS
| Flag | Descrição |
|---|---|
| -f | Fragmentar pacotes (8 bytes por fragmento) |
| --mtu N | Definir MTU personalizado (deve ser múltiplo de 8) |
| -D decoy1,decoy2,ME | Usar endereços decoy (ME = seu IP real) |
| -S <spoofed_ip> | Spoofar endereço de origem |
| -g <port> | Usar porta de origem específica |
| --source-port <port> | Mesmo que -g |
| --data-length N | Anexar dados aleatórios aos pacotes |
| --randomize-hosts | Randomizar ordem dos hosts alvo |
| --spoof-mac <mac> | Spoofar endereço MAC (0 para aleatório) |
| --badsum | Enviar pacotes com checksums incorretos |
📋 Exemplo: Varredura com evasão
nmap -f -D RND:5 --source-port 53 --data-length 50 -T2 <target>
🔥 Combinações comuns de varredura
# Varredura rápida de redenmap -sn 192.168.1.0/24# Varredura padrão de serviçosnmap -sV -sC -p- <target># Varredura completa (serviços + SO + scripts)nmap -A -T4 <target># Varredura rápida das principais portasnmap -F -T4 <target># Varredura stealth com detecção de serviçosnmap -sS -sV -O -T4 <target># Varredura UDP das portas comunssudo nmap -sU --top-ports 20 <target># Varredura de vulnerabilidadesnmap --script vuln -sV <target># Enumeração de servidor webnmap -sV --script=http-enum,http-headers,http-methods -p 80,443,8080 <target># Varredura TCP + UDP completa com todas as informações (lenta mas completa)sudo nmap -sS -sU -sV -O -sC -p- -T4 -oA fullscan <target># Varredura com evasão de firewallnmap -sS -T2 -f -D RND:5 --source-port 53 <target>
⚡ One-liners úteis
# Encontrar hosts ativos e salvar em arquivonmap -sn 192.168.1.0/24 -oG - | grep "Up" | cut -d " " -f 2 > live_hosts.txt# Extrair portas abertas da saída grepablegrep "open" scan.gnmap | cut -d "/" -f 1 | sort -u# Varrer lista de hosts para porta específicanmap -iL hosts.txt -p 22 --open -oG - | grep "open"# Encontrar servidores web na redenmap -p 80,443,8080,8443 --open 192.168.1.0/24# Port knock rápido (verificar se portas estão abertas)nmap -Pn -p 22,80,443 --open <target># Encontrar hosts com serviço específiconmap -sV -p 3306 192.168.1.0/24 --open
📊 Entendendo os estados das portas
open
Aplicação aceitando conexões ativamente
closed
Porta acessível mas sem aplicação escutando
filtered
Firewall bloqueando, não é possível determinar estado
unfiltered
Acessível, mas open/closed desconhecido (varredura ACK)
open|filtered
Aberta ou filtrada, não é possível determinar (UDP)
closed|filtered
Fechada ou filtrada, não é possível determinar
📚 Recursos adicionais
- Manual oficial do Nmap — Referência completa de comandos
- Documentação de scripts NSE — Todos os scripts disponíveis
- Livro Nmap Network Scanning — Livro online gratuito por Fyodor
- Repositório GitHub do Nmap — Código fonte e issues
🎯 Guia de referência Nmap completo!
Você agora tem uma referência completa para a ferramenta de varredura de redes mais poderosa em cibersegurança. Da descoberta básica à evasão avançada, esses comandos são usados diariamente por profissionais de segurança em todo o mundo.
Pronto para varrer seu próximo alvo!