Avançado Pentest e Ofensiva
Scanning com nmap e masscan — portas, serviços, OS fingerprinting, stealth
Scanning é o primeiro contato ativo com o alvo. O objetivo é mapear o que está exposto: portas, protocolos, versões e sistema operacional. Toda atividade deve ser feita dentro do escopo autorizado.
nmap — fundamentos
# Scan básico TCP (top 1000 portas)
nmap 192.168.1.10
# Todas as 65535 portas
nmap -p- 192.168.1.10
# Faixa de IPs (subnet)
nmap 192.168.1.0/24
# Portas específicas
nmap -p 22,80,443,3306,5432 192.168.1.10
Detecção de versão e OS fingerprinting
# Detecção de versão dos serviços (-sV) + OS (-O)
nmap -sV -O 192.168.1.10
# Agressivo: versão + OS + scripts + traceroute
nmap -A 192.168.1.10
Saída típica:
22/tcp open ssh OpenSSH 8.9p1 Ubuntu
80/tcp open http Apache httpd 2.4.52
3306/tcp open mysql MySQL 8.0.32
OS: Linux 5.15
Tipos de scan TCP
SYN scan (-sS) — padrão, stealth:
→ envia SYN, recebe SYN-ACK (porta aberta) ou RST (fechada)
→ não completa o handshake → menos logs no alvo
→ requer root/sudo
Connect scan (-sT):
→ handshake TCP completo
→ mais detectável, não requer root
UDP scan (-sU):
→ muito mais lento (sem confirmação de recebimento)
→ portas importantes: 53 (DNS), 161 (SNMP), 500 (IPSec)
nmap -sU -p 53,161,500 192.168.1.10
NULL / FIN / Xmas scan:
→ técnicas para evadir firewalls antigos
→ comportamento definido pela RFC 793; firewalls modernos ignoram
Scripts NSE (Nmap Scripting Engine)
# Listar scripts disponíveis por categoria
nmap --script-help "vuln"
# Detectar vulnerabilidades conhecidas
nmap --script vuln 192.168.1.10
# Scripts específicos
nmap --script http-title,http-server-header 192.168.1.10
nmap --script smb-vuln-ms17-010 192.168.1.10 # EternalBlue
nmap --script ssh-auth-methods 192.168.1.10
# Banner grabbing via NSE
nmap --script banner 192.168.1.10
Evasão de firewall e IDS
# Fragmentação de pacotes
nmap -f 192.168.1.10
# Decoy scan — disfarça origem com IPs fictícios
nmap -D 10.0.0.1,10.0.0.2,ME 192.168.1.10
# Timing paranóico (T0 = mais lento, T5 = mais rápido)
nmap -T0 192.168.1.10 # muito lento, difícil de detectar
nmap -T4 192.168.1.10 # padrão agressivo para pentest
# Porta de origem customizada (parece tráfego legítimo)
nmap --source-port 53 192.168.1.10
# Scan sem ping (alvo pode bloquear ICMP)
nmap -Pn 192.168.1.10
masscan — velocidade em redes grandes
masscan varre a internet inteira em minutos. Para redes internas, é útil para escaneamento rápido de subnets grandes:
# Scan rápido de toda a subnet
masscan 192.168.1.0/24 -p 1-65535 --rate=10000
# Saída em formato nmap para importar depois
masscan 192.168.1.0/24 -p 80,443,22 --rate=5000 -oX resultado.xml
# Fluxo recomendado: masscan para portas, nmap para versões
masscan 192.168.1.0/24 -p- --rate=10000 | grep open | awk '{print $6}' \
| sort -u > hosts_ativos.txt
nmap -sV -iL hosts_ativos.txt
Saída e análise
# Salvar em múltiplos formatos
nmap -oA scan_resultado 192.168.1.0/24
# Arquivos gerados:
# scan_resultado.nmap (legível)
# scan_resultado.xml (para importar no Metasploit/Nessus)
# scan_resultado.gnmap (greppable)
# Grep rápido por portas abertas
grep "open" scan_resultado.gnmap
Interpretação dos resultados
Estado da porta:
open → serviço aceitando conexões
closed → porta acessível mas sem serviço
filtered → firewall bloqueia a resposta (não sabe se aberta ou fechada)
open|filtered → não foi possível determinar (comum em UDP)
Ações por porta:
22 open → tentar credenciais fracas, versão vulnerável?
80/443 → enumerar web (diretórios, tecnologias, CVEs)
3306 → banco acessível externamente? autenticação?
445 → SMB: verificar shares, EternalBlue (MS17-010)
161 UDP → SNMP: community string "public"? dump de config
Scanning é ciência e arte: configurar bem os parâmetros evita alarmar o alvo e garante cobertura completa.