hacktricks/network-services-pentesting/5353-udp-multicast-dns-mdns.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

17 KiB

5353/UDP मल्टीकास्ट DNS (mDNS) और DNS-SD

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

मूलभूत जानकारी

मल्टीकास्ट DNS (mDNS) एक शून्य-कॉन्फ़िगरेशन प्रोटोकॉल है जो आपको एक साधारित, यूनिकास्ट DNS सर्वर के अभाव में स्थानीय नेटवर्क पर DNS-जैसे आपरेशन करने की अनुमति देता है। यह प्रोटोकॉल DNS के समान API, पैकेट प्रारूप और संचालनीय अर्थशास्त्र का उपयोग करता है, जिससे आप स्थानीय नेटवर्क पर डोमेन नामों को हल कर सकते हैं। DNS सेवा खोज (DNS-SD) एक प्रोटोकॉल है जो ग्राहकों को स्थानीय नेटवर्क में एक नामित सेवाओं की सूची की खोज करने की अनुमति देता है (जैसे test._ipps._tcp.local, या linux._ssh._tcp.local) मानक DNS क्वेरी का उपयोग करके। DNS-SD अक्सर mDNS के साथ उपयोग किया जाता है, लेकिन इसकी आवश्यकता नहीं है। यह दोनों को बहुत सारे IoT उपकरणों द्वारा उपयोग किया जाता है, जैसे नेटवर्क प्रिंटर, Apple TV, Google Chromecast, नेटवर्क-संलग्न भंडारण (NAS) उपकरण और कैमरे।
डिफ़ॉल्ट पोर्ट: 5353/UDP

PORT     STATE SERVICE
5353/udp open  zeroconf

कैसे mDNS काम करता है

उपकरण mDNS का उपयोग करते हैं जब स्थानीय नेटवर्क में कोई साधारित यूनिकास्ट DNS सर्वर नहीं होता है। mDNS का उपयोग करके स्थानीय पते के लिए एक डोमेन नाम को हल करने के लिए, उपकरण एक डोमेन नाम के लिए DNS क्वेरी भेजता है जो .local से समाप्त होता है, 224.0.0.251 (IPv4 के लिए) या FF02::FB (IPv6 के लिए) के मल्टीकास्ट पते पर। आप mDNS का उपयोग करके वैश्विक डोमेन नामों (non .local वाले) को भी हल कर सकते हैं, लेकिन mDNS के अनुपालन को डिफ़ॉल्ट रूप से अक्षम कर दिया जाना चाहिए। mDNS के अनुरोध और प्रतिक्रियाएँ UDP और पोर्ट 5353 का उपयोग करती हैं जैसे कि स्रोत और गंतव्य पोर्ट दोनों ही होते हैं।

mDNS प्रतिक्रियाएँ कई महत्वपूर्ण फ़्लैग्स को समेत करती हैं, जिनमें से एक Time-to-Live (TTL) मान होता है जो यह संकेत करता है कि रिकॉर्ड कितने सेकंड तक मान्य है। TTL=0 के साथ एक प्रतिक्रिया भेजना यह दर्शाता है कि संबंधित रिकॉर्ड को साफ कर दिया जाना चाहिए। एक और महत्वपूर्ण फ़्लैग है QU बिट, जो यह दर्शाता है कि क्वेरी यूनिकास्ट क्वेरी है या नहीं। यदि QU बिट सेट नहीं है, तो पैकेट एक मल्टीकास्ट क्वेरी (QM) होता है। क्योंकि स्थानीय लिंक के बाहर से यूनिकास्ट क्वेरी प्राप्त करना संभव है, सुरक्षित mDNS अनुपालन करने वाले अमलानुसार हमेशा यह जांचें कि पैकेट में स्रोत पता स्थानीय सबनेट पता सीमा के साथ मेल खाता है या नहीं

DNS-SD कैसे काम करता है

DNS-SD क्लाइंट्स को नेटवर्क पर उपलब्ध सेवाओं की खोज करने की अनुमति देता है। इसका उपयोग करने के लिए, क्लाइंट्स साधारित DNS क्वेरी भेजते हैं पॉइंटर रिकॉर्ड (PTR) के लिए, जो सेवा के प्रकार को उस प्रकार की सेवा के विशिष्ट उदाहरणों के नामों की एक सूची से मैप करता है।

PTR रिकॉर्ड का अनुरोध करने के लिए, क्लाइंट्स नाम रूप "<सेवा>.<डोमेन>" का उपयोग करते हैं। <सेवा> भाग सेवा का नाम होता है जिससे पहले "_" लगाया जाता है (उदाहरण के लिए, _ipps, _printer, या _ipp) और या तो _tcp या _udp<डोमेन> भाग ".local" होता है।
प्रतिक्रियाएँ फिर PTR रिकॉर्ड्स लौटाते हैं जो संबंधित सेवा (SRV) और टेक्स्ट (TXT) रिकॉर्ड्स को पॉइंट करते हैं। यहां एक PTR रिकॉर्ड का उदाहरण है:

_ipps._tcp.local: type PTR, class IN, test._ipps._tcp.local

PTR रिकॉर्ड के द्वारा दिए गए आदेश के बाएं भाग को उसका नाम कहा जाता है, और दाएं भाग में वह SRV रिकॉर्ड है जिसे PTR रिकॉर्ड का निशान करता है। SRV रिकॉर्ड में लक्षित होस्ट और पोर्ट की सूची होती है जहां सेवा उदाहरण के लिए पहुंच सकती है। उदाहरण के लिए, अगली छवि में Wireshark में "test._ipps._tcp.local" SRV रिकॉर्ड दिखाया गया है जो होस्ट ubuntu.local और पोर्ट 8000 पर है:

इसलिए, SRV रिकॉर्ड का नाम PTR रिकॉर्ड के पहले आने वाले <Instance> नाम (इस मामले में test) की तरह होता है। TXT में SRV रिकॉर्ड के समान नाम होता है और यह जानकारी साझा करता है जब सेवा को पहचानने के लिए IP पता और पोर्ट नंबर (SRV रिकॉर्ड में समाहित) पर्याप्त नहीं होते हैं।

गणना

nmap

nmap -Pn -sUC -p5353 192.168.1.2

Starting Nmap 6.46 (http://nmap.org) at 2015-01-01 10:30 GMT
Nmap scan report for 192.168.1.2
PORT     STATE SERVICE
5353/udp open  zeroconf
| dns-service-discovery:
|   9/tcp workstation
|     Address=192.168.1.2
|   22/tcp ssh
|     Address=192.168.1.2
|   22/tcp sftp-ssh
|     Address=192.168.1.2
|   445/tcp smb
|     Address=192.168.1.2

नेटवर्क जांच

आप साधारणतया mDNS अनुरोध भेजकर और मल्टीकास्ट mDNS ट्रैफिक को कैप्चर करके स्थानीय नेटवर्क के बारे में बहुत कुछ सीख सकते हैं।

आप लोकल नेटवर्क पर mDNS अनुरोध (-rq) भेजने और मल्टीकास्ट mDNS ट्रैफिक को कैप्चर करने के लिए टूल Pholus का उपयोग कर सकते हैं (10 सेकंड के लिए -stimeout):

sudo python3 pholus3.py eth0 -rq -stimeout 10

हमले

mDNS प्रोबिंग चरण का दुरुपयोग

जब एक mDNS प्रतिक्रियाता सक्रिय होती है या अपनी कनेक्टिविटी में परिवर्तन करती है, तो वह स्थानीय नेटवर्क से पूछती है कि क्या कोई संसाधन उपयोग करने के लिए उसके योजनित नाम के साथ कोई संसाधन है। यदि उत्तर में सवाल का रिकॉर्ड होता है, तो प्रोबिंग होस्ट एक नया नाम चुनना चाहिए। यदि 10 सेकंड के भीतर 15 संघर्ष होते हैं, तो होस्ट को फिर से कोई अतिरिक्त प्रयास करने से पहले कम से कम पांच सेकंड तक प्रतीक्षा करनी चाहिए। इसके अलावा, यदि एक मिनट के दौरान होस्ट को कोई अप्रयुक्त नाम नहीं मिलता है, तो वह उपयोगकर्ता को त्रुटि रिपोर्ट करता है।

निम्नलिखित कमांड लाइन नए उपकरण को किसी नए नाम को प्राप्त करने से रोकेगी क्योंकि इससे पता चलेगा कि कोई नाम पहले से ही लिया गया है:

sudo python pholus.py eth0 -afre -stimeout 1000

स्पूफिंग/मिटएम

इस सेवा पर आप सबसे दिलचस्प हमला कर सकते हैं, यह है कि आप ग्राहक और वास्तविक सर्वर के बीच कम्यूनिकेशन में मिटएम कर सकते हैं। आप संभवतः संवेदनशील फ़ाइलें (प्रिंटर के साथ कम्यूनिकेशन को मिटएम करें) या क्रेडेंशियल्स (Windows प्रमाणीकरण) प्राप्त कर सकते हैं।
अधिक जानकारी के लिए देखें:

{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %} spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md {% endcontent-ref %}

संदर्भ

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥