Nmap na prática: guia completo de varredura de rede para pentest

Ferramenta

Nmap na prática: guia completo de varredura de rede para pentest

Rodrigo ColissiRodrigo Colissi
04 de setembro de 202620 min de leitura—
Pentest

Resumo: Nmap (Network Mapper — mapeador de redes) é o scanner de redes de referência em pentest: descobre hosts ativos, varre portas TCP e UDP, identifica versões de serviços e sistemas operacionais e automatiza enumeração com scripts. Neste guia completo você aprende cada tipo de scan (SYN, connect, UDP, FIN/NULL/Xmas, idle), descoberta de hosts, detecção de versão e SO, scripts NSE, timing e evasão, formatos de saída e um workflow completo de engajamento — sempre com a contraparte de defesa.

O que é

Nmap é a ferramenta de código aberto mais usada no mundo para descoberta de hosts, varredura de portas e fingerprinting (identificação precisa de serviços e sistemas operacionais) em redes TCP/IP. Criado por Gordon Lyon, conhecido como Fyodor, e publicado em setembro de 1997 na revista Phrack, o projeto nasceu junto com a própria indústria de segurança ofensiva e segue ativo: a versão estável mais recente, a 7.95, foi lançada em abril de 2024 com mais de 6 mil assinaturas de detecção de sistema operacional. É praticamente onipresente em distribuições focadas em segurança, como o Kali Linux (distribuição Linux voltada a testes de segurança), e aparece até em filmes de Hollywood como Matrix Reloaded e O Ultimato Bourne.

Diferente de utilitários simples de conectividade, o Nmap monta e envia os próprios pacotes IP em estado bruto (raw packets — pacotes montados diretamente, sem passar pelas chamadas de rede comuns do sistema operacional), o que exige privilégios de administrador (root) para a maioria dos modos. Com isso ele consegue sondar portas TCP e UDP, deduzir o sistema operacional pelo comportamento da pilha TCP, detectar a presença de firewalls e executar centenas de scripts de enumeração e verificação de vulnerabilidades. Além do binário de linha de comando, a suíte oficial inclui Zenmap (interface gráfica e visualizador de resultados), Ncat (a reescrita moderna do Netcat), Ndiff (comparador de resultados entre varreduras) e Nping (gerador e analisador de pacotes).

Para quem trabalha com segurança, o Nmap é normalmente o primeiro passo de qualquer engajamento: sem saber quais hosts estão vivos, quais portas respondem e quais serviços rodam, não há superfície de ataque para explorar. O projeto mantém ainda um alvo oficial de testes, o scanme.nmap.org, com autorização explícita para varreduras — o lugar certo para praticar sem risco legal.

Principais características

CaracterísticaDescrição
Descoberta de hostsVarredura de redes inteiras com ping sweep (-sn), listando quais máquinas estão ativas sem escanear portas
Scan de portas TCPMais de dez técnicas: connect (-sT), SYN (-sS), FIN/NULL/Xmas (-sF/-sN/-sX), ACK (-sA), window (-sW), idle (-sI), entre outras
Scan UDPVarredura de portas UDP (-sU), combinável com um scan TCP na mesma execução
Detecção de versãoIdentifica o serviço e a versão exata por porta aberta (-sV), com intensidade configurável
Detecção de SODeduz o sistema operacional e a versão (-O) pela análise da pilha TCP/IP
Scripts NSEMotor de scripts em Lua (Nmap Scripting Engine) com centenas de scripts prontos (-sC, --script)
Timing e evasãoPerfis de velocidade de -T0 a -T5, fragmentação de pacotes, decoys e spoofing de origem
Múltiplos formatos de saídaSaída normal, XML, greppable e binária (-oN/-oX/-oG/-oB) para integrar com outras ferramentas
PortabilidadeBinários oficiais para Linux, Windows, macOS e BSD, além de código aberto

As opções que você vai usar todo dia

OpçãoFunção
-snDescoberta de hosts sem scan de portas (ping sweep)
-sS / -sTScan TCP SYN (meia conexão, exige root) / scan TCP connect (sem privilégios)
-sUScan UDP
-sF / -sN / -sXScans FIN, NULL e Xmas (flags TCP atípicas)
-sAScan ACK, usado para mapear regras de firewall
-sI (host zumbi)Idle scan — varredura cega via host zumbi
-p / -p-Especifica portas ou faixas; -p- varre as 65.535 portas TCP
-sVDetecção de versão de serviços
-ODetecção de sistema operacional
-sC / --scriptScripts padrão / scripts NSE específicos ou por categoria
-AModo agressivo: -O + -sV + -sC + traceroute em um comando
-T0 a -T5Perfis de timing, de paranoid a insane
-PnPula a descoberta de hosts e assume todos ativos
-f / -D / -SFragmentação, decoys e spoofing de endereço de origem (evasão)
-oN/-oX/-oG/-oASaída normal, XML, greppable e todos os formatos juntos

Casos de uso práticos

Descoberta de hosts: o ping sweep

Antes de escanear portas, é preciso saber quais máquinas da faixa autorizada estão vivas. O ping sweep com -sn envia sondas ICMP echo, um SYN para a porta 443, um ACK para a porta 80 e uma requisição de timestamp ICMP; na rede local, o Nmap usa ainda ARP (Address Resolution Protocol — o protocolo que descobre o endereço físico de uma máquina na mesma rede), o que torna a detecção praticamente instantânea:

nmap -sn 192.168.1.0/24
nmap -sn 10.10.10.10

O primeiro comando varre toda a faixa /24; o segundo testa um host único. A saída lista cada endereço com o nome DNS reverso e o estado "up" ou "down". Para escopos grandes, os alvos podem vir de um arquivo com a opção -iL (lista de alvos, um por linha), muito usada quando o cliente entrega uma planilha com centenas de IPs:

nmap -sn -iL alvos.txt

Uma observação importante: -sn não toca em portas, então é relativamente silencioso e raramente gera alertas em firewalls — mas ainda assim é detectável e deve ser feito apenas dentro do escopo autorizado.

Scan TCP: connect e SYN

A varredura TCP é o coração do Nmap. O funcionamento básico depende do handshake de três vias do protocolo: o scanner envia um SYN (pacote de sincronização que inicia a conexão), e a resposta revela o estado da porta — SYN/ACK significa porta aberta, RST (reset — pacote que encerra/rejeita a conexão) significa fechada, e silêncio total indica filtrada por firewall. O Nmap reporta também combinações como aberta ou filtrada quando não consegue diferenciar.

O scan connect (-sT) usa a chamada de sistema connect do próprio sistema operacional, a mesma que navegadores e aplicativos usam para abrir conexões — por isso não exige root, mas completa as conexões de verdade, é mais lento e deixa rastro em logs do alvo. O scan SYN (-sS) envia os pacotes na mão, nunca completa o handshake (por isso é chamado de meia conexão ou half-open), é muito mais rápido — milhares de portas por segundo em redes rápidas — e é o método padrão quando o usuário tem privilégios:

nmap -sT 10.10.10.10
sudo nmap -sS 10.10.10.10
sudo nmap -sS -p 22,80,443,445,3389 10.10.10.10
sudo nmap -sS -p- --min-rate 5000 10.10.10.10

O terceiro comando mira apenas portas de serviços comuns; o quarto varre todas as 65.535 portas com taxa mínima de 5 mil pacotes por segundo, o padrão de ouro para um reconhecimento rápido em engajamentos autorizados. Depois de encontrar portas abertas com um scan amplo, o pentester refina com varreduras direcionadas — nunca o contrário, para não desperdiçar horas num alvo que não tem o serviço que se procura.

Varredura UDP: lenta, mas indispensável

Serviços críticos rodam sobre UDP (User Datagram Protocol — o protocolo sem conexão, usado por DNS, SNMP e DHCP): DNS na porta 53, SNMP na 161/162, DHCP na 67/68. Muitos auditores pulam o UDP por preguiça — e é exatamente aí que serviços exploráveis ficam esquecidos. O scan UDP (-sU) envia um pacote UDP para cada porta: uma resposta UDP revela porta aberta, um erro ICMP "porta inalcançável" indica fechada, e silêncio vira "aberta ou filtrada", que o -sV ajuda a desambiguar.

O problema é a velocidade: portas abertas e filtradas não respondem, forçando timeouts e retransmissões, e muitos sistemas limitam a taxa de mensagens ICMP de erro — o Linux chega a aceitar apenas uma por segundo, o que tornaria a varredura completa de 65.535 portas uma tarefa de mais de 18 horas. A saída prática é escanear apenas as portas UDP mais comuns:

sudo nmap -sU --top-ports 100 10.10.10.10
sudo nmap -sU -p 53,67,68,123,137,161,162,500,1434,1900 10.10.10.10

A primeira forma varre as 100 portas UDP mais populares; a segunda mira serviços que valem a pena (DNS, DHCP, NTP, NetBIOS, SNMP, ISAKMP, MSSQL). O UDP pode ser combinado com um scan TCP na mesma execução (sudo nmap -sS -sU --top-ports 200 10.10.10.10) para ter as duas visões num relatório só.

Scans exóticos: FIN, NULL, Xmas e idle

O RFC 793 do TCP descreve um comportamento que os scans "invisíveis" exploram: um pacote sem as flags SYN, RST ou ACK enviado a uma porta fechada deve receber um RST de volta, enquanto uma porta aberta simplesmente o ignora. O Nmap usa esse detalhe em três variações — NULL (-sN, nenhuma flag), FIN (-sF, só a flag FIN) e Xmas (-sX, as flags FIN, PSH e URG juntas, "iluminando" o pacote como uma árvore de Natal):

sudo nmap -sF 10.10.10.10
sudo nmap -sN 10.10.10.10
sudo nmap -sX 10.10.10.10

A vantagem teórica é atravessar firewalls não-estaduais e filtros simples que só observam conexões SYN; a limitação prática é que nem todo sistema segue o RFC à risca — Windows, muitos roteadores Cisco, BSDI e OS/400 respondem RST para qualquer porta, fazendo tudo parecer fechado. O resultado em sistemas compatíveis é "fechada" com RST ou "aberta ou filtrada" com silêncio.

Dois scans relacionados merecem destaque. O scan ACK (-sA) não revela portas abertas — ele mapeia as regras do firewall: portas que respondem RST são "não filtradas" (alcançáveis) e as que se calam são "filtradas", revelando se o firewall é estadual (que conhece o estado das conexões) ou não. E o idle scan (-sI) faz uma varredura cega usando um host zumbi: em vez de enviar pacotes ao alvo com o seu IP real, o Nmap usa um efeito colateral do protocolo — o campo de identificação de fragmentação IP (IP ID) do zumbi — para deduzir as portas abertas. O alvo enxerga a varredura vinda do zumbi, nunca do atacante:

sudo nmap -sA 10.10.10.10
sudo nmap -sI 10.0.0.5 10.10.10.10

No exemplo, 10.0.0.5 é o zumbi (que precisa estar ativo, com tráfego baixo e IP ID previsível) e 10.10.10.10 o alvo. A técnica é fascinante, mas frágil e demorada — na prática de engajamentos modernos, o SYN scan segue sendo a escolha padrão.

Detecção de versão e sistema operacional

Descobrir que a porta 80 está aberta é pouco: o pentester precisa saber que ali roda um Apache 2.4.58 ou um nginx 1.25. A detecção de versão (-sV) sonda o serviço com uma série de payloads (dados de teste enviados ao serviço para provocar uma resposta identificável) e cruza as respostas com uma base de milhares de assinaturas, retornando o nome do aplicativo, a versão e às vezes até detalhes como o sistema operacional do host:

nmap -sV -p 22,80,443 10.10.10.10

A detecção de sistema operacional (-O) usa outra técnica: envia pacotes especialmente montados e compara o comportamento da pilha TCP/IP do alvo (tamanhos de janela, sequências, respostas a flags atípicas) com assinaturas conhecidas — um fingerprinting que deduz se é um Linux 6.1, um Windows Server 2022 ou um roteador:

sudo nmap -O 10.10.10.10
sudo nmap -A 10.10.10.10

O modo agressivo -A junta -O, -sV, os scripts padrão -sC e um traceroute (ferramenta que mostra o caminho dos pacotes até o destino) numa passada só — o atalho mais usado para um reconhecimento completo e rápido, equivalente ao exemplo clássico nmap -v -A scanme.nmap.org da documentação oficial. A detecção de SO pode ser enganada por hosts que adulteram respostas, então trate o resultado como hipótese, não como certeza.

Scripts NSE: de enumeração a verificação de vulnerabilidades

O NSE (Nmap Scripting Engine — o motor de scripts do Nmap, escrito em Lua) transforma o scanner em uma plataforma de automação: são centenas de scripts prontos, organizados em categorias como default, discovery (descoberta e enumeração), vuln (verificação de vulnerabilidades conhecidas), brute (força bruta de credenciais), exploit (exploração), dos (negação de serviço), auth e malware. A opção -sC roda o conjunto padrão (rápido e seguro o bastante para o dia a dia), e --script escolhe scripts específicos ou categorias inteiras:

nmap -sC -sV 10.10.10.10
nmap --script vuln 10.10.10.10
nmap --script http-enum -p 80 10.10.10.10
nmap --script smb-enum-shares -p 445 10.10.10.10

O primeiro comando é o reconhecimento padrão com scripts default. O segundo roda a categoria vuln, que testa o alvo contra vulnerabilidades conhecidas — como o EternalBlue (MS17-010) em SMB ou Shellshock em HTTP — e é a primeira triagem antes de partir para a exploração. O terceiro enumera diretórios e aplicações web comuns na porta 80, revelando painéis de administração e arquivos sensíveis; o quarto lista os compartilhamentos SMB (Server Message Block — o protocolo de compartilhamento de arquivos do Windows) de uma máquina Windows, mostrando pastas expostas sem autenticação. Uma ressalva importante da documentação oficial: scripts NSE não rodam em sandbox — scripts de terceiros podem danificar o sistema ou vazar informações, então só execute scripts de fontes confiáveis e audite antes.

Timing, desempenho e evasão

O Nmap tem seis perfis de temporização (-T0 a -T5): paranoid, sneaky, polite, normal (o padrão), aggressive e insane. O perfil controla o intervalo entre pacotes e o tempo de espera por respostas — -T0 envia um pacote por vez com longos atrasos (pensado para atravessar IDS antigos sem levantar alertas, à custa de horas de duração), enquanto -T4 acelera tudo e é o padrão de engajamentos, e -T5 prioriza velocidade máxima a risco de perder respostas:

sudo nmap -sS -T4 -p- 10.10.10.10
sudo nmap -sS -T2 --host-timeout 30m 10.10.10.10

O segundo comando combina um ritmo lento com um limite de 30 minutos por host, útil para alvos com firewalls chatos que derrubam conexões. Para evasão, o Nmap oferece fragmentação de pacotes (-f, que quebra os pacotes em pedaços menores para atravessar filtros simples), decoys (-D, que forja endereços de origem aleatórios para a varredura parecer vir de vários IPs) e a escolha de porta de origem (-g, fazendo o scan "sair" pela porta 53 para enganar firewalls que só liberam DNS):

sudo nmap -sS -f -D RND:10 10.10.10.10
sudo nmap -sS -g 53 10.10.10.10
nmap -Pn -sV 10.10.10.10

O -Pn pula a descoberta de hosts e assume todos os alvos ativos — essencial quando o alvo bloqueia ICMP e não responde a ping. Seja claro: essas técnicas desaceleram IDS ingênuos, mas não tornam a varredura invisível — sistemas de detecção modernos reconhecem fragmentação, decoys e scans de porta de origem, e o uso dessas opções fora de um teste autorizado tem implicações legais sérias.

Saída para outras ferramentas

Um engajamento profissional gera centenas de resultados que precisam virar relatório e alimentar as próximas etapas. O Nmap oferece quatro formatos principais, ativados juntos com -oA (todos os formatos ao mesmo tempo): normal (-oN, legível para humanos), XML (-oX, parseável por máquinas e ferramentas de automação), greppable (-oG, uma linha por host, ideal para grep e pipelines) e binário (-oB, para retomar scans com --resume):

nmap -sV -sC -oA pentest-alvo 10.10.10.10
nmap -sV -oX resultados.xml 10.10.10.10

O primeiro comando salva três arquivos — pentest-alvo.nmap, pentest-alvo.xml e pentest-alvo.gnmap — com todo o reconhecimento do alvo. O XML é o formato que ferramentas como Metasploit (framework de exploração de vulnerabilidades) importam para correlacionar portas abertas com módulos de ataque, e o greppable permite extrair rapidamente só os hosts com portas abertas para a próxima fase:

grep -E "open" pentest-alvo.gnmap

Registrar os comandos e a saída desde o início é boa prática: o relatório final de um pentest precisa mostrar exatamente o que foi feito, quando e com que resultado — e o -oA garante que nada se perca.

Workflow completo: do escopo ao relatório

Para amarrar tudo, um engajamento típico contra um alvo autorizado — digamos, o laboratório interno 10.10.10.10, ou o scanme.nmap.org do próprio projeto Nmap, que libera varreduras explícitas — segue estas fases com o Nmap:

FaseComandoObjetivo
Escopo e autorizaçãoContrato/ordem de serviçoDefinir faixas permitidas, janela de teste e regras do engajamento
Descoberta de hostssudo nmap -sn 10.10.0.0/16Listar os hosts vivos da faixa autorizada
Scan amplo de portassudo nmap -sS -p- --min-rate 5000 10.10.10.10Encontrar todas as portas TCP abertas
Enumeração direcionadanmap -sC -sV -p 22,80,443,445 10.10.10.10Identificar serviços, versões e aplicar scripts default
Verificação de vulnerabilidadesnmap --script vuln 10.10.10.10Triagem inicial de CVEs conhecidas
Documentaçãonmap -sV -sC -oA relatorio 10.10.10.10Salvar resultados em todos os formatos

O primeiro passo é sempre o escopo: sem autorização por escrito do proprietário, nenhum byte deve ser enviado — varredura sem autorização é crime. Em seguida vem a descoberta de hosts com -sn sobre a faixa inteira, para mapear o que existe. O terceiro passo é o scan SYN amplo de todas as portas, que revela a superfície de ataque. Na sequência, cada porta aberta é alvo da enumeração com -sC -sV, que diz o serviço, a versão e roda os scripts default — é aqui que versões antigas de Apache, OpenSSH ou SMB começam a gritar "explore-me". A quinta fase roda a categoria vuln para confirmar vulnerabilidades conhecidas e priorizar; a última documenta tudo com -oA para o relatório e para a próxima ferramenta da cadeia.

Antes de qualquer exploração, os resultados do Nmap se somam a outras fontes de reconhecimento: a coleta de e-mails e subdomínios com theHarvester (ferramenta de OSINT que agrega e-mails, subdomínios e hosts de fontes públicas), a visão externa de dispositivos expostos do Shodan (mecanismo de busca de dispositivos conectados à internet), e a validação manual de serviços. A exploração em si fica para frameworks como Metasploit e o Impacket — este último já coberto no nosso guia — que consomem o XML gerado pelo Nmap. E para força bruta de serviços descobertos, ferramentas como Hydra (ferramenta de ataque de força bruta a serviços de rede) entram em cena depois que o Nmap já apontou o que existe.

Como se defender dos riscos

Autorização é pré-requisito, não detalhe. O Nmap é uma ferramenta legítima e dual — o mesmo comando que um pentester usa com autorização é o que um invasor usa para mapear sua rede. Varreduras sem autorização prévia do proprietário podem configurar o crime de invasão de dispositivo informático previsto no art. 154-A do Código Penal, incluído pela Lei Carolina Dieckmann (a lei brasileira que tipifica a invasão de dispositivos informáticos). Na sua organização, todo teste deve ter escopo, janela e contrato definidos por escrito — e o time de defesa deve ser avisado para não tratar o próprio teste como incidente.

Varredura é detectável — assuma isso. SYN scan, ping sweeps e varreduras de faixas inteiras têm assinaturas conhecidas: rajadas de pacotes SYN para várias portas em sequência, pacotes com flags atípicas, fragmentação incomum e conexões que nunca completam o handshake. Sistemas de detecção de intrusão como Snort, Suricata e Zeek (plataformas de monitoramento que analisam o tráfego em tempo real e geram alertas) trazem regras prontas para esses padrões. Coloque a detecção na borda e no segmento crítico, e alerte sobre qualquer varredura vinda de fora do escopo.

Monitore logs de conexão e o tráfego de saída. Mesmo sem IDS, os logs de firewalls e servidores contam a história: uma rajada de conexões vindas de um único IP em portas sequenciais é a assinatura clássica de scan connect. Centralize esses logs num SIEM como o Wazuh (plataforma de segurança open source que coleta, correlaciona e alerta sobre eventos de endpoints e rede) e crie regras de correlação para varredura de portas, varreduras UDP em serviços de gerenciamento e acessos repetidos a portas fechadas.

Reduza a superfície que o scanner vai encontrar. O Nmap só revela o que está exposto: cada serviço desnecessário aberto na rede é um achado a mais no relatório do atacante. Feche portas não usadas no firewall, desabilite serviços legados (SMBv1 é o exemplo clássico), segmente a rede para que servidores críticos não respondam a varreduras de estações de trabalho, e mantenha tudo atualizado — a triagem --script vuln de um atacante só acha o que a sua gestão de patches deixou passar.

Evasão não é invisibilidade. Fragmentação, decoys e portas de origem forjadas enganam firewalls antigos e filtros simples, mas as plataformas de detecção modernas reconhecem esses padrões — inclusive correlacionando decoys pela resposta dos hosts falsos. Confie em defesa em profundidade (firewall + IDS/IPS + monitoramento de endpoints + SIEM), não em esperar que o tráfego suspeito seja sutil.

Scripts NSE de terceiros são um risco à parte. Como a própria documentação do Nmap alerta, os scripts não rodam em ambiente isolado: um script malicioso pode executar comandos na sua máquina, vazar o IP do alvo para terceiros ou derrubar serviços. Execute apenas scripts de fontes confiáveis (o conjunto oficial do projeto), audite scripts customizados antes de rodar e desconfie de "cheatsheets" que mandam colar scripts de repositórios desconhecidos.

Conclusão

Quase três décadas depois do lançamento, o Nmap continua sendo a primeira ferramenta que um pentester abre e a primeira que um defensor precisa conhecer: é o mapa do terreno em qualquer engajamento. Dominar os tipos de scan — do SYN scan padrão ao UDP lento, dos scans de flags exóticas ao idle scan cego —, saber quando usar detecção de versão e SO, explorar o poder dos scripts NSE e documentar tudo com os formatos de saída corretos é o que separa um reconhecimento profissional de um "rodar nmap e rezar". E, como toda ferramenta ofensiva, o Nmap exige o outro lado da moeda: autorização clara, detecção ativa na rede e a disciplina de tratar os resultados como um checklist de hardening — porque o mesmo scanner que revela vulnerabilidades para você é o que o atacante vai rodar minutos depois.

Fontes e leituras adicionais

Gostou? Receba novos conteúdos por e-mail.

Entre na comunidade

Discussões técnicas e novidades em primeira mão.