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

15 KiB

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

Learn AWS hacking from zero to hero with htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

मूल जानकारी

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

PORT     STATE SERVICE
5353/udp open  zeroconf

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

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

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

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

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

PTR रिकॉर्ड का अनुरोध करने के लिए, ग्राहक नाम फॉर्म "<Service>.<Domain>" का उपयोग करते हैं। <Service> भाग सेवा का नाम होता है जिसके आगे "_" (उदाहरण के लिए, _ipps, _printer, या _ipp) और या तो _tcp या _udp<Domain> भाग है ".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

Spoofing/MitM

इस सेवा पर आप जो सबसे रोचक हमला कर सकते हैं, वह है क्लाइंट और असली सर्वर के बीच संचार में MitM करना। आप संवेदनशील फाइलें प्राप्त कर सकते हैं (प्रिंटर के साथ संचार में MitM) या यहां तक कि प्रमाण-पत्र (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 %}

संदर्भ

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके: