<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
Multicast DNS (mDNS) é um **protocolo de configuração zero** que permite realizar **operações semelhantes ao DNS** na rede local na ausência de um servidor DNS unicast convencional. O protocolo utiliza a **mesma** API, **formatos de pacotes** e semânticas de operação que o DNS, permitindo resolver nomes de domínio na rede local. **DNS Service Discovery (DNS-SD)** é um protocolo que permite aos clientes **descobrir uma lista de instâncias nomeadas de serviços** (como test.\_ipps.\_tcp.local ou linux.\_ssh.\_tcp.local) em um domínio usando consultas DNS padrão. DNS-SD é mais frequentemente usado em conjunto com mDNS, mas não depende dele. Ambos são usados por muitos dispositivos IoT, como impressoras de rede, Apple TVs, Google Chromecast, dispositivos de armazenamento conectados à rede (NAS) e câmeras.\
Dispositivos usam mDNS quando a rede local **carece** de um **servidor DNS unicast** convencional. Para resolver um nome de domínio para um endereço local usando mDNS, o dispositivo envia uma **consulta DNS para um nome de domínio** terminado em **.local** para o **endereço multicast** 224.0.0.251 (para IPv4) ou FF02::FB (para IPv6). Você também pode usar mDNS para resolver **nomes de domínio globais** (não terminados em .local), mas as implementações de mDNS devem **desativar** esse comportamento por padrão. Solicitações e respostas mDNS usam **UDP** e **porta 5353** como porta de origem e destino.
As respostas mDNS contêm várias flags importantes, incluindo um valor de **Time-to-Live** (TTL) que indica quantos segundos o registro é válido. Enviar uma resposta com **TTL=0 significa que o registro correspondente deve ser apagado**. Outra flag importante é o bit QU, que indica se a consulta é uma consulta unicast ou não. Se o **bit QU não estiver definido**, o pacote é uma consulta **multicast** (QM). Como é possível **receber consultas unicast fora do link local**, implementações seguras de mDNS devem sempre **verificar se o endereço de origem no pacote corresponde à faixa de endereço da sub-rede local**.
DNS-SD permite que clientes **descubram serviços disponíveis na rede**. Para usá-lo, clientes enviam consultas DNS padrão para registros de ponteiros (PTR), que mapeiam o tipo de serviço para uma lista de nomes de instâncias específicas desse tipo de serviço.
Para solicitar um registro PTR, clientes usam o formato de nome "\<Serviço>.\<Domínio>". A parte **\<Serviço>** é o **nome do serviço** precedido por "\_" (por exemplo, \_ipps, \_printer ou \_ipp) e **\_tcp ou \_udp**. A parte **\<Domínio>** é "**.local**".\
**Respondentes** então retornam os registros PTR que apontam para os acompanhantes registros de **serviço (SRV)** e **texto (TXT)**. Aqui está um exemplo de um registro PTR:
A parte do registro PTR à **esquerda** do dois pontos é o seu **nome**, e a parte à **direita** é o registro **SRV** ao qual o registro PTR aponta. O registro **SRV** lista o **host** alvo e a **porta** onde a instância do **serviço** pode ser alcançada. Por exemplo, a próxima imagem mostra um registro SRV "test.\_ipps.\_tcp.local" no Wireshark no host ubuntu.local e porta 8000:
Portanto, o **nome do registro SRV** é **semelhante** ao registro **PTR****precedido** pelo nome da **\<Instância>** (test neste caso). O registro **TXT** tem o **mesmo****nome** que o registro **SRV** e contém as informações necessárias quando o endereço IP e o número da porta (contidos no registro SRV) para um serviço não são suficientes para identificá-lo.
Você pode usar a ferramenta [**Pholus**](https://github.com/aatlasis/Pholus/) para enviar solicitações mDNS (-rq) na rede local e capturar o tráfego mDNS multicast (por -stimeout 10 segundos):
Quando um respondedor mDNS inicia ou altera sua conectividade, ele pergunta à rede local se há **algum recurso com o nome que planeja usar**. Se a resposta contiver o registro em questão, o host de sondagem **deve escolher um novo nome**. Se 15 conflitos ocorrerem em 10 segundos, o host deve então esperar pelo menos cinco segundos antes de qualquer tentativa adicional. Além disso, se passar um minuto durante o qual o host não conseguir encontrar um nome não utilizado, ele relata um erro ao usuário.
O ataque mais interessante que você pode realizar sobre este serviço é realizar um **MitM** na **comunicação entre o cliente e o servidor real**. Você pode ser capaz de obter arquivos sensíveis (MitM na comunicação com a impressora) ou até mesmo credenciais (autenticação do Windows).\
* [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)
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas dicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.