
أداة قوة غاشمة غير متزامنة لـ DNS تعمل مع بايثون 3.5+
أداة تعمل على بايثون 3.5+ تستخدم asyncio لتخمين أسماء النطاقات (DNS brute force) بشكل غير متزامن.

إنها سريعة. المعايير على خوادم VPS صغيرة تضع حوالي 100 ألف عملية حل DNS في 1.5-2 دقيقتين. تم استخدام جهاز Amazon M3 لإجراء مليون طلب في ما يزيد قليلاً عن 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 هي أداة سطر أوامر لتخمين أسماء النطاقات
باستخدام وحدة asyncio في بايثون.
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 اسم ملف الإخراج. استخدم '-f -' لإرسال إخراج الملف
إلى stdout متجاوزًا الإخراج العادي.
--query / --gethostbyname نوع استعلام DNS: query (الافتراضي) يجب أن يكون
أسرع، لكنه لن يُرجع معلومات CNAME.
--wildcard / --no-wildcard اكتشاف النطاقات الجامحة (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."))'
اكتشاف النطاقات الجامحة (wildcard) مفعل افتراضيًا (--no-wildcard يطفئه):
$ aiodnsbrute foo.com
[*] Brute forcing foo.com with a maximum of 512 concurrent tasks...
[*] Using recursive DNS with the following servers: ['50.116.53.5', '50.116.58.5', '50.116.61.5']
[!] Wildcard response detected, ignoring answers containing ['23.23.86.44']
[*] Wordlist loaded, proceeding with 1000 DNS requests
[+] www.foo.com 52.73.176.251, 52.4.225.20
100%|██████████████████████████████████████████████████████████████████████████████| 1000/1000 [00:05<00:00, 140.18records/s]
[*] Completed, 1 subdomains found
جديد استخدام gethostbyname (يكتشف CNAMEs التي يمكن أن تكون مفيدة لاكتشاف الاستيلاء على النطاقات الفرعية المحتملة)
$ aiodnsbrute --gethostbyname domain.com
تقديم قائمة بالمحلّلات من ملف (تجاهل الأسطر الفارغة والتي تبدأ بـ #)، استخدم -r - لقراءة القائمة من stdin.
$ aiodnsbrute -r resolvers.txt domain.com
ulimit -n لمعرفة عدد الملفات المفتوحة المسموح بها. يمكنك أيضاً زيادة هذا الرقم باستخدام نفس الأمر، مثلاً ulimit -n <2048>.