Um dos usos mais poderosos do Nmap é a capacidade de detectar se um host está protegido por um firewall. Isso é fundamental em auditorias de segurança para entender como os sistemas em uma rede respondem a diferentes tipos de pacotes e quais proteções estão sendo usadas. O Nmap pode ajudar a identificar essas proteções, como firewalls e dispositivos de filtragem, verificando como o sistema responde a tentativas de conexão.
Como Funciona a Detecção de Firewalls
Quando um host está protegido por um firewall, as respostas a pacotes de rede podem variar dependendo de como o firewall está configurado. O Nmap pode ajudar a identificar essas respostas de várias maneiras:
- Portas Filtradas: Quando uma porta é filtrada, ela pode ser bloqueada pelo firewall. O Nmap classifica essa resposta como “filtered” (filtrada), significando que ele não pôde determinar se a porta está aberta ou fechada devido ao bloqueio do firewall.
- Portas Bloqueadas ou Dropadas: Algumas portas podem ser explicitamente bloqueadas ou “dropadas”, o que significa que o firewall simplesmente ignora os pacotes sem responder.
- Respostas Incomuns: O Nmap pode detectar respostas incomuns aos pacotes enviados, indicando a presença de firewalls ou sistemas de detecção de intrusão.
Comandos Nmap para Detecção de Firewall
1. Varredura de Portas Filtradas:
O comando mais básico para detectar um firewall é uma varredura de portas com o Nmap:
nmap -p <porta> <endereço_ip>
Exemplo:
nmap -p 80 192.168.1.10
Se o resultado for “filtered”, isso significa que a porta pode estar sendo filtrada por um firewall, o que impede a detecção do seu estado (aberta ou fechada).
2. Varredura Stealth (SYN Scan):
Uma varredura SYN (-sS
), também conhecida como varredura stealth, é uma técnica para detectar firewalls que bloqueiam ou permitem pacotes TCP SYN. Este é o tipo de varredura mais comum e pode passar despercebido por firewalls mal configurados.
nmap -sS <endereço_ip>
Essa varredura pode ajudar a identificar portas abertas sem estabelecer uma conexão completa com o serviço, reduzindo a chance de detecção por firewalls.
3. Varredura ACK (Detecção de Firewalls):
Uma varredura ACK (-sA
) é projetada especificamente para detectar firewalls. Ela funciona enviando pacotes TCP ACK para ver se o firewall está bloqueando ou permitindo o tráfego. Se a resposta for “unfiltered”, isso significa que o pacote atravessou o firewall, mas a porta pode não estar necessariamente aberta.
nmap -sA <endereço_ip>
Exemplo:
nmap -sA 192.168.1.10
Essa varredura é útil para detectar se um host está usando um firewall stateful, que monitora o estado das conexões de rede.
4. Varredura FIN, Xmas e Null (Bypass de Firewalls):
Essas varreduras são técnicas para tentar enganar firewalls que estão configurados apenas para bloquear pacotes SYN:
- FIN scan (
-sF
) - Xmas scan (
-sX
) - Null scan (
-sN
)
Exemplo de comando com varredura FIN:
nmap -sF <endereço_ip>
Essas varreduras enviam pacotes incomuns para o alvo, o que pode ajudar a descobrir firewalls ou regras de filtragem que não bloqueiam esses pacotes.
5. Varredura de Fragmentos:
Para tentar contornar sistemas de detecção de intrusão ou firewalls, o Nmap oferece a opção de fragmentar os pacotes, dificultando a identificação por dispositivos de segurança:
nmap -f <endereço_ip>
Isso quebra os pacotes em pedaços menores, o que pode ajudar a contornar firewalls que inspecionam pacotes maiores.
6. Detecção de Firewall com Traceroute:
O comando -traceroute
ajuda a detectar onde os pacotes são bloqueados em uma rota de rede. Isso pode ser útil para identificar onde o firewall está localizado na rede:
nmap --traceroute <endereço_ip>
Interpretação dos Resultados
Os resultados fornecidos pelo Nmap podem revelar se um host está atrás de um firewall, o tipo de resposta que o firewall está dando e se há portas filtradas, dropadas ou abertas. As classificações mais comuns são:
- open: A porta está aberta e acessível.
- closed: A porta está fechada, mas o host respondeu.
- filtered: O firewall está bloqueando a porta e não é possível determinar o estado.
- unfiltered: O Nmap pôde acessar a porta, mas não sabe se está aberta ou fechada.