hacktricks/src/network-services-pentesting/5353-udp-multicast-dns-mdns.md

62 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 5353/UDP Multicast DNS (mDNS) та DNS-SD
{{#include ../banners/hacktricks-training.md}}
## **Основна інформація**
**Multicast DNS (mDNS)** дозволяє **операції, подібні до DNS**, у локальних мережах без необхідності в традиційному DNS-сервері. Він працює на **UDP порту 5353** і дозволяє пристроям виявляти одне одного та свої послуги, що часто спостерігається в різних IoT-пристроях. **DNS Service Discovery (DNS-SD)**, який часто використовується разом з mDNS, допомагає в ідентифікації послуг, доступних у мережі, через стандартні DNS-запити.
```
PORT STATE SERVICE
5353/udp open zeroconf
```
### **Операція mDNS**
У середовищах без стандартного DNS-сервера mDNS дозволяє пристроям розв'язувати доменні імена, що закінчуються на **.local**, запитуючи мультикаст-адресу **224.0.0.251** (IPv4) або **FF02::FB** (IPv6). Важливими аспектами mDNS є значення **Time-to-Live (TTL)**, що вказує на дійсність запису, та **QU bit**, що розрізняє уніicast та мультикаст запити. З точки зору безпеки, важливо, щоб реалізації mDNS перевіряли, що адреса джерела пакета відповідає локальній підмережі.
### **Функціонування DNS-SD**
DNS-SD полегшує виявлення мережевих сервісів, запитуючи записи вказівників (PTR), які відображають типи сервісів на їхні екземпляри. Сервіси ідентифікуються за допомогою шаблону **\_\<Service>.\_tcp або \_\<Service>.\_udp** в домені **.local**, що призводить до виявлення відповідних **SRV** та **TXT записів**, які надають детальну інформацію про сервіс.
### **Дослідження мережі**
#### **Використання nmap**
Корисна команда для сканування локальної мережі на наявність mDNS сервісів:
```bash
nmap -Pn -sUC -p5353 [target IP address]
```
Ця команда допомагає виявити відкриті порти mDNS та сервіси, які рекламуються через них.
#### **Перерахунок мережі з Pholus**
Щоб активно надсилати запити mDNS та захоплювати трафік, інструмент **Pholus** можна використовувати наступним чином:
```bash
sudo python3 pholus3.py [network interface] -rq -stimeout 10
```
## Атаки
### **Використання mDNS Пробування**
Атакуючий вектор полягає у відправці підроблених відповідей на mDNS проби, що свідчить про те, що всі потенційні імена вже використовуються, тим самим ускладнюючи новим пристроям вибір унікального імені. Це можна виконати за допомогою:
```bash
sudo python pholus.py [network interface] -afre -stimeout 1000
```
Ця техніка ефективно блокує нові пристрої від реєстрації своїх послуг у мережі.
**У підсумку**, розуміння роботи mDNS та DNS-SD є критично важливим для управління мережею та безпеки. Інструменти, такі як **nmap** та **Pholus**, пропонують цінну інформацію про локальні мережеві послуги, тоді як усвідомлення потенційних вразливостей допомагає захиститися від атак.
### Спуфінг/MitM
Найцікавіша атака, яку ви можете виконати через цю службу, - це виконати **MitM** у **зв'язку між клієнтом та реальним сервером**. Ви можете отримати чутливі файли (MitM зв'язок з принтером) або навіть облікові дані (автентифікація Windows).\
Для отримання додаткової інформації перегляньте:
{{#ref}}
../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
{{#endref}}
## Посилання
- [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}}