
DNSChef - पेनिट्रेशन टेस्टर्स और मैलवेयर विश्लेषकों के लिए DNS प्रॉक्सी
| | version 0.4 | | / _|
| | __ ___ | | __| |
/ ` | ' / |/ | ' \ / _ \ |
| (| | | | _ \ (| | | | __/ |
_,|| ||/_|| ||___||
दस्तावेज़ीकरण
DNSChef एक अत्यधिक कॉन्फ़िगरेबल DNS प्रॉक्सी है जो प्रवेश परीक्षकों और मैलवेयर विश्लेषकों के लिए है। DNS प्रॉक्सी (उर्फ "फेक DNS") एक उपकरण है जिसका उपयोग एप्लिकेशन नेटवर्क ट्रैफ़िक विश्लेषण और अन्य उपयोगों के लिए किया जाता है। उदाहरण के लिए, एक DNS प्रॉक्सी का उपयोग "badguy.com" के लिए अनुरोधों को नकली बनाने के लिए किया जा सकता है, ताकि वे इंटरनेट पर किसी वास्तविक होस्ट के बजाय स्थानीय मशीन पर समाप्ति या अवरोधन के लिए इंगित हों।
बाजार में कई DNS प्रॉक्सी उपलब्ध हैं। अधिकांश बस सभी DNS क्वेरी को एकल IP पते पर इंगित कर देंगे या केवल बुनियादी फ़िल्टरिंग लागू करेंगे। DNSChef को एक प्रवेश परीक्षण के भाग के रूप में विकसित किया गया था जहां अधिक कॉन्फ़िगरेबल सिस्टम की आवश्यकता थी। परिणामस्वरूप, DNSChef एक क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन है जो समावेशी और अनन्य डोमेन सूचियों के आधार पर प्रतिक्रियाएँ बनाने, कई DNS रिकॉर्ड प्रकारों का समर्थन करने, वाइल्डकार्ड के साथ डोमेन मिलान करने, गैर-मिलान वाले डोमेन के लिए वास्तविक प्रतिक्रियाओं को प्रॉक्सी करने, बाहरी कॉन्फ़िगरेशन फ़ाइलों को परिभाषित करने, IPv6 और कई अन्य सुविधाओं में सक्षम है। आप प्रत्येक सुविधा का विस्तृत विवरण और सुझाए गए उपयोग नीचे पा सकते हैं।
DNS प्रॉक्सी का उपयोग उन स्थितियों में अनुशंसित है जहां किसी एप्लिकेशन को सीधे किसी अन्य प्रॉक्सी सर्वर का उपयोग करने के लिए बाध्य करना संभव नहीं है। उदाहरण के लिए, कुछ मोबाइल एप्लिकेशन OS HTTP प्रॉक्सी सेटिंग्स को पूरी तरह से अनदेखा कर देते हैं। ऐसे मामलों में, DNSChef जैसे DNS प्रॉक्सी सर्वर का उपयोग आपको उस एप्लिकेशन को धोखा देने की अनुमति देगा कि वह कनेक्शन को वांछित गंतव्य पर अग्रेषित करे।
DNSChef का उपयोग शुरू करने से पहले, आपको अपनी मशीन को उस DNS नेमसर्वर का उपयोग करने के लिए कॉन्फ़िगर करना होगा जिस पर यह टूल चल रहा है। आपके पास उपयोग किए जाने वाले ऑपरेटिंग सिस्टम के आधार पर कई विकल्प हैं:
लिनक्स - /etc/resolv.conf को संपादित करें और शीर्ष पर अपने ट्रैफ़िक विश्लेषण होस्ट के साथ एक पंक्ति जोड़ें (उदाहरण के लिए, यदि स्थानीय रूप से चला रहे हैं तो "nameserver 127.0.0.1" जोड़ें)। वैकल्पिक रूप से, आप नेटवर्क मैनेजर जैसे टूल का उपयोग करके DNS सर्वर पता जोड़ सकते हैं। नेटवर्क मैनेजर के अंदर IPv4 सेटिंग्स खोलें, मेथड ड्रॉप-डाउन बॉक्स से ऑटोमैटिक (DHCP) पते केवल या मैनुअल चुनें और DNS सर्वर टेक्स्ट बॉक्स में DNSChef चलाने वाला IP पता शामिल करें।
विंडोज - कंट्रोल पैनल से नेटवर्क कनेक्शन चुनें। फिर किसी एक कनेक्शन (जैसे "लोकल एरिया कनेक्शन") का चयन करें, उस पर राइट-क्लिक करें और गुण चुनें। नए दिखाई देने वाले डायलॉग बॉक्स में, इंटरनेट प्रोटोकॉल (TCP/IP) चुनें और गुण पर क्लिक करें। अंत में निम्न DNS सर्वर पतों का उपयोग करें रेडियो बटन चुनें और DNSChef चलाने वाला IP पता दर्ज करें। उदाहरण के लिए, यदि स्थानीय रूप से चला रहे हैं तो 127.0.0.1 दर्ज करें।
OS X - सिस्टम प्राथमिकताएँ खोलें और नेटवर्क आइकन पर क्लिक करें। सक्रिय इंटरफ़ेस चुनें और DNS सर्वर फ़ील्ड भरें। यदि आप एयरपोर्ट का उपयोग कर रहे हैं तो आपको एडवांस्ड... बटन पर क्लिक करना होगा और वहां से DNS सर्वर संपादित करना होगा। वैकल्पिक रूप से, आप /etc/resolv.conf को संपादित कर सकते हैं और शीर्ष पर एक नकली नेमसर्वर जोड़ सकते हैं (उदाहरण "nameserver 127.0.0.1")।
iOS - सेटिंग्स खोलें और सामान्य चुनें। फिर वाई-फाई चुनें और सूची से एक सक्रिय एक्सेस प्वाइंट के दाईं ओर नीले तीर पर क्लिक करें। DNSChef चलाने वाले होस्ट की ओर इंगित करने के लिए DNS प्रविष्टि संपादित करें। सुनिश्चित करें कि आपने सेल्युलर इंटरफ़ेस (यदि उपलब्ध हो) को अक्षम कर दिया है।
एंड्रॉइड - सेटिंग्स खोलें और वायरलेस और नेटवर्क चुनें। वाई-फाई सेटिंग्स पर क्लिक करें और फोन पर विकल्प बटन दबाने के बाद एडवांस्ड चुनें। स्टेटिक IP का उपयोग करें चेकबॉक्स सक्षम करें और एक कस्टम DNS सर्वर कॉन्फ़िगर करें।
यदि आपके पास डिवाइस की DNS सेटिंग्स को मैन्युअल रूप से संशोधित करने की क्षमता नहीं है, तो आपके पास अभी भी कई विकल्प हैं जिनमें ARP स्पूफिंग, रोग DHCP और अन्य रचनात्मक तरीकों जैसी तकनीकें शामिल हैं।
अंत में आपको एक नकली सेवा कॉन्फ़िगर करने की आवश्यकता है जहां DNSChef सभी अनुरोधों को इंगित करेगा। उदाहरण के लिए, यदि आप वेब ट्रैफ़िक को इंटरसेप्ट करने का प्रयास कर रहे हैं, तो आपको या तो पोर्ट 80 पर एक अलग वेब सर्वर चालू करना होगा या ट्रैफ़िक को इंटरसेप्ट करने के लिए एक वेब प्रॉक्सी (जैसे Burp) सेट करना होगा। DNSChef क्वेरी को आपके प्रॉक्सी/सर्वर होस्ट की ओर इंगित करेगा जिसमें उचित रूप से कॉन्फ़िगर की गई सेवाएँ होंगी।
DNSChef एक क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन है जो Python में विकसित है और अधिकांश प्लेटफ़ॉर्म पर चलना चाहिए जिनमें Python इंटरप्रेटर हो। आप विंडोज होस्ट पर Python इंटरप्रेटर स्थापित किए बिना इसे चलाने के लिए प्रदान की गई dnschef.exe निष्पादन योग्य का उपयोग कर सकते हैं। यह मार्गदर्शिका Unix वातावरण पर केंद्रित होगी; हालांकि, नीचे दिए गए सभी उदाहरण विंडोज पर भी काम करने के लिए परीक्षण किए गए हैं।
आइए DNSChef की सबसे बुनियादी निगरानी कार्यक्षमता के साथ इसका स्वाद लें। रूट के रूप में निम्नलिखित कमांड निष्पादित करें (पोर्ट 53 पर सर्वर शुरू करने के लिए आवश्यक):
# ./dnschef.py
_ _ __
| | version 0.2 | | / _|
__| |_ __ ___ ___| |__ ___| |_
/ _` | '_ \/ __|/ __| '_ \ / _ \ _|
| (_| | | | \__ \ (__| | | | __/ |
\__,_|_| |_|___/\___|_| |_|\___|_|
[email protected]
[*] DNSChef started on interface: 127.0.0.1
[*] Using the following nameservers: 8.8.8.8
[*] No parameters were specified. Running in full proxy mode
बिना किसी पैरामीटर के, DNSChef पूर्ण प्रॉक्सी मोड में चलेगा। इसका मतलब है कि सभी अनुरोधों को केवल एक अपस्ट्रीम DNS सर्वर (डिफ़ॉल्ट रूप से 8.8.8.8) को अग्रेषित किया जाएगा और क्वेरी करने वाले होस्ट को वापस भेज दिया जाएगा। उदाहरण के लिए, आइए एक डोमेन के लिए "A" रिकॉर्ड क्वेरी करें और परिणाम देखें:
$ host -t A thesprawl.org
thesprawl.org has address 108.59.3.64
DNSChef निम्नलिखित लॉग लाइन प्रिंट करेगा जो समय, स्रोत IP पता, अनुरोधित रिकॉर्ड का प्रकार और सबसे महत्वपूर्ण बात यह दर्शाता है कि किस नाम की क्वेरी की गई थी:
[23:54:03] 127.0.0.1: proxying the response of type 'A' for thesprawl.org
यह मोड सरल एप्लिकेशन निगरानी के लिए उपयोगी है जहां आपको यह पता लगाने की आवश्यकता है कि वह अपने संचार के लिए किन डोमेन का उपयोग करता है।
DNSChef में IPv6 के लिए पूर्ण समर्थन है जिसे -6 या --ipv6* फ़्लैग का उपयोग करके सक्रिय किया जा सकता है। यह IPv4 मोड की तरह ही काम करता है, सिवाय इसके कि डिफ़ॉल्ट सुनने वाला इंटरफ़ेस ::1 पर स्विच हो जाता है और डिफ़ॉल्ट DNS सर्वर 2001:4860:4860::8888 पर स्विच हो जाता है। यहाँ एक नमूना आउटपुट है:
# ./dnschef.py -6
_ _ __
| | version 0.2 | | / _|
__| |_ __ ___ ___| |__ ___| |_
/ _` | '_ \/ __|/ __| '_ \ / _ \ _|
| (_| | | | \__ \ (__| | | | __/ |
\__,_|_| |_|___/\___|_| |_|\___|_|
[email protected]
[*] Using IPv6 mode.
[*] DNSChef started on interface: ::1
[*] Using the following nameservers: 2001:4860:4860::8888
[*] No parameters were specified. Running in full proxy mode
[00:35:44] ::1: proxying the response of type 'A' for thesprawl.org
[00:35:44] ::1: proxying the response of type 'AAAA' for thesprawl.org
[00:35:44] ::1: proxying the response of type 'MX' for thesprawl.org
नोट: डिफ़ॉल्ट रूप से, DNSChef एक UDP सुनने वाला बनाता है। आप बाद में चर्चा किए गए --tcp तर्क के साथ इसके बजाय TCP का उपयोग कर सकते हैं।
अब, जब आप जानते हैं कि DNSChef कैसे शुरू करें, तो आइए इसे --fakeip पैरामीटर का उपयोग करके सभी उत्तरों को 127.0.0.1 पर इंगित करने के लिए कॉन्फ़िगर करें:
# ./dnschef.py --fakeip 127.0.0.1 -q
[*] DNSChef started on interface: 127.0.0.1