
Python 3.5+ DNS asynchronous brute force उपयोगिता
एक Python 3.5+ टूल जो डोमेन नामों को एसिंक्रोनस रूप से ब्रूट फोर्स करने के लिए asyncio का उपयोग करता है।

यह तेज़ है। छोटे VPS होस्टों पर बेंचमार्क लगभग 100k DNS रिज़ॉल्यूशन को 1.5-2 मिनट में रखते हैं। एक amazon M3 बॉक्स का उपयोग 1 मिलियन अनुरोधों को सिर्फ 3 मिनट से अधिक में करने के लिए किया गया। आपका माइलेज भिन्न हो सकता है। यदि आप विशुद्ध रूप से गति में रुचि रखते हैं तो Google के रिज़ॉल्वरों का उपयोग करने से बचना शायद सबसे अच्छा है।
अस्वीकरण
$ pip install aiodnsbrute
नोट: virtualenv का उपयोग अत्यधिक अनुशंसित है।
वैकल्पिक रूप से आप सामान्य तरीके से स्थापित कर सकते हैं:
$ git clone https://github.com/blark/aiodnsbrute.git
$ cd aiodnsbrute
$ python setup.py install .
सहायता प्राप्त करें:
$ aiodnsbrute --help
Usage: cli.py [OPTIONS] DOMAIN
aiodnsbrute is a command line tool for brute forcing domain names
utilizing Python's asyncio module.
credit: blark (@markbaseggio)
Options:
-w, --wordlist TEXT ब्रूट फोर्स के लिए उपयोग करने के लिए वर्डलिस्ट।
-t, --max-tasks INTEGER एसिंक्रोनस रूप से चलाने के लिए कार्यों की अधिकतम संख्या।
-r, --resolver-file FILENAME उपयोग करने के लिए DNS रिज़ॉल्वरों की सूची वाली एक टेक्स्ट फ़ाइल, प्रति पंक्ति एक, टिप्पणियाँ # से शुरू होती हैं। डिफ़ॉल्ट: सिस्टम रिज़ॉल्वर का उपयोग करें
-v, --verbosity आउटपुट वर्बोसिटी बढ़ाएँ
-o, --output [csv|json|off] परिणामों को DOMAIN.csv/json में आउटपुट करें (जब -f का उपयोग नहीं किया जाता है तो एक्सटेंशन स्वचालित रूप से जोड़ा जाता है)।
-f, --outfile FILENAME आउटपुट फ़ाइल नाम। सामान्य आउटपुट को ओवरराइड करते हुए फ़ाइल आउटपुट को stdout पर भेजने के लिए '-f -' का उपयोग करें।
--query / --gethostbyname उपयोग करने के लिए DNS लुकअप प्रकार query (डिफ़ॉल्ट) तेज़ होना चाहिए, लेकिन CNAME जानकारी नहीं लौटाएगा।
--wildcard / --no-wildcard वाइल्डकार्ड पहचान, डिफ़ॉल्ट रूप से सक्षम
--verify / --no-verify शुरू करने से पहले डोमेन नाम सही है यह सत्यापित करें, डिफ़ॉल्ट रूप से सक्षम
--version संस्करण दिखाएँ और बाहर निकलें।
--help यह संदेश दिखाएँ और बाहर निकलें।
कुछ कस्टम विकल्पों के साथ ब्रूट फोर्स चलाएँ:
$ aiodnsbrute -w wordlist.txt -vv -t 1024 domain.com
ब्रूट फोर्स चलाएँ, सामान्य आउटपुट को दबाएँ और केवल JSON को stdout पर भेजें:
$ aiodnbrute -f - -o json domain.com
...एक उन्नत पैटर्न के लिए, कस्टम रिज़ॉल्वर का उपयोग करें और आउटपुट को शानदार jq में पाइप करें:
$ aiodnsbrute -r resolvers.txt -f - -o json google.com | jq '.[] | select(.ip[] | startswith("172."))'
वाइल्डकार्ड पहचान डिफ़ॉल्ट रूप से सक्षम (--no-wildcard इसे बंद करता है):
$ aiodnsbrute foo.com
[*] अधिकतम 512 समवर्ती कार्यों के साथ foo.com पर ब्रूट फोर्स...
[*] निम्नलिखित सर्वरों के साथ रिकर्सिव DNS का उपयोग: ['50.116.53.5', '50.116.58.5', '50.116.61.5']
[!] वाइल्डकार्ड प्रतिक्रिया का पता चला, ['23.23.86.44'] वाले उत्तरों को अनदेखा किया जा रहा है
[*] वर्डलिस्ट लोड हुई, 1000 DNS अनुरोधों के साथ आगे बढ़ रहे हैं
[+] www.foo.com 52.73.176.251, 52.4.225.20
100%|██████████████████████████████████████████████████████████████████████████████| 1000/1000 [00:05<00:00, 140.18records/s]
[*] पूरा हुआ, 1 उपडोमेन मिला
नया gethostbyname का उपयोग करें (CNAME का पता लगाता है जो संभावित उपडोमेन अधिग्रहण पहचान के लिए उपयोगी हो सकता है)
$ aiodnsbrute --gethostbyname domain.com
फ़ाइल से रिज़ॉल्वरों की एक सूची प्रदान करें (खाली पंक्तियों और # से शुरू होने वाली पंक्तियों को अनदेखा करते हुए), सूची को stdin से पढ़ने के लिए -r - निर्दिष्ट करें।
$ aiodnsbrute -r resolvers.txt domain.com
ulimit -n करना चाह सकते हैं कि कितनी खुली फ़ाइलों की अनुमति है। आप उसी कमांड का उपयोग करके उस संख्या को बढ़ा भी सकते हैं, जैसे ulimit -n <2048>