Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
massdns — एक उच्च-प्रदर्शन DNS स्टब रिज़ॉल्वर, बल्क लुकअप और रीकॉनिसेंस (सबडोमेन एनुमरेशन) के लिए। | Kitploit
उपकरण/GitHubGitHub/blechschmidt/massdns
OSINT (खुला स्रोत खुफिया)टोहीDNS और सबडोमेन गणनाजानकारी एकत्र करनाDNS विश्लेषण
GitHubblechschmidt/massdns

massdns

एक उच्च-प्रदर्शन DNS स्टब रिज़ॉल्वर, बल्क लुकअप और रीकॉनिसेंस (सबडोमेन एनुमरेशन) के लिए।

रिपॉजिटरी देखें
3.6k5044 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

MassDNS

एक उच्च-प्रदर्शन DNS स्टब रिज़ॉल्वर

MassDNS एक सरल उच्च-प्रदर्शन DNS स्टब रिज़ॉल्वर है जो उन लोगों को लक्षित करता है जो लाखों या अरबों की संख्या में डोमेन नामों को हल करना चाहते हैं। बिना विशेष कॉन्फ़िगरेशन के, MassDNS सार्वजनिक रूप से उपलब्ध रिज़ॉल्वर का उपयोग करके प्रति सेकंड 350,000 से अधिक नामों को हल करने में सक्षम है।

योगदानकर्ता

  • Quirin Scheitle, म्यूनिख की तकनीकी विश्वविद्यालय

संकलन

गिट रिपॉजिटरी को क्लोन करें और प्रोजेक्ट रूट फ़ोल्डर में cd करें। फिर स्रोत से बनाने के लिए make चलाएँ। यदि आप लिनक्स पर नहीं हैं, तो make nolinux चलाएँ। विंडोज़ पर, Cygwin पैकेज gcc-core, git और make आवश्यक हैं।

उपयोग

root@kitploit:~
Usage: ./bin/massdns [options] [domainlist]
  -b  --bindto             Bind to IP address and port. (Default: 0.0.0.0:0)
      --busy-poll          Use busy-wait polling instead of epoll.
  -c  --resolve-count      Number of resolves for a name before giving up. (Default: 50)
      --drop-group         Group to drop privileges to when running as root. (Default: nogroup)
      --drop-user          User to drop privileges to when running as root. (Default: nobody)
      --extended-input     Input names are followed by a space-separated list of resolvers.
                           These are used before falling back to the resolvers file.
      --filter             Only output packets with the specified response code.
      --flush              Flush the output file whenever a response was received.
  -h  --help               Show this help.
      --ignore             Do not output packets with the specified response code.
  -i  --interval           Interval in milliseconds to wait between multiple resolves of the same
                           domain. (Default: 500)
  -l  --error-log          Error log file path. (Default: /dev/stderr)
      --norecurse          Use non-recursive queries. Useful for DNS cache snooping.
  -o  --output             Flags for output formatting.
      --predictable        Use resolvers incrementally. Useful for resolver tests.
      --processes          Number of processes to be used for resolving. (Default: 1)
  -q  --quiet              Quiet mode.
      --rand-src-ipv6      Use a random IPv6 address from the specified subnet for each query.
      --rand-src-ipv6-file Use a random IPv6 address from the specified file.
      --rcvbuf             Size of the receive buffer in bytes.
      --retry              Unacceptable DNS response codes.
                           (Default: All codes but NOERROR or NXDOMAIN)
  -r  --resolvers          Text file containing DNS resolvers.
      --root               Do not drop privileges when running as root. Not recommended.
  -s  --hashmap-size       Number of concurrent lookups. (Default: 10000)
      --sndbuf             Size of the send buffer in bytes.
      --status-format      Format for real-time status updates, json or ansi (Default: ansi)
      --sticky             Do not switch the resolver when retrying.
      --socket-count       Socket count per process. (Default: 1)
  -t  --type               Record type to be resolved. (Default: A)
      --verify-ip          Verify IP addresses of incoming replies.
  -w  --outfile            Write to the specified output file instead of standard output.

Output flags:
  L - domain list output
  S - simple text output
  F - full text output
  B - binary output
  J - ndjson output

Advanced flags for the domain list output mode:
  0 - Include NOERROR replies without answers.

Advanced flags for the simple output mode:
  d - Include records from the additional section.
  i - Indent any reply record.
  l - Separate replies using a line feed.
  m - Only output reply records that match the question name.
  n - Include records from the answer section.
  q - Print the question.
  r - Print the question with resolver IP address, Unix timestamp and return code prepended.
  s - Separate packet sections using a line feed.
  t - Include TTL and record class within the output.
  u - Include records from the authority section.

Advanced flags for the ndjson output mode:
  e - Write a record for each terminal query failure.

कमांड लाइन इंटरफ़ेस के विस्तृत विवरण के लिए, कृपया man ./doc/massdns.1 का उपयोग करके मैन पेज देखें।

उदाहरण

domains.txt में डोमेन के सभी AAAA रिकॉर्ड को lists में resolvers.txt के रिज़ॉल्वर का उपयोग करके हल करें और परिणामों को results.txt में संग्रहीत करें:

root@kitploit:~
$ ./bin/massdns -r lists/resolvers.txt -t AAAA domains.txt > results.txt

यह इसके समतुल्य है:

root@kitploit:~
$ ./bin/massdns -r lists/resolvers.txt -t AAAA -w results.txt domains.txt

उदाहरण आउटपुट

डिफ़ॉल्ट रूप से, MassDNS टेक्स्ट प्रारूप में प्रतिक्रिया पैकेट आउटपुट करेगा जो निम्नलिखित जैसा दिखता है:

root@kitploit:~
;; Server: 77.41.229.2:53
;; Size: 93
;; Unix time: 1513458347
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51298
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
example.com. IN A

;; ANSWER SECTION:
example.com. 45929 IN A 93.184.216.34

;; AUTHORITY SECTION:
example.com. 24852 IN NS b.iana-servers.net.
example.com. 24852 IN NS a.iana-servers.net.

रिज़ॉल्वर IP पता शामिल किया गया है ताकि यदि आपको लगे कि कुछ रिज़ॉल्वर खराब परिणाम उत्पन्न कर रहे हैं तो आउटपुट को फ़िल्टर करना आसान हो।

समाधान

रिपॉजिटरी में resolvers.txt फ़ाइल शामिल है जिसमें subbrute प्रोजेक्ट द्वारा प्रदान किए गए रिज़ॉल्वर का एक फ़िल्टर्ड उपसमूह है। कृपया ध्यान दें कि MassDNS का उपयोग उपयोग किए गए रिज़ॉल्वर पर महत्वपूर्ण भार डाल सकता है और इसके परिणामस्वरूप आपके ISP को दुरुपयोग की शिकायतें भेजी जा सकती हैं। यह भी ध्यान दें कि प्रदान किए गए रिज़ॉल्वर विश्वसनीय होने की गारंटी नहीं है। रिज़ॉल्वर सूची वर्तमान में पुरानी है और बड़ी संख्या में रिज़ॉल्वर निष्क्रिय हैं।

MassDNS का कस्टम, malloc-मुक्त DNS कार्यान्वयन वर्तमान में केवल सबसे सामान्य रिकॉर्ड का समर्थन करता है। आप सहयोग करके इसे बदलने में मदद करने के लिए स्वागत है।

PTR रिकॉर्ड

MassDNS में एक Python स्क्रिप्ट शामिल है जो आपको सभी IPv4 PTR रिकॉर्ड को हल करने की अनुमति देती है, उनके संबंधित क्वेरी को मानक आउटपुट पर प्रिंट करके।

root@kitploit:~
$ ./scripts/ptr.py | ./bin/massdns -r lists/resolvers.txt -t PTR -w ptr.txt

कृपया ध्यान दें कि in-addr.arpa के अंदर लेबल उलटे हैं। 1.2.3.4 के डोमेन नाम को हल करने के लिए, MassDNS इनपुट क्वेरी नाम के रूप में 4.3.2.1.in-addr.arpa की अपेक्षा करता है। परिणामस्वरूप, Python स्क्रिप्ट रिकॉर्ड को आरोही क्रम में हल नहीं करती है, जो एक लाभ है क्योंकि IPv4 सबनेट के नाम सर्वरों पर अचानक भारी स्पाइक्स से बचा जाता है।

सबडोमेन को ब्रूट-फ़ोर्स करके टोह लेना

टोह स्कैन जिम्मेदारी से करें और आधिकारिक नाम सर्वरों पर अत्यधिक भार न डालने के लिए -s पैरामीटर को समायोजित करें।

subbrute के समान, MassDNS आपको शामिल subbrute.py स्क्रिप्ट का उपयोग करके सबडोमेन को ब्रूट फ़ोर्स करने की अनुमति देता है:

root@kitploit:~
$ ./scripts/subbrute.py example.com lists/names.txt | ./bin/massdns -r lists/resolvers.txt -t A -o S -w results.txt

टोह लेने की एक अतिरिक्त विधि के रूप में, ct.py स्क्रिप्ट crt.sh से डेटा स्क्रैप करके सर्टिफिकेट पारदर्शिता लॉग से सबडोमेन निकालती है:

root@kitploit:~
$ ./scripts/ct.py example.com | ./bin/massdns -r lists/resolvers.txt -t A -o S -w results.txt

फ़ाइलें names.txt और names_small.txt, जिन्हें subbrute प्रोजेक्ट से कॉपी किया गया है, में सामान्यतः उपयोग किए जाने वाले सबडोमेन के नाम हैं। 1,000,000 से अधिक नामों वाले Jason Haddix के सबडोमेन संकलन या 9,000,000 मिलियन से अधिक नामों वाली Assetnote वर्डलिस्ट का उपयोग करने पर भी विचार करें।

MassDNS में scripts फ़ोल्डर में एक recon.py रैपर स्क्रिप्ट (बीटा स्थिति) भी शामिल है, जो सीधे आधिकारिक नाम सर्वरों के विरुद्ध सबडोमेन गणना करती है और इस प्रकार तीसरे पक्ष के रिज़ॉल्वर की आवश्यकता नहीं होती है। समवर्तीता MassDNS द्वारा स्वचालित रूप से निर्धारित की जाती है और विश्वसनीय परिणाम देते हुए प्रति सेकंड सैकड़ों हजारों क्वेरी का समर्थन करती है। एक सस्ते समर्पित सर्वर पर, Assetnode वर्डलिस्ट को एक मिनट से भी कम समय में गणना किया जा सकता है। वर्तमान सीमा यह है कि ज़ोन प्रतिनिधिमंडल को केवल प्रतिनिधिमंडल बिंदु तक ही संभाला जाता है। उदाहरण के लिए, यदि example.org की गणना की जाती है और sub.example.org को किसी अन्य नाम सर्वर को सौंपा जाता है, तो यदि वर्डलिस्ट में abc.sub शामिल है, तो abc.sub.example.org इस स्क्रिप्ट द्वारा नहीं मिलेगा। हालाँकि, इस मामले में स्क्रिप्ट इस तथ्य को ?.sub.example.org के रूप में रिपोर्ट करेगी।

root@kitploit:~
$ ./scripts/recon.py -d google.com -l lists/best-dns-wordlist.txt > google.txt

स्क्रीनशॉट

Screenshot

सुरक्षा

MassDNS को रूट विशेषाधिकारों की आवश्यकता नहीं है और इसलिए रूट के रूप में चलाए जाने पर डिफ़ॉल्ट रूप से "nobody" नामक उपयोगकर्ता को विशेषाधिकार छोड़ देता है। यदि उपयोगकर्ता "nobody" मौजूद नहीं है, तो MassDNS निष्पादन से इंकार कर देगा। इस मामले में, MassDNS को किसी अन्य गैर-विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में चलाने की अनुशंसा की जाती है। विशेषाधिकार ड्रॉप को --root तर्क का उपयोग करके दरकिनार किया जा सकता है, जो अनुशंसित नहीं है। यह भी ध्यान दें कि मास्टर के अलावा अन्य शाखाओं का उत्पादन में बिल्कुल उपयोग नहीं किया जाना चाहिए।

व्यावहारिक विचार

प्रदर्शन ट्यूनिंग

MassDNS एक सरल एकल-थ्रेडेड एप्लिकेशन है जो उन परिदृश्यों के लिए डिज़ाइन किया गया है जिनमें नेटवर्क अड़चन है। इसे उच्च अपलोड और डाउनलोड बैंडविड्थ वाले सर्वरों पर चलाने के लिए डिज़ाइन किया गया है। आंतरिक रूप से, MassDNS एक हैश मैप का उपयोग करता है जो लुकअप की समवर्तीता को नियंत्रित करता है। इसलिए आकार पैरामीटर -s सेट करने से आप लुकअप दर को नियंत्रित कर सकते हैं। यदि आप प्रदर्शन समस्याओं का सामना कर रहे हैं, तो बेहतर सफलता दर प्राप्त करने के लिए -s पैरामीटर को समायोजित करने का प्रयास करें।

दर सीमित करने से बचाव

यदि IPv6 रिज़ॉल्वर द्वारा दर सीमित करना एक समस्या है, तो आप --rand-src-ipv6 <your_ipv6_prefix> का उपयोग कर सकते हैं। MassDNS तब DNS पैकेट भेजने और प्राप्त करने के लिए एक रॉ सॉकेट का उपयोग करेगा और प्रत्येक क्वेरी के लिए निर्दिष्ट उपसर्ग से यादृच्छिक रूप से एक स्रोत IPv6 पता चुनेगा। इसके लिए आवश्यक है कि MassDNS को CAP_NET_RAW विशेषाधिकारों के साथ चलाया जाए। इस विधि का उपयोग करते समय, आपके पास iptables या nftables होना चाहिए जो MassDNS द्वारा प्राप्त DNS ट्रैफ़िक को छोड़ दे ताकि ऑपरेटिंग सिस्टम द्वारा कोई ICMP Port unreachable प्रतिक्रिया उत्पन्न न हो, उदाहरण के लिए ip6tables -p udp --sport 53 -I INPUT -j DROP का उपयोग करके। ध्यान दें कि यह नियम केवल उदाहरण है और यह अन्य अनुप्रयोगों के ट्रैफ़िक सहित सभी DNS ट्रैफ़िक को छोड़ देगा। आप अपने उपयोग के मामले में फिट होने के लिए नियम को अधिक सूक्ष्म बनाने के लिए अनुकूलित करना चाह सकते हैं।

परिणाम प्रामाणिकता

यदि परिणामों की प्रामाणिकता अत्यधिक आवश्यक है, तो आपको शामिल रिज़ॉल्वर सूची पर भरोसा नहीं करना चाहिए। इसके बजाय, एक स्थानीय unbound रिज़ॉल्वर सेट करें और MassDNS को इसका IP पता प्रदान करें। यदि आप MassDNS का उपयोग टोही उपकरण के रूप में कर रहे हैं, तो आप पहले डिफ़ॉल्ट रिज़ॉल्वर सूची के साथ इसे चलाना चाह सकते हैं और फिर झूठी सकारात्मकता को समाप्त करने के लिए विश्वसनीय रिज़ॉल्वर की सूची के साथ पाए गए नामों पर इसे पुनः चला सकते हैं।

यदि आप एकल नाम के लिए सबडोमेन की गणना कर रहे हैं, उदाहरण के लिए example.com के लिए, तो आप केवल तीसरे पक्ष के रिज़ॉल्वर को छोड़ना चाह सकते हैं। इस मामले में, आप सीधे आधिकारिक नाम सर्वरों को इस प्रकार जांच सकते हैं:

root@kitploit:~
$ ./bin/massdns -r <(./scripts/auth-addrs.sh example.com) --norecurse -o Je example-com-subdomains.txt > results.txt

करने के लिए

  • उन रिज़ॉल्वरों को भारी मात्रा में क्वेरी भेजने से रोकें जो दर सीमा लगा रहे हैं या कुछ समय बाद हल करने से मना कर रहे हैं
  • बैंडविड्थ सीमाएँ लागू करें
  • DNS पॉइज़निंग और DNS स्पैम का पता लगाने के लिए क्रॉस-रिज़ॉल्वर जाँचें लागू करें (जैसे Level 3 DNS हाईजैकिंग)
  • टोह लेने के लिए वाइल्डकार्ड का पता लगाना जोड़ें
  • एक मोड जोड़कर टोह की विश्वसनीयता में सुधार करें जो झूठी सकारात्मकता को समाप्त करने के लिए विश्वसनीय (स्थानीय) रिज़ॉल्वर की सूची के माध्यम से पाए गए डोमेन को पुनः हल करता है
  • स्वचालित रूप से इष्टतम समवर्तीता का पता लगाएं
  • कमांड लाइन को ठीक से पार्स करें और बिना रिक्त स्थान के लघु विकल्पों के उपयोग/संयोजन की अनुमति दें
टूल डाउनलोड करें