
होमोग्राफ फिशिंग हमलों, टाइपो स्क्वाटिंग और ब्रांड प्रतिरूपण का पता लगाने के लिए डोमेन नाम क्रमपरिवर्तन इंजन

देखें कि उपयोगकर्ता आपके डोमेन नाम को टाइप करने में किस प्रकार की परेशानी में पड़ सकते हैं। ऐसे मिलते-जुलते डोमेन खोजें जिनका उपयोग हमलावर आप पर हमला करने के लिए कर सकते हैं। यह टाइपोस्क्वॉटिंग, फ़िशिंग हमलों, धोखाधड़ी और ब्रांड प्रतिरूपण का पता लगा सकता है। लक्षित खतरे की खुफिया जानकारी के अतिरिक्त स्रोत के रूप में उपयोगी।

DNS फ़ज़िंग एक स्वचालित वर्कफ़्लो है जिसका उद्देश्य उन संभावित दुर्भावनापूर्ण डोमेन को उजागर करना है जो आपके संगठन को लक्षित करते हैं। यह टूल प्रदान किए गए डोमेन नाम के आधार पर क्रमपरिवर्तनों की एक व्यापक सूची उत्पन्न करता है, और बाद में जाँचता है कि क्या इनमें से कोई भी क्रमपरिवर्तन उपयोग में है। इसके अतिरिक्त, यह चल रहे फ़िशिंग हमलों या ब्रांड प्रतिरूपण का पता लगाने के लिए वेब पेजों के फ़ज़ी हैश उत्पन्न कर सकता है, और बहुत कुछ!
जल्दी में हैं? इसे अपने वेब ब्राउज़र में आज़माएँ: dnstwist.it
Python PIP
$ pip install dnstwist[full]
वैकल्पिक रूप से न्यूनतम इंस्टॉल करें और अपनी आवश्यकताओं के अनुसार अन्य आवश्यकताएँ मैन्युअल रूप से जोड़ें:
$ pip install dnstwist
Git
यदि आप कोड का नवीनतम संस्करण चलाना चाहते हैं, तो आप इसे Git से इंस्टॉल कर सकते हैं:
$ git clone https://github.com/elceef/dnstwist.git
$ cd dnstwist
$ pip install .
Debian/Ubuntu/Kali Linux
सभी अतिरिक्त पैकेजों के साथ टूल इंस्टॉल करने के लिए निम्नलिखित कमांड चलाएँ:
$ sudo apt install dnstwist
Fedora Linux
$ sudo dnf install dnstwist
Arch Linux उपयोगकर्ता रिपॉज़िटरी (yay)
$ yay -S dnstwist
macOS
यह सभी निर्भरताओं के साथ dnstwist इंस्टॉल करेगा, और बाइनरी को
$PATH में जोड़ दिया जाएगा।
$ brew install dnstwist
Docker
Docker Hub से आधिकारिक इमेज खींचें और चलाएँ:
$ docker run -it elceef/dnstwist
वैकल्पिक रूप से आप अपनी स्थानीय इमेज बना सकते हैं:
$ docker build -t dnstwist .
$ docker build -t dnstwist:phash --build-arg phash=1 .
यह टूल दिए गए डोमेन नाम को अपने फ़ज़िंग एल्गोरिदम के माध्यम से चलाएगा और DNS रिकॉर्ड के साथ संभावित फ़िशिंग डोमेन की एक सूची उत्पन्न करेगा।
आमतौर पर हज़ारों डोमेन क्रमपरिवर्तन उत्पन्न होते हैं - विशेष रूप से लंबे इनपुट डोमेन के लिए। ऐसे मामलों में, केवल वे दिखाना व्यावहारिक हो सकता है जो पंजीकृत हैं:
$ dnstwist --registered domain.name
सुनिश्चित करें कि आपका DNS सर्वर कम समय में हज़ारों अनुरोधों को संभाल सके।
अन्यथा, आप --nameservers आर्ग्युमेंट के साथ एक बाहरी DNS या DNS-over-HTTPS सर्वर निर्दिष्ट कर सकते हैं।
यदि फ़ज़िंग एल्गोरिदम द्वारा उत्पन्न डोमेन परम्युटेशन अपर्याप्त हैं,
तो कृपया dnstwist को एक डिक्शनरी फ़ाइल प्रदान करें। फ़िशिंग अभियानों में उपयोग किए जाने वाले
सबसे सामान्य शब्दों की सूची वाले कुछ डिक्शनरी नमूने शामिल हैं।
$ dnstwist --dictionary dictionaries/english.dict domain.name
यदि आपको यह जाँचना है कि क्या भिन्न TLD वाले डोमेन मौजूद हैं, तो बस TLD की सूची वाली एक डिक्शनरी फ़ाइल प्रदान करें।
$ dnstwist --tld dictionaries/common_tlds.dict domain.name
दूसरी ओर, यदि केवल चयनित एल्गोरिदम का उपयोग करने की आवश्यकता है, तो --fuzzers
आर्ग्युमेंट उपलब्ध है, जो कॉमा-सेपरेटेड सूची लेता है।
$ dnstwist --fuzzers "homoglyph,hyphenation" domain.name
रंगीन टर्मिनल आउटपुट के अलावा, यह टूल परिणामों को CSV और JSON में निर्यात करने की सुविधा देता है:
$ dnstwist --format csv domain.name | column -t -s,
$ dnstwist --format json domain.name | jq
यदि आपको बिना कोई DNS लुकअप किए केवल बेयर परम्युटेशन चाहिए, तो --format list आर्ग्युमेंट का उपयोग करें:
$ dnstwist --format list domain.name
यह टूल IPv4 पतों का भौगोलिक स्थान (देश तक अनुमानित) लौटाने के लिए वास्तविक समय में लुकअप कर सकता है।
$ dnstwist --geoip domain.name
GeoIP2 लाइब्रेरी डिफ़ॉल्ट रूप से उपयोग की जाती है। देश डेटाबेस का स्थान $GEOLITE2_MMDB पर्यावरण चर के साथ निर्दिष्ट करना होगा। यदि लाइब्रेरी या डेटाबेस मौजूद नहीं हैं, तो टूल पुराने GeoIP Legacy पर वापस चला जाएगा।
सभी उपलब्ध विकल्पों को संक्षिप्त विवरण के साथ प्रदर्शित करने के लिए बस टूल को बिना किसी आर्ग्युमेंट के निष्पादित करें।
फ़िशिंग साइट परोसने के संदर्भ में प्रत्येक डोमेन नाम को मैन्युअल रूप से जाँचना समय लेने वाला हो सकता है। इसे संबोधित करने के लिए, dnstwist तथाकथित फ़ज़ी हैश (locality-sensitive hash, LSH) और परसेप्चुअल हैश (pHash) का उपयोग करता है। फ़ज़ी हैशिंग एक अवधारणा है जिसमें दो इनपुट (HTML कोड) की तुलना करने और समानता के मूलभूत स्तर को निर्धारित करने की क्षमता शामिल है, जबकि परसेप्चुअल हैश एक छवि (वेब पेज स्क्रीनशॉट) की दृश्य विशेषताओं से प्राप्त एक फ़िंगरप्रिंट है।
फ़ज़ी हैशिंग
समान HTML स्रोत कोड का पता लगाने की अनूठी सुविधा --lsh आर्ग्युमेंट के साथ सक्षम की जा सकती है। प्रत्येक उत्पन्न डोमेन के लिए, dnstwist प्रतिक्रिया देने वाले HTTP सर्वर से सामग्री प्राप्त करेगा (संभावित रीडायरेक्ट्स का पालन करते हुए), HTML कोड को सामान्यीकृत करेगा और इसके फ़ज़ी हैश की तुलना मूल (प्रारंभिक) डोमेन के फ़ज़ी हैश से करेगा। समानता का स्तर प्रतिशत के रूप में व्यक्त किया जाता है।
ऐसे मामलों में जहाँ प्रभावी URL मूल डोमेन के समान है, गलत सकारात्मक संकेतों को अस्वीकार करने के लिए फ़ज़ी हैश की गणना बिल्कुल नहीं की जाती है।
नोट: ध्यान रखें कि 100% मिलान मिलना काफी असंभव है, यहाँ तक कि MITM हमला फ्रेमवर्क के लिए भी, और यह कि एक फ़िशिंग साइट का HTML स्रोत कोड पूरी तरह से भिन्न हो सकता है।
$ dnstwist --lsh domain.name
कुछ मामलों में, फ़िशिंग साइटें किसी विशिष्ट URL से सर्व की जाती हैं। यदि आप एक
पूर्ण या आंशिक URL पता एक आर्ग्युमेंट के रूप में प्रदान करते हैं, तो dnstwist इसे पार्स करेगा और
प्रत्येक जनरेट किए गए डोमेन नाम वेरिएंट पर लागू करेगा। मूल वेब पेज को फ़ेच करने के लिए
URL को ओवरराइड करने हेतु --lsh-url का उपयोग करें।
$ dnstwist --lsh https://domain.name/owa/
$ dnstwist --lsh --lsh-url https://different.domain/owa/ domain.name
डिफ़ॉल्ट रूप से, LSH एल्गोरिद्म के रूप में ssdeep का उपयोग किया जाता है, लेकिन TLSH भी उपलब्ध है और इसे इस प्रकार सक्षम किया जा सकता है:
$ dnstwist --lsh tlsh domain.name
पर्सेप्चुअल हैशिंग
यदि Chromium ब्राउज़र इंस्टॉल है, तो dnstwist वेब पेज स्क्रीनशॉट कैप्चर करने, उन्हें रेंडर करने और pHash मानों की गणना करने के लिए इसके हेडलेस मोड का उपयोग कर सकता है, जो बिना ग्राफ़िकल यूज़र इंटरफ़ेस के संचालित होता है। फिर इन pHash मानों की तुलना दृश्य समानता का मूल्यांकन करने के लिए की जाती है, जिसे प्रतिशत के रूप में व्यक्त किया जाता है।
$ dnstwist --phash domain.name
इसके अलावा, कैप्चर किए गए स्क्रीनशॉट को PNG प्रारूप में अपनी पसंद के स्थान पर सहेजना संभव है:
$ dnstwist --phash --screenshots /tmp/domain domain.name
नोट: पूरी तरह कार्यात्मक वेब ब्राउज़र के मल्टी-थ्रेडेड उपयोग के कारण, उचित मात्रा में मुफ़्त संसाधन (मुख्य रूप से मेमोरी) उपलब्ध कराए जाने चाहिए।
प्रॉक्सी समर्थन
सभी HTTP कनेक्शनों के लिए, प्रॉक्सी का स्वचालित रूप से उपयोग तब किया जाता है जब
$<scheme>_proxy नाम के पर्यावरण चर की उपस्थिति, केस-असंवेदनशील तरीके से,
पहचानी जाती है। यदि लोअरकेस और अपरकेस दोनों पर्यावरण चर मौजूद हों,
तो लोअरकेस को प्राथमिकता दी जाती है।
यदि आपको अपने कोड के भीतर टूल द्वारा उत्पादित डेटा का उपभोग करना है, तो सबसे सुविधाजनक और कुशल तरीका है इनपुट को निम्नानुसार पास करना।
>>> import dnstwist
>>> data = dnstwist.run(domain='domain.name', registered=True, format='null')
पूरी तरह से निष्क्रिय ऑपरेटिंग मोड में काम करने और केवल डोमेन क्रमपरिवर्तन उत्पन्न करने के लिए, सूची प्रारूप को null डिवाइस पर आउटपुट रीडायरेक्शन के साथ संयोजित करना आवश्यक है।