
ब्लाइंड कमजोरियों के कई प्रकारों का पता लगाने में सहायता के लिए Go में लिखी गई एक उपयोगी DNS सेवा। यह एक पेंटेस्टर के सर्वर पर आउट-ऑफ-बैंड DNS इंटरैक्शन की निगरानी करता है और Slack के माध्यम से लुकअप सूचनाएं भेजता है।
Go में लिखी गई एक उपयोगी DNS सेवा जो कई प्रकार की ब्लाइंड कमजोरियों का पता लगाने में सहायता करती है। यह एक पेनटेस्टर के सर्वर पर आउट-ऑफ-बैंड DNS इंटरैक्शन की निगरानी करती है और प्राप्त अनुरोध के विवरण के साथ Slack के माध्यम से सूचनाएँ भेजती है। DNSObserver आपको ब्लाइंड OS कमांड इंजेक्शन, ब्लाइंड SQLi, ब्लाइंड XXE और कई अन्य बग्स खोजने में मदद कर सकता है!

अधिक विस्तृत अवलोकन और सेटअप निर्देशों के लिए देखें:
https://www.allysonomalley.com/2020/05/22/dnsobserver/
आपको क्या चाहिए:
यदि आपके पास पहले से उपयोग के लिए तैयार VPS नहीं है, तो अपने पसंदीदा प्रदाता के साथ एक नया Linux VPS बनाएँ। इसका सार्वजनिक IP पता नोट कर लें।
अपने पसंदीदा रजिस्ट्रार के साथ एक नया डोमेन नाम पंजीकृत करें - कोई भी रजिस्ट्रार ठीक होना चाहिए जब तक वे कस्टम नेम सर्वर और ग्लू रिकॉर्ड सेट करने की अनुमति देते हैं।
अपने नए डोमेन की DNS सेटिंग्स में जाएँ और 'ग्लू रिकॉर्ड' अनुभाग ढूँढें। यहाँ दो प्रविष्टियाँ जोड़ें, प्रत्येक नए नेम सर्वर के लिए एक, और दोनों को अपने VPS का सार्वजनिक IP पता प्रदान करें।
इसके बाद, डिफ़ॉल्ट नेम सर्वर को इसमें बदलें:
ns1.<आपका-डोमेन>
ns2.<आपका-डोमेन>
अपने VPS में SSH करें और ये चरण करें:
यदि आपके पास पहले से Go नहीं है तो इसे स्थापित करें। स्थापना निर्देश यहाँ मिल सकते हैं।
सुनिश्चित करें कि डिफ़ॉल्ट DNS पोर्ट खुले हैं - 53/UDP और 53/TCP। चलाएँ:
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
DNSObserver और इसकी निर्भरताएँ प्राप्त करें:
go get github.com/allyomalley/dnsobserver/...
दो आवश्यक तर्क हैं, और दो वैकल्पिक तर्क:
domain [अनिवार्य]
आपका नया डोमेन नाम।
ip [अनिवार्य]
आपके VPS का सार्वजनिक IP पता।
webhook [वैकल्पिक]
यदि आप सूचनाएँ प्राप्त करना चाहते हैं, तो अपना Slack वेबहुक URL प्रदान करें। आपको आपके डोमेन नाम या आपके डोमेन के किसी भी उपडोमेन के किसी भी लुकअप के बारे में सूचित किया जाएगा (मैंने अत्यधिक या यादृच्छिक सूचनाओं से बचने के लिए किसी भी अन्य एपेक्स डोमेन और आपके कस्टम नेम सर्वरों के लिए क्वेरी की सूचनाओं को बाहर रखा है)। यदि आप वेबहुक प्रदान नहीं करते हैं, तो इंटरैक्शन मानक आउटपुट पर लॉग हो जाएंगे। वेबहुक सेटअप निर्देश यहाँ मिल सकते हैं।
recordsFile [वैकल्पिक]
डिफ़ॉल्ट रूप से, DNSObserver केवल आपके डोमेन नाम या इसके किसी भी नेम सर्वर के लिए क्वेरी का उत्तर देगा। किसी अन्य होस्ट के लिए, यह अभी भी आपको इंटरैक्शन के बारे में सूचित करेगा (जब तक कि यह आपका डोमेन या उपडोमेन है), लेकिन एक खाली प्रतिक्रिया वापस भेजेगा। यदि आप चाहते हैं कि DNSObserver कुछ होस्टों के लिए A लुकअप का एक पते के साथ उत्तर दे, तो आप या तो इस प्रोजेक्ट में शामिल config.yml फ़ाइल को संपादित कर सकते हैं, या इस टेम्पलेट के आधार पर अपनी खुद की बना सकते हैं:
a_records:
- hostname: ""
ip: ""
- hostname: ""
ip: ""
वर्तमान में, टूल केवल A रिकॉर्ड का उपयोग करता है - भविष्य में मैं CNAME, AAAA आदि जोड़ सकता हूँ)। यहाँ एक पूर्ण कस्टम रिकॉर्ड फ़ाइल का उदाहरण है:
a_records:
- hostname: "google.com"
ip: "1.2.3.4"
- hostname: "github.com"
ip: "5.6.7.8"
इन सेटिंग्स का मतलब है कि मैं 'google.com' के लिए क्वेरी का '1.2.3.4' के साथ उत्तर देना चाहता हूँ, और 'github.com' के लिए क्वेरी का '5.6.7.8' के साथ उत्तर देना चाहता हूँ।
अब, हम सुनने के लिए तैयार हैं! यदि आप DNSObserver के चलने के दौरान अपने VPS पर अन्य काम करने में सक्षम होना चाहते हैं, तो पहले एक नया tmux सत्र शुरू करें।
मानक सेटअप के लिए, आवश्यक तर्क और अपना वेबहुक पास करें:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX
उपरोक्त को प्राप्त करने के लिए, लेकिन कुछ कस्टम A लुकअप प्रतिक्रियाएँ भी शामिल करने के लिए, अपने रिकॉर्ड फ़ाइल के लिए तर्क जोड़ें:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX --recordsFile my_records.yml
यह मानते हुए कि आपने सब कुछ सही ढंग से सेट कर लिया है, DNSObserver अब चल रहा होना चाहिए। यह सुनिश्चित करने के लिए कि यह काम कर रहा है, अपने डेस्कटॉप पर एक टर्मिनल खोलें और अपने नए डोमेन ('इस डेमो में example.com') का लुकअप करें:
dig example.com
अब आपको अनुरोध के विवरण के साथ एक Slack सूचना प्राप्त होनी चाहिए!