Spawnzao

Vulnerabilidade nos Protocolos mDNS e DNS-SD

Por em 29/11/2018 - 37 views

De maneira geral, o mDNS [RFC 6762] é um protocolo DNS Multicast, isto é, repassa a mesma mensagem para múltiplos destinatários simultaneamente, e o DNS-SD [RFC 6763] permite encontrar e divulgar instâncias de um serviço desejado na rede. É um método para descoberta de vizinhos em uma LAN, similar ao protocolo UPnP que usa HTTP, ao invés do DNS.

  • mDNS: usa UDP porta 5353 (origem e destino)
  • DNS-SD: usa o DNS unicast e multicast

Os 2 protocolos foram projetados pela Apple, e formam o ZeroConf (Zero Configuration Networking), um conjunto de técnicas que criam de forma automática uma rede IP, sem a necessidade de configuração ou servidores. Ele é usado por muitos dispositivos (Apple TV, Chromecast, home speakers, NAS devices, etc.)

Zero Conf = automatic IP configuration + host name resolution + target service discovery

Como saber se o seu host está vulnerável?

dig +short @IP -p 5353 -t any _services._dns-sd._udp.local 

Execute o comando acima, lembrando de trocar o “IP” pelo IP do seu host, de uma outra máquina. Se obtiver uma resposta diferente de timeout, você está vulnerável e está sujeito aos seguintes tipos de ataques:

  • Reconnaissance:
    • Discovery of available services
    • Querying a specific instance of a service
    • Discovering instances of a specific service
    • Advertised DNS Reverse Mapping
    • Implicit Network Sweeping
  • Spoofing Services / Man in the Middle Attacks
  • Denial of Service / Flooding
  • Remote unicast interaction (& implications)
  • Other potential attack vectors:
    • Potential overflow attempts
    • Unicast DNS Cache Poisoning

Considerando o pior dos casos, o DDoS (Amplification) Attack pode atingir um fator de amplificação de até 8x, vai depender da mensagem e do sistema Operacional. Além disso, ele pode ser aumentado ainda mais por serviços de anúncios de valores baixos de TTL (hosts will send queries due to forthcoming expiration).

Para ter informações mais detalhadas, você pode utilizar o script:

https://github.com/chadillac/mdns_recon

Como resolver o problema?

Você tem 2 opções:

  • Bloquear no firewall o acesso a porta 5353/UDP
  • Desativar o serviço, que no Linux por exemplo é o avahi-daemon

Para bloquear a porta 5353/UDP no firewall, execute:

iptables -A INPUT -p udp --dport 5353 -j DROP

Para desativar o serviço no CentOS 7, execute:

systemctl stop avahi-daemon.socket avahi-daemon.service
systemctl disable avahi-daemon.socket avahi-daemon.service

Para verificar se o serviço está rodando, execute:

netstat -navpu | grep 5353

Pronto, agora você pode descobrir se o seu servidor está vulnerável e como solucionar o problema.

:, , , , , , , , , , , , ,
No comments for this entry yet...

Leave a Reply

Licença

Creative Commons License

Techs

 Blog Tool, Publishing Platform, and CMS
Powered by PHP
Powered by MySQL
Mozilla Foundation
hacker emblem
Mozilla Foundation
Open Source Initiative
Creative Commons