O Nmap é o canivete suíço da descoberta de redes. Se és sysadmin, DevOps, ou segurança, vais usá-lo mais vezes do que qualquer outra ferramenta de network. E com a NSE (Nmap Scripting Engine), as possibilidades são infinitas.
Quando comecei a trabalhar com redes, o Nmap era "aquele comando que faz scan a portas". Usava nmap -sT 192.168.1.1 e pronto. Mal sabia que estava a usar um dos modos mais ruidosos e lentos possíveis.
Com o tempo, aprendi a diferença entre -sS e -sT, descobri os scripts NSE que automatizam a deteção de vulnerabilidades, e aprendi a contornar firewalls sem fazer barulho. O Nmap não é uma ferramenta: é um ecossistema.
Este artigo serve como guia de referência rápido. Vou direto ao que interessa: tipos de scan, exemplos práticos, NSE, evasão e performance.
⬆ Scan Nmap com deteção de SO, versões de serviço e scripts NSE
Tipos de scan: tabela de referência
| Scan | Flag | Descrição | Prós | Contras |
|---|---|---|---|---|
| SYN scan | -sS | Envia SYN, recebe SYN/ACK, envia RST. Não completa o handshake | Rápido, furtivo (não cria log de conexão completa) | Precisa de root |
| TCP connect | -sT | Completa o handshake TCP (SYN → SYN/ACK → ACK) | Não precisa de root, funciona em qualquer sistema | Mais lento, mais ruidoso, registado nos logs |
| UDP scan | -sU | Envia pacote UDP vazio. Porta fechada → ICMP unreachable | Único scan UDP do Nmap | Muito lento, resultados pouco fiáveis |
| Version detection | -sV | Deteta versão do serviço a correr na porta | Identifica software e versão exata | Adiciona latência ao scan |
| OS detection | -O | Deteta sistema operativo com base em fingerprint TCP/IP | Surpreendentemente preciso | Precisa de root, mais lento |
| Ping sweep | -sn | Descobre hosts ativos sem fazer scan de portas | Rápido, útil para mapear rede | Só diz quais hosts estão up |
| FIN scan | -sF | Envia pacote FIN. Porta fechada → RST. Aberta → silêncio | Furtivo, passa em alguns firewalls | Não funciona em Windows |
| Xmas tree | -sX | Envia pacote com flags FIN + PSH + URG ligadas | Muito furtivo | Igual ao FIN: bloqueado por firewalls modernos |
| Null scan | -sN | Envia pacote TCP sem flags | Furtivo | Igual ao FIN |
| ACK scan | -sA | Envia ACK para mapear regras de firewall | Útil para perceber o que o firewall filtra | Não descobre portas abertas |
| Window scan | -sW | Similar ao ACK mas usa o TCP Window size | Pode detetar portas abertas em alguns casos | Pouco fiável |
Dica: 90% dos meus scans usam -sS (SYN). É rápido, furtivo e fiável. Apenas mudo para -sT quando não tenho privilégios de root ou quando quero ser propositadamente detetado (testes de IDS).
Scans básicos no dia-a-dia
Output formats: -on, -ox, -og, -oa
Guardar o resultado de um scan é essencial para auditoria e automação:
| Flag | Formato | Uso |
|---|---|---|
| -oN resultado.txt | Normal (legível por humanos) | Relatórios, documentação |
| -oX resultado.xml | XML (parseável) | Integração com ferramentas (Metasploit, Dradis) |
| -oG resultado.gnmap | Grepable (uma linha por host) | Parsing com grep/awk/sed |
| -oA resultado | All formats (normal + XML + grepable) | Quando queres os três de uma vez |
NSE scripts: o poder do Nmap
A Nmap Scripting Engine (NSE) é o que separa o Nmap de qualquer outra ferramenta. São scripts em Lua que automatizam tarefas de deteção, exploração e pós-exploração.
Categorias principais
| Categoria | Descrição | Exemplos |
|---|---|---|
| safe | Scripts que não causam dano. Informação passiva | banner, http-title, ssh-hostkey |
| intrusive | Potencialmente perigosos. Podem crashar serviços | http-enum, mysql-brute, smb-enum-shares |
| vuln | Deteção de vulnerabilidades conhecidas | smb-vuln-ms17-010, ssl-heartbleed |
| exploit | Exploração ativa de vulnerabilidades | http-shellshock |
| auth | Testes de autenticação e brute force | ftp-brute, http-brute |
| broadcast | Descoberta de hosts via broadcast | dhcp-discover, wsd-discover |
| dos | Testes de negação de serviço (muito cuidado!) | http-slowloris |
⬆ NSE a detetar vulnerabilidades: do Heartbleed ao EternalBlue
Evasão de firewall
Quando o alvo tem firewall, o Nmap tem truques na manga:
Atenção: O decoy -D só funciona com -sS (SYN scan) e com -sT (TCP connect). Não funciona com -sV, -O ou --traceroute. O scan demora mais porque cada IP falso também gera tráfego.
Performance: acelera os teus scans
| Parâmetro | O que faz | Exemplo |
|---|---|---|
| --min-rate 1000 | Força mínimo de 1000 pacotes/segundo | Scans rápidos em redes grandes |
| --max-retries 2 | Não insiste em pacotes perdidos | Redes instáveis, acelera muito |
| --min-parallelism 50 | Mínimo de 50 probes em paralelo | Escala o scan em redes grandes |
| -T insane | Timing template mais agressivo | Redes locais, baixa latência |
| --host-timeout 5m | Máximo 5 minutos por host | Evita ficar preso em hosts lentos |
Comandos úteis do dia-a-dia
Timing templates (-t)
| Nível | Nome | Quando usar |
|---|---|---|
| -T 0 | Paranoid | Evasão de IDS. Muito lento (5 min entre probes) |
| -T 1 | Sneaky | Evasão, um pouco mais rápido (15s entre probes) |
| -T 2 | Polite | Menos largura de banda. Educado para o servidor alvo |
| -T 3 | Normal | Default. Equilíbrio entre velocidade e discrição |
| -T 4 | Agressive | Rede local confiável. Assume boa latência |
| -T 5 | Insane | Rede local muito rápida. Pode perder portas |
Recapitulando
- -sS para 90% dos scans: SYN scan, rápido e furtivo
- -sV + -O para deteção de versões e SO
- -oA para guardar resultados nos 3 formatos
- NSE scripts com --script: do safe ao vuln
- Evasão: -f, -D, -g, -T0
- Performance: --min-rate, --max-retries
O Nmap é uma ferramenta que quanto mais usas, mais descobres. Começa com o básico, explora os scripts NSE, e com o tempo vais construir o teu próprio repertório de scans para cada situação.
Experimenta correr nmap --script-updatedb para teres a base de dados de scripts mais recente, e depois explora a categoria vuln nos teus servidores.
Comentários (0)
Nenhum comentário ainda. Seja o primeiro!
Deixar comentário