Existe uma boa frase que diz: “A genialidade está nas coisas simples”. Ao contrário do que pensam as pessoas, os hackers não trabalham 24 horas por dia em tarefas de adivinhação de senhas do seu perfil do Facebook ou de sua conta de e-mail corporativo. Utilizam-se de artifícios simples, mas que passam despercebidos pela maioria de nós. Na nossa vida de analista nos preocupamos demais quando um fabricante atualiza uma versão de algum software. É importante sabermos o que mudou em relação a uma versão no que diz respeito a vulnerabilidades.
Agora, pense no seguinte exemplo. Se alguém mal intencionado consegue ver quais as versões das ferramentas que você utiliza diariamente para manter o seu ambiente, ele pode fazer uma consulta rápida na Internet e ver quais vulnerabilidades ainda estão abertas na versão que você está utilizando. Pense no leque de opções que ele terá a partir desse ponto. Ele conseguirá, com um pouco de esforço, explorar esta vulnerabilidade e ter acesso ao seu ambiente.
Conseguir essa informação é mais simples do que parece no DNS. Vamos demonstrar abaixo como obter essa informação e como ocultá-la para dificultar o trabalho de um invasor, protegendo-se de ataques direcionados ao DNS. Num prompt de comando, vamos executar uma consulta simples de DNS para um servidor executando o seguinte comando:
Linux:
dig chaos txt version.bind @(endereço_do_servidor_alvo) +short
Windows: Digite, em ordem:
Nslookup
server <IP_do_servidor_alvo>
set class=chaos
Set type=txt
version.bind
Veja o que a consulta retorna.
É possível deduzir que este cliente utiliza o Bind na versão 9.7.3. Para DNS Microsoft, a coisa fica um pouco mais explícita.
É possível ocultar essa informação nas duas plataformas. Vamos primeiro mostrar como isso é feito no Bind. Para isso, precisamos definir uma opção de configuração que oculte a versão do DNS Bind. Precisamos primeiro identificar onde estão definidas as opções.
- Localize o arquivo de configuração do Bind e mostre o conteúdo dele na tela.
O arquivo geralmente se encontra em /etc/bind/named ou em var/named
Este é um arquivo de configuração default. Nele, vemos que não existem configuracões, apenas referências para outros arquivos de configuração. O interessante para nós é o arquivo /etc/bind/named.conf.options, que nos sugere que ele seja o responsável por armazenar as opções de configuração do Bind.Vamos então editar este arquivo com o VIAdicione a seguinte linha no final do arquivo
version “<texto_livre>”;
A imagem abaixo exibe um exemplo da configuração.
Salve o arquivo ao finalizar. De volta ao console, reinicie o serviço do bind com o comando:
/etc/init.d/bind9 restart
Nota: No comando, “bind9” pode ser substituído por “named” dependendo da sua distribuição Linux.
Agora, vamos tentar novamente obter a informação da versão do bind deste servidor.
Voilá! Agora, vamos ver como realizar a tarefa para o DNS Microsoft.
Para fazer a configuração no Microsoft, é preciso se conectar ao servidor de DNS alvo e abrir o prompt de comando. Vamos utilizar a biblioteca de comandos “DNSCMD” para alterar a variável EnableVersionQuery.Em primeiro lugar, a Microsoft não esconde de ninguém que exibe essa informação quando seu DNS é consultado e até fornece métodos para configurar a resposta.
Fonte: https://msdn.microsoft.com/en-us/library/cc422472.aspx
Vamos considerar para o nosso exemplo que não queremos que nenhuma informação seja exibida.
No prompt de comando, digite:
dnscmd /config /EnableVersionQuery 0
Nota: verifique que seu usuário tem permissão suficiente para executar o comando ou a execução falhará.
Executando como administrador:
Agora, vamos repetir a consulta ao DNS Microsoft. Perceba que a resposta volta vazia.
Vemos por meio do exemplo acima como é fácil um terceiro obter informações do seu ambiente com um simples comando e como fechar essa porta. Note que essa configuração não deve ser usada como pretexto para não trabalhar com versões mais recentes de software. Independente de qual solução você utiliza, conhecer o seu ambiente é a melhor forma de protegê-lo. Fique atento, pois o mundo desconhecido fora dos limites do seu firewall também se esforça pra isso. Até a próxima!