# 5353/UDP Multicast DNS (mDNS) e DNS-SD {{#include ../banners/hacktricks-training.md}} ## **Informações Básicas** **Multicast DNS (mDNS)** permite operações **semelhantes ao DNS** dentro de redes locais sem a necessidade de um servidor DNS tradicional. Ele opera na **porta UDP 5353** e permite que dispositivos descubram uns aos outros e seus serviços, comumente vistos em vários dispositivos IoT. **DNS Service Discovery (DNS-SD)**, frequentemente usado junto com mDNS, ajuda a identificar serviços disponíveis na rede através de consultas DNS padrão. ``` PORT STATE SERVICE 5353/udp open zeroconf ``` ### **Operação do mDNS** Em ambientes sem um servidor DNS padrão, o mDNS permite que dispositivos resolvam nomes de domínio terminando em **.local** consultando o endereço multicast **224.0.0.251** (IPv4) ou **FF02::FB** (IPv6). Aspectos importantes do mDNS incluem um valor de **Time-to-Live (TTL)** que indica a validade do registro e um **bit QU** que distingue entre consultas unicast e multicast. Em termos de segurança, é crucial que as implementações de mDNS verifiquem se o endereço de origem do pacote está alinhado com a sub-rede local. ### **Funcionamento do DNS-SD** O DNS-SD facilita a descoberta de serviços de rede consultando registros de ponteiro (PTR) que mapeiam tipos de serviço para suas instâncias. Os serviços são identificados usando um padrão **\_\.\_tcp ou \_\.\_udp** dentro do domínio **.local**, levando à descoberta de correspondentes **SRV** e **TXT records** que fornecem informações detalhadas sobre o serviço. ### **Exploração de Rede** #### **Uso do nmap** Um comando útil para escanear a rede local em busca de serviços mDNS é: ```bash nmap -Pn -sUC -p5353 [target IP address] ``` Este comando ajuda a identificar portas mDNS abertas e os serviços anunciados por elas. #### **Enumeração de Rede com Pholus** Para enviar ativamente solicitações mDNS e capturar tráfego, a ferramenta **Pholus** pode ser utilizada da seguinte forma: ```bash sudo python3 pholus3.py [network interface] -rq -stimeout 10 ``` ## Ataques ### **Explorando a Probing do mDNS** Um vetor de ataque envolve o envio de respostas falsificadas para as sondas mDNS, sugerindo que todos os nomes potenciais já estão em uso, dificultando que novos dispositivos selecionem um nome único. Isso pode ser executado usando: ```bash sudo python pholus.py [network interface] -afre -stimeout 1000 ``` Esta técnica bloqueia efetivamente novos dispositivos de registrarem seus serviços na rede. **Em resumo**, entender o funcionamento do mDNS e DNS-SD é crucial para a gestão e segurança da rede. Ferramentas como **nmap** e **Pholus** oferecem insights valiosos sobre os serviços de rede local, enquanto a conscientização sobre vulnerabilidades potenciais ajuda a proteger contra ataques. ### Spoofing/MitM O ataque mais interessante que você pode realizar sobre este serviço é executar um **MitM** na **comunicação entre o cliente e o servidor real**. Você pode ser capaz de obter arquivos sensíveis (MitM a comunicação com a impressora) ou até mesmo credenciais (autenticação do Windows).\ Para mais informações, consulte: {{#ref}} ../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md {{#endref}} ## Referências - [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical_IoT_Hacking.html?id=GbYEEAAAQBAJ&redir_esc=y) {{#include ../banners/hacktricks-training.md}}