DNS Cache Snooping

08:55 Adriano Rocha 0 Comentarios






DNS (Domain Name System) é um protocolo que tem como função traduzir nomes para endereços IPs, sendo o sistema utilizado por praticamente todos os sistemas que estão na internet. Entretanto, quando um servidor de DNS está com alguma configuração incorreta, pode comprometer a aplicação, pois acaba fornecendo informações que podem ser utilizadas para os atacantes.

Neste artigo, falaremos sobre o DNS Cache Snooping, que é quando um atacante consulta um servidor DNS afim de descobrir se um determinado endereço está registrado em cache ou não naquele servidor DNS. Ou seja, o atacante faz uma query no servidor DNS do alvo, afim de descobrir se o mesmo visitou um determinado endereçou ou não.
Essa técnica costuma ser utilizada para obter informações sobre o empresa, como quais endereços são frequentemente utilizados. Com isso, um atacante pode planejar a execução de um ataque, como um phishing elaborado.

   
Exemplo prático:


Um servidor DNS está suscetível ao ataque de DNS Cache Snooping, se for possível fazer uma consulta afim de procurar endereços já resolvidos pelo mesmo. Na figura abaixo, nós tentamos obter o endereço IP de um determinado hostname.  


Primeiramente acima, tentamos executar o comando com a opção –norecurse e obtemos a resposta que não foi possível encontrar o hostname.


 

Depois disso, usamos a opção –recurse, que revela o IP relativo ao hostname. Se executássemos o nslookup com a opção –norecurse novamente, a resposta com o retorno do IP tornaria a aparecer. A razão disso acontecer, é que quando a opção –recurse foi usada, o servidor DNS guardou em cache a resposta e retornou o resultado também quando utilizado a opção –norecurse com a ferramenta nslookup. O exemplo acima demonstra que o servidor DNS está suscetível ao ataque de DNS cache snooping.  

Outro método para verificar é utilizando a ferramenta dig, informando o dns e endereço alvos, seja recursivo ou não. A linha de comando ficaria:

dig @ns.teste.br alvo.com.br A +norecurse

Neste exemplo a consulta é feita e caso o endereço esteja em cache, exibira algo como ANSWER:1 e os respectivos dados, caso contrário será exibido ANSWER:0. Ocorre que mesmo que o retorno seja 0 em primeira instância, na segunda será 1, pois opôs a consulta o mesmo estará em cache.
Também é possível analisar devido ao tempo de resposta, comparando o TTL das duas consultas, caso na segunda consulta esteja muito baixo comparado ao primeiro, também pode caracterizar vulnerável.
O Nmap, ferramenta conhecida por muitos e já abordada neste blog, tem um script que verifica os domínios em cache, o comando por default é não recursivo. Ao testarmos o script no DNS do Google, temos o retorno conforme imagem:





Como Proteger

A proteção consiste em filtrar os acessos ao seus servidores recursivos. Caso esteja fornecendo uma resolução de DNS, é possível limitar o acesso apenas para os clientes confiáveis.

Referencias:


0 comentários: