
एक "malicious" DNS सर्वर जो चलते-फिरते DNS Rebinding हमलों को अंजाम देने के लिए है (सार्वजनिक इंस्टेंस rebind.network:53 पर चल रहा है)
एक दुर्भावनापूर्ण DNS सर्वर जो चलते-फिरते DNS रीबाइंडिंग हमले को अंजाम देने के लिए है। whonow आपको DNS प्रतिक्रियाएँ और रीबाइंड नियमों को डोमेन अनुरोधों के माध्यम से गतिशील रूप से निर्दिष्ट करने देता है।
# respond to DNS queries for this domain with 34.192.228.43 the first time
# it is requested and then 192.168.1.1 every time after that
A.34.192.228.43.1time.192.168.1.1.forever.rebind.network
# respond first with 34.192.228.43, then 192.168.1.1 the next five times,
# and then start all over again (1, then 5, forever...)
A.34.192.228.43.1time.192.168.1.1.5times.repeat.rebind.network
डायनामिक DNS रीबाइंडिंग नियमों के बारे में अच्छी बात यह है कि आपको ब्राउज़र के समान-उत्पत्ति नीति का शोषण शुरू करने के लिए अपना स्वयं का दुर्भावनापूर्ण DNS सर्वर स्थापित करने की आवश्यकता नहीं है। इसके बजाय, हर कोई rebind.network के पोर्ट 53 पर चलने वाले समान सार्वजनिक whonow सर्वर का उपयोग कर सकता है।
नोट: आपको प्रत्येक DNS लुकअप में whonow सर्वर पर एक UUID (जैसे a06a5856-1fff-4415-9aa2-823230b05826) को एक सबडोमेन के रूप में शामिल करना चाहिए। इन्हें संक्षिप्तता के लिए इस README के उदाहरणों से हटा दिया गया है, लेकिन मान लें कि *.rebind.network के अनुरोध *.a06a5856-1fff-4415-9aa2-823230b05826.rebind.network होने चाहिए। इसके कारण के लिए गोचा अनुभाग देखें।
अस्वीकरण: यह सॉफ्टवेयर केवल शैक्षिक उद्देश्यों के लिए है। इस सॉफ्टवेयर का उपयोग अवैध गतिविधि के लिए नहीं किया जाना चाहिए। लेखक इसके उपयोग के लिए जिम्मेदार नहीं है। मूर्ख मत बनो।
whonow की खूबसूरती यह है कि आप डोमेन नाम में सबडोमेन के माध्यम से DNS प्रतिक्रियाओं के व्यवहार को परिभाषित कर सकते हैं। केवल कुछ सरल कीवर्ड: A, (n)times, forever, और repeat का उपयोग करके, आप जटिल और शक्तिशाली DNS व्यवहार को परिभाषित कर सकते हैं।
whonow अनुरोध की संरचनाA.<ip-address>.<rule>[.<ip-address>.<rule>[.<ip-address>.<rule>]][.uuid/random-string].example.com
A: DNS अनुरोध का प्रकार। वर्तमान में केवल A रिकॉर्ड समर्थित हैं, लेकिन AAAA जल्द ही आने वाला है।<ip-address>: एक ipv4 (ipv6 जल्द ही आ रहा है) पता जिसका प्रत्येक ऑक्टेट एक अवधि से अलग होता है (जैसे 192.168.1.1)।<rule>: तीन नियमों में से एक
(n)time[s]: DNS सर्वर को पिछले IP पते के साथ कितनी बार उत्तर देना चाहिए। बहुवचन और एकवचन दोनों स्ट्रिंग स्वीकार करता है (जैसे 1time, 3times, 5000times)forever: पिछले IP पते के साथ हमेशा उत्तर दें।repeat: नियमों के पूरे सेट को शुरू से दोहराएं।[uuid/random-string]: एक यादृच्छिक स्ट्रिंग ताकि एक ही IP पते के विरुद्ध DNS रीबाइंड हमले एक-दूसरे से अलग रहें। अधिक जानकारी के लिए गोचा देखें।example.com: एक डोमेन नाम जो आपके पास एक नेमसर्वर की ओर इशारा करता है, जैसे सार्वजनिक रूप से उपलब्ध इंस्टेंस।जटिल प्रतिक्रिया व्यवहार बनाने के लिए नियमों को एक साथ जोड़ा जा सकता है।
# always respond with 192.168.1.1. This isn't really DNS rebinding
# but it still works
A.192.168.1.1.forever.rebind.network
# alternate between localhost and 10.0.0.1 forever
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network
# first respond with 192.168.1.1 then 192.168.1.2. Now respond 192.168.1.3 forever.
A.192.168.1.1.1time.192.168.1.2.2times.192.168.1.3.forever.rebind.network
# respond with 34.192.228.43 the first time, then whatever `whonow --default-address`
# is set to forever after that (default: 127.0.0.1)
A.34.192.228.43.1time.rebind.network
प्रत्येक लेबल [सबडोमेन] में शून्य से 63 वर्ण हो सकते हैं... पूर्ण डोमेन नाम अपने पाठ्य प्रतिनिधित्व में 253 वर्णों की लंबाई से अधिक नहीं हो सकता। (DNS विकिपीडिया पृष्ठ से)
इसके अलावा, 127 से अधिक लेबल/सबडोमेन नहीं हो सकते।
whonow पर प्रत्येक अद्वितीय डोमेन नाम अनुरोध सर्वर की RAM में एक छोटा राज्य-बचत प्रोग्राम बनाता है। अगली बार जब उस डोमेन नाम का अनुरोध किया जाता है, तो प्रोग्राम काउंटर बढ़ता है और राज्य बदल सकता है। सभी अद्वितीय डोमेन नाम अपने स्वयं के अद्वितीय प्रोग्राम इंस्टेंस हैं। अन्य उपयोगकर्ताओं के साथ टकराव से बचने या आपके डोमेन नाम प्रोग्राम की स्थिति को अनजाने में बढ़ने से बचाने के लिए, आपको अपने नियम परिभाषाओं के बाद एक UUID सबडोमेन जोड़ना चाहिए। उस UUID का पुन: उपयोग कभी नहीं किया जाना चाहिए।
# this
A.127.0.0.1.1time.10.0.0.1.1time.repeat.8f058b82-4c39-4dfe-91f7-9b07bcd7fbd4.rebind.network
# not this
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network
--max-ram-domainsप्रत्येक अद्वितीय डोमेन नाम से जुड़ी प्रोग्राम स्थिति whonow द्वारा RAM में संग्रहीत की जाती है। RAM से बाहर होने से बचने के लिए, उन अद्वितीय डोमेन की ऊपरी सीमा निर्धारित की जाती है जिनकी प्रोग्राम स्थिति एक साथ प्रबंधित की जा सकती है। डिफ़ॉल्ट रूप से, यह मान 10,000,000 पर सेट है, लेकिन --max-ram-domains के साथ कॉन्फ़िगर किया जा सकता है। एक बार यह सीमा पूरी हो जाने पर, डोमेन नाम और उनकी सहेजी गई प्रोग्राम स्थिति को उस क्रम में हटा दिया जाएगा जिसमें उन्हें जोड़ा गया था (FIFO)।
whonow सर्वर चलानाक्लाउड में अपना स्वयं का whonow सर्वर चलाने के लिए, अपने डोमेन नाम प्रदाता के व्यवस्थापक पैनल का उपयोग करके अपने VPS की ओर इशारा करते हुए एक कस्टम नेमसर्वर कॉन्फ़िगर करें। फिर उस VPS पर whonow स्थापित करें और सुनिश्चित करें कि यह पोर्ट 53 (डिफ़ॉल्ट DNS पोर्ट) पर चल रहा है और वह पोर्ट 53 इंटरनेट के लिए सुलभ है।
# install
npm install --cli -g whonow@latest
# run it!
whonow --port 53
# you can also run it with more logging to stdout and save DNS activity to CSV
whonow --port 53 --logfile log.csv --verbose

अगर वह ☝ बहुत परेशानी है, तो बेझिझक rebind.network:53 के पोर्ट 53 पर चलने वाले सार्वजनिक whonow सर्वर का उपयोग करें।🌐।
$ whonow --help
usage: whonow [-h] [-v] [-p PORT] [-d DEFAULT_ANSWER] [-b MAX_RAM_DOMAINS]
[-l LOGFILE] [-m]
A malicious DNS server for executing DNS Rebinding attacks on the fly.
Optional arguments:
-h, --help Show this help message and exit.
-v, --version Show program's version number and exit.
-p PORT, --port PORT What port to run the DNS server on (default: 53).
-d DEFAULT_ANSWER, --default-answer DEFAULT_ANSWER
The default IP address to respond with if no rule is
found (default: "127.0.0.1").
-b MAX_RAM_DOMAINS, --max-ram-domains MAX_RAM_DOMAINS
The number of domain name records to store in RAM at
once. Once the number of unique domain names queried
surpasses this number domains will be removed from
memory in the order they were requested. Domains that
have been removed in this way will have their program
state reset the next time they are queried (default:
10000000).
-l LOGFILE, --logfile LOGFILE
Log to CSV file (default: false)
-m, --verbose Log request timestamp and sender IP address to stdout
(default: false)
test.js में परीक्षण करने के लिए localhost:15353 पर एक whonow सर्वर चल रहा होना चाहिए।
# in one terminal
whonow -p 15353
# in another terminal
cd path/to/node_modules/whonow
npm test
whonowrebind.network:53whonow