Como usar nmap para auditar superfície de ataque em servidores
1. Introdução ao nmap e auditoria de superfície de ataque
O nmap (Network Mapper) é uma ferramenta de código aberto amplamente utilizada para descoberta de redes e auditoria de segurança. Desenvolvido por Gordon Lyon, tornou-se referência essencial tanto para profissionais de segurança ofensiva quanto defensiva. Sua capacidade de mapear portas abertas, identificar serviços em execução e detectar sistemas operacionais o torna indispensável na análise de superfície de ataque.
O conceito de superfície de ataque refere-se ao conjunto total de pontos vulneráveis em um sistema — portas abertas, serviços expostos, versões de software desatualizadas e sistemas operacionais identificáveis. Cada um desses elementos representa uma potencial porta de entrada para um invasor.
Importante: Antes de qualquer varredura, obtenha autorização por escrito do proprietário do sistema. Escanear servidores sem permissão é ilegal em diversos países e viola leis como o Computer Fraud and Abuse Act (CFAA) nos EUA e o Marco Civil da Internet no Brasil.
2. Instalação e configuração inicial do nmap
No Linux, a instalação é simples:
# Ubuntu/Debian
sudo apt update && sudo apt install nmap -y
# CentOS/RHEL/Fedora
sudo yum install nmap -y
# ou
sudo dnf install nmap -y
Verifique a instalação:
nmap --version
Para comandos básicos de ajuda:
nmap -h
man nmap
Muitas varreduras avançadas exigem privilégios de root. Use sudo para executar scans SYN (-sS), detecção de SO (-O) e scans UDP (-sU):
sudo nmap -sS 192.168.1.1
3. Descoberta de hosts e varredura de portas
O primeiro passo em uma auditoria é identificar quais hosts estão ativos na rede. O ping sweep com -sn é eficiente para isso:
# Descobrir hosts ativos em uma sub-rede
nmap -sn 192.168.1.0/24
# Listar alvos sem escanear
nmap -sL 192.168.1.0/24
Para varredura de portas, os principais tipos de scan são:
# TCP SYN scan (padrão, rápido, requer sudo)
sudo nmap -sS 192.168.1.100
# TCP Connect scan (não requer sudo, mais lento)
nmap -sT 192.168.1.100
# UDP scan (lento, requer sudo)
sudo nmap -sU 192.168.1.100
Exemplo prático — escanear portas específicas em um intervalo de IPs:
# Escanear portas 22, 80, 443 e 8080 nos IPs 192.168.1.1 a 192.168.1.10
sudo nmap -sS -p 22,80,443,8080 192.168.1.1-10
4. Detecção de versões de serviços e sistemas operacionais
Identificar versões de serviços é crucial para encontrar vulnerabilidades conhecidas:
# Detecção de versão com -sV
sudo nmap -sV 192.168.1.100
# Detecção de sistema operacional com -O
sudo nmap -O 192.168.1.100
# Varredura agressiva completa com -A (combina -O, -sV, traceroute e scripts)
sudo nmap -A 192.168.1.100
Exemplo de saída com versões:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2
80/tcp open http Apache httpd 2.4.38
443/tcp open ssl OpenSSL 1.1.1d
O fingerprint de SO usa características únicas de pilhas TCP/IP. A precisão é alta, mas pode ser enganada por sistemas que modificam parâmetros de rede.
5. Scripts NSE (Nmap Scripting Engine) para auditoria aprofundada
O NSE permite automatizar tarefas de auditoria com scripts categorizados:
# Listar scripts disponíveis
ls /usr/share/nmap/scripts/
# Escanear vulnerabilidades conhecidas
sudo nmap --script vuln 192.168.1.100
# Descobrir título de servidor web
sudo nmap --script http-title 192.168.1.100
# Categoria discovery para informações adicionais
sudo nmap --script discovery 192.168.1.100
Exemplo prático combinando vários scripts:
sudo nmap -sV --script vuln,http-enum,ssl-enum-ciphers 192.168.1.100
Para evitar falsos positivos, sempre valide manualmente as vulnerabilidades encontradas. Scripts como http-sql-injection e http-fileupload-exploiter podem gerar alertas que exigem confirmação.
6. Varredura de rede interna e externa em servidores
A abordagem difere entre escaneamento local e remoto:
Rede interna (LAN):
# Escaneamento local com alta velocidade
sudo nmap -T4 -sS -p- 10.0.0.0/24
Rede externa (WAN) com evasão de firewall:
# Fragmentação de pacotes para evitar detecção
sudo nmap -f 192.168.1.100
# Uso de decoys para mascarar origem
sudo nmap -D decoy1,decoy2,ME 192.168.1.100
# Atraso entre pacotes para evitar rate limiting
sudo nmap --scan-delay 1s 192.168.1.100
Exemplo prático — auditar servidor web público:
sudo nmap -sS -sV -p 80,443 --script http-title,ssl-cert,http-headers example.com
7. Interpretação de resultados e geração de relatórios
A saída padrão pode ser complementada com verbosidade:
# Aumentar verbosidade
sudo nmap -v 192.168.1.100
# Verbosidade máxima
sudo nmap -vv 192.168.1.100
Exportação para diferentes formatos:
# XML (útil para ferramentas de análise)
sudo nmap -oX relatorio.xml 192.168.1.100
# Greppable (para processamento com grep/awk)
sudo nmap -oG relatorio.gnmap 192.168.1.100
# JSON (para integração com APIs)
sudo nmap -oJ relatorio.json 192.168.1.100
Para criar um relatório resumido:
# Extrair portas abertas do formato greppable
grep "Ports:" relatorio.gnmap | awk '{print $2, $3}'
8. Boas práticas e limitações do nmap em auditoria
Throttling para evitar sobrecarga:
# Taxa mínima e máxima de pacotes
sudo nmap --min-rate 100 --max-rate 500 192.168.1.100
# Atraso entre probes
sudo nmap --host-timeout 30s 192.168.1.100
Limitações importantes:
- Falsos negativos em serviços atrás de balanceadores de carga
- WAF (Web Application Firewalls) podem bloquear ou distorcer resultados
- Serviços que escutam apenas em IPv6 podem não ser detectados em varreduras IPv4
- Firewalls stateful podem ocultar portas abertas
Próximos passos após auditoria:
- Correlacione resultados com ferramentas como Nessus ou OpenVAS para validação
- Utilize o Metasploit para exploração controlada em ambiente autorizado
- Documente todas as descobertas em um relatório formal de segurança
Referências
- Documentação Oficial do Nmap — Guia completo de referência, livro e manuais do Nmap
- Nmap Scripting Engine (NSE) Documentation — Documentação detalhada sobre scripts NSE e categorias
- OWASP Testing Guide - Network Testing — Guia do OWASP para enumeração de serviços em servidores web
- Nmap Cheat Sheet by StationX — Resumo prático de comandos Nmap para auditoria rápida
- SANS Institute - Nmap for Penetration Testing — Artigo técnico do SANS sobre uso de Nmap em testes de penetração
- Nmap Network Scanning Book by Gordon Lyon — Livro oficial do criador do Nmap, abordando todas as técnicas de varredura
- CVE Details - Vulnerability Search — Base de dados para correlacionar versões de serviços encontradas com vulnerabilidades conhecidas