Vimos o que um firewall é capaz de fazer e os diferentes tipos que existem. Então, como um invasor pode evadir desses dispositivos? Existem algumas técnicas disponíveis para isto.
Spoofing de endereço IP
Uma maneira eficaz como um invasor pode evadir um firewall deve parecer como algo mais, como um host confiável. Usando o spoofing para modificar informações de endereço, o atacante pode fazer com que a fonte de um ataque pareça vir de algum lugar que não seja uma parte mal-intencionada.
Embora este ataque pode ser eficaz, existem algumas limitações que podem frustrar este processo. O mais óbvio é o fato de que firewalls mais do que provavelmente irão dar drop no tráfego. Especificamente, um host confiável pode ser algo dentro da própria rede. Qualquer tipo de pacote especialmente criado a partir de um intervalo de endereços IP na rede local, mas vindo de fora da rede, será descartado como inválido.
Roteamento de origem
Usando esta técnica, o remetente do pacote designa a rota que um pacote deve tomar através da rede de tal forma que a rota designada deve ignorar o nó do firewall. Usando esta técnica, o invasor pode evitar as restrições do firewall.
Através do uso de roteamento de origem, é inteiramente possível para o atacante ou remetente de um pacote especificar a rota que eles querem que ele tome em vez de deixar essas escolhas para o processo de roteamento normal. Neste processo, a origem ou fonte de um pacote é assumido para ter todas as informações que precisa sobre o layout de uma rede e pode, portanto, especificar o seu próprio caminho melhor para chegar ao seu destino.
Ao usar o roteamento de origem, um invasor pode ser capaz de alcançar um sistema que normalmente não seria acessível. Estes sistemas podem incluir aqueles com endereços IP privados ou aqueles que estão protegidos em condições normais da Internet. O invasor pode até mesmo ser capaz de realizar IP spoofing, complicando ainda mais a detecção e rastreamento do ataque, tornando a origem do pacote desconhecida ou diferente da sua origem real.
Felizmente, a maneira mais fácil de impedir o roteamento de origem é configurar os roteadores para ignorar quaisquer tentativas de roteamento de origem na rede privada controlada.
Fragmentation
O atacante usa a técnica de fragmentação IP para criar fragmentos extremamente pequenos e forçar as informações de cabeçalho TCP para o próximo fragmento. Isso pode resultar em um caso em que o campo de sinalizadores TCP é forçado para o segundo fragmento, enquanto os filtros podem verificar esses sinalizadores apenas no primeiro octeto. Assim, o IDS ignora os sinalizadores TCP.
Para causar a fragmentação do tráfego no Nmap você pode usar o seguinte comando:
Nmap -sS -sV -f <endereço ip ou nome do host do destino>
Note que o -f instrui o Nmap a quebrar o scan que está sendo realizado aqui em fragmentos de 8 bytes, que podem ser capazes de passar por medidas defensivas entre o scanner e o alvo.
Duas formas de fragmentação podem ser usadas para derrotar um IDS, que são questões relacionadas à remontagem e sobreposição de fragmentos.
No primeiro caso, a remontagem de fragmentos é explorada por um atacante que fragmenta o tráfego intencionalmente. Sob condições normais, os fragmentos são recebidos pelo hospedeiro pretendido e, como cada fragmento é numerado, o hospedeiro sabe montá-los.
No entanto, para enganar um IDS, um invasor pode explorar uma fraqueza em alguns IDSs enviando os pacotes fora de ordem, o que alguns IDSs não conseguem lidar. Também é possível fragmentar o tráfego, mas enviando apenas alguns dos fragmentos, o IDS deve armazenar os fragmentos até que o último bit chegue. O problema aqui é que eles nunca chegam e o IDS irá armazená-los na memória enquanto espera. Se um atacante fizer isso com tráfego suficiente, a memória do IDS será usada.
No caso de fragmentos sobrepostos, o IDS é forçado a lidar com fragmentos que não serão remontados da maneira correta. Isso significa que os fragmentos podem se sobrepor ou não se encaixam em conjunto, de modo que o IDS falhará ao tentar lidar com eles.
Endereços IP para acessar sites
Um mecanismo que é eficaz em alguns casos em evadir ou ignorar um firewall é o uso de um endereço IP no lugar de um URL. Uma vez que alguns firewalls olhar apenas para URLs em vez dos endereços IP reais, usar o endereço para acessar um site pode permitir que um atacante para contornar o dispositivo.
Mecanismos como host2ip podem converter uma URL para um endereço IP, potencialmente permitindo que esse endereço seja usado em um navegador para ignorar o firewall.
Outros mecanismos que são um pouco semelhantes a esta técnica estão usando anonimizadores do site e servidores proxy públicos abertos para contornar os firewalls ou restrições de sites de uma empresa.
ICMP Tunneling
Ainda outro método para contornar ou evadir um firewall é através do uso de tunelamento ICMP. ICMP pode ser usado para ignorar um firewall através de uma parte pouco conhecida da especificação RFC 792 (responsável pela definição da operação de ICMP). ICMP define o formato e a estrutura do pacote, mas não o que o pacote carrega como parte da sua porção de dados. Devido a esta definição ambígua da porção de dados, o conteúdo pode ser completamente arbitrário, permitindo assim que uma gama diversificada de itens sejam incluídos na secção de dados. Esta seção pode incluir informações sobre aplicativos que podem abrir um canal secreto ou implantar um malware. O resultado pode ser que os firewalls de uma organização sejam abertos.
Uma ferramenta que é eficaz na realização deste tipo de tarefa é Loki, que tem a capacidade de tunelar comandos dentro de um pacote de ICMP echo. Outras ferramentas semelhantes são NCovert e 007shell, que permitem a elaboração de pacotes que podem ser usados para ignorar um firewall.
ACK Tunneling
Você também pode usar ACK tunneling para ignorar o exame detalhe de um firewall. O tunelamento ACK explora o fato de que alguns firewalls não verificam pacotes configurados com o bit ACK. A razão para esse lapso é que o pacote ACK é usado para responder ao tráfego anterior, e assumiu como legítimo, que já foi aprovado.
Um invasor pode aproveitar essa falha enviando pacotes com o sinalizador ACK definido usando uma ferramenta como AckCmd.
HTTP Tunneling
Uma variação adicional do método de tunelamento envolve a exploração de HTTP. Este método pode ser um dos mais fáceis de usar principalmente porque o protocolo já é permitido através de muitos firewalls como parte de operações normais. O tráfego HTTP é considerado normal porque quase todas as empresas precisam ter acesso à Internet ou fornecer acesso público a recursos, como servidores web e aplicativos da Web.
Uma ferramenta que pode ser usada para explorar essa situação é HTTPTunnel, que usa uma arquitetura cliente-servidor para facilitar sua operação.
Testando um Firewall e IDS
Com tantas técnicas e mecanismos à sua disposição, agora você pode testar suas capacidades defensivas e de monitoramento.
Visão geral do teste de um firewall
A seguir estão os passos gerais para testar a integridade e a capacidade de um firewall, seja ele baseado em hardware ou software:
- Faça um footprinting do alvo;
- Execute um scan de portas;
- Execute o banner grabbing nas portas abertas;
- Execute o firewalking;
- Desative hosts confiáveis;
- Execute a falsificação de endereço IP (IP spoofing);
- Execute o roteamento de origem;
- Substitua um endereço IP para uma URL;
- Execute um ataque de fragmentação;
- Use um anonymizer;
- Faça uso de um servidor proxy para ignorar o firewall;
- Use ICMP tunneling;
- Use ACK tunneling.
Visão geral do teste de um IDS
Assim como testar um firewall, existe um processo geral para testar um IDS. Ele tende a ser algo como o seguinte:
- Desative os hosts confiáveis;
- Tente um ataque de inserção;
- Implemente técnicas de evasão;
- Execute um DoS;
- Use obscurecimento de código;
- Realize uma técnica de geração falso-positiva;
- Tente um ataque Unicode;
- Execute um ataque de fragmentação.
É importante lembrar que nem todos os ataques funcionarão ao testar um firewall ou IDS, mas você ainda deve registrar os resultados e anotar o modo como os dispositivos respondem. Quando o teste estiver completo, compare e analise os resultados para ver se você pode determinar quaisquer padrões ou comportamentos que possam indicar a natureza do ambiente ou vulnerabilidades presentes.
Sugestões de livros:
Você é o cara!