
محلل DNS عالي السرعة ومخترق النطاقات الفرعية بالقوة الغاشمة مع تصفية دقيقة للبطاقات البرية والتحقق من تسمم DNS لأجل استطلاع دقيق.

محلل نطاقات سريع وتجربة عنيفة للنطاقات الفرعية مع فلترة دقيقة للنطاقات الوهمية
ابدأ »
الاستخدام
·
كيف يعمل
·
الرعاية
·
الأسئلة الشائعة
puredns هي أداة سريعة لحل النطاقات والتجربة العنيفة للنطاقات الفرعية، قادرة على فلترة النطاقات الوهمية والإدخالات المسمومة في DNS بدقة.
تستخدم massdns، وهو محلل DNS قوي، لإجراء عمليات بحث جماعية. مع النطاق الترددي المناسب وقائمة جيدة من المحللين العامين، يمكنها حل ملايين الاستعلامات في دقائق معدودة. لكن للأسف، نتائج massdns تكون بقدر جودة الإجابات التي يقدمها المحللون العامون. وغالبًا ما تكون النتائج ملوثة بإجابات DNS خاطئة وإيجابيات كاذبة من النطاقات الوهمية.
puredns تحل هذه المشكلة بخوارزمية كشف النطاقات الوهمية الخاصة بها. يمكنها فلترة النطاقات الوهمية بناءً على إجابات DNS التي تم الحصول عليها من مجموعة من المحللين الموثوقين. كما تحاول تجاوز تسميم DNS عن طريق التحقق من الإجابات التي تم الحصول عليها باستخدام تلك المحللين الموثوقين.
تعتقد أن هذا مفيد؟ ⭐ امنحنا نجمة على GitHub — إنها تساعد!

|
إذا كان عملي يجلب لك المال، فكر في أن تصبح راعياً! يمكنك الحصول على بعض المزايا الفريدة! سيعني ذلك الكثير جداً ❤️ لأنه سيسمح لي بمواصلة العمل مجاناً للمجتمع. ولكن بغض النظر عن قرارك، فاعلم أن برمجياتي ستبقى مجانية ومفتوحة المصدر لاستخدامك. |
يتطلب puredns وجود massdns على الجهاز المضيف. إذا كان مسار ملف massdns الثنائي موجوداً في متغير البيئة PATH، فسيعمل puredns مباشرة. مكان جيد لوضع ملف massdns التنفيذي هو /usr/local/bin على معظم الأنظمة. وإلا، ستحتاج إلى تحديد المسار إلى ملف massdns الثنائي باستخدام الوسيط --bin.
ما يلي يجب أن يعمل على معظم الأنظمة المبنية على Debian. اتبع التعليمات الرسمية لمزيد من المعلومات.
git clone https://github.com/blechschmidt/massdns.git
cd massdns
make
sudo make install
تحتاج إلى الحصول على قائمة بخوادم DNS عامة لاستخدام puredns. ارجع إلى الأسئلة الشائعة لمعرفة كيفية إنشاء قائمتك الخاصة بالخوادم العاملة.
يمكنك تنزيل إصدار ثنائي.
بدلاً من ذلك، يمكنك تجميع أحدث إصدار بسهولة. تأكد أولاً من تثبيت Go على نظامك - الإصداران الرئيسيان الأخيران من Go مدعومان. ارجع إلى صفحة تثبيت Go الرسمية للحصول على تعليمات التثبيت. ثم قم بتشغيل الأمر التالي:
go install github.com/d3mondev/puredns/v2@latest
تأكد من الاطلاع على القائمة الكاملة للأوامر والخيارات باستخدام puredns --help.
إذا كان ملف resolvers.txt موجوداً في دليل العمل الحالي، فسيستخدمه puredns بشكل افتراضي. وإلا، إذا كان أي من الملفين ~/.config/puredns/resolvers.txt أو ~/.config/puredns/resolvers-trusted.txt موجوداً، فسيستخدمهما puredns تلقائياً كمحللين. إذا لم تتوفر أي من هذه الخيارات، حدد المحللين لاستخدامهم مع الوسيطين --resolvers و --resolvers-trusted.
تحديد المحللين الموثوقين اختياري. افتراضياً، يستخدم puredns ببساطة 8.8.8.8 و 8.8.4.4.
إليك كيفية تجربة عنيفة لقائمة ضخمة من النطاقات الفرعية باستخدام قائمة كلمات باسم all.txt:
puredns bruteforce all.txt domain.com
يمكنك أيضاً تجربة عنيفة لعدة نطاقات في وقت واحد باستخدام الخيار -d لتحميل ملف نصي يحتوي على نطاقات بدلاً من تحديد نطاق واحد كوسيط:
puredns bruteforce all.txt -d domains.txt
يمكنك أيضاً حل قائمة من النطاقات الموجودة في ملف نصي (واحد في كل سطر).
puredns resolve domains.txt
يمكنك تمرير قائمة النطاقات المراد حلها عبر stdin:
cat domains.txt | puredns resolve
أو قائمة كلمات لاستخدامها في التجربة العنيفة:
cat wordlist.txt | puredns bruteforce domain.com
يمكنك أيضاً إضافة المفتاح -q لإخراج النطاقات الموجودة فقط لتوجيهها إلى أدوات أخرى:
cat domains.txt | puredns resolve -q | httprobe
يمكنك حفظ المعلومات التالية في ملفات لإعادة استخدامها في سير عملك:
puredns resolve domains.txt --write valid_domains.txt \
--write-wildcards wildcards.txt \
--write-massdns massdns.txt

يمكنك رؤية puredns أثناء العمل ضد النطاق google.com باستخدام قائمة كلمات صغيرة من 100 ألف نطاق فرعي الأكثر شيوعاً في الصورة أعلاه.
كجزء من سير العمل، يقوم puredns بثلاث خطوات تلقائياً:
باستخدام massdns، سيقوم puredns بحل جماعي لجميع النطاقات والنطاقات الفرعية. يغذي البيانات إلى massdns عبر stdin، مما يسمح له بتحديد عدد الاستعلامات في الثانية إذا لزم الأمر وإجراء تنقية أساسية على قائمة النطاقات المُنشأة.
بشكل افتراضي، يتم تحويل النطاقات المدخلة إلى أحرف صغيرة، ويتم قبول الإدخالات التي تحتوي على أحرف صالحة فقط (أساساً [a-z0-9.-]). يمكنك تعطيل هذا بالعلامة --skip-sanitize.
بعد هذه الخطوة، تكون النتائج ملوثة عادةً: بعض المحللين العامين سيرسلون إجابات خاطئة، ويمكن للنطاقات الوهمية أن تضخم النتائج بسرعة.
ثم يستخدم puredns خوارزمية كشف النطاقات الوهمية الخاصة به لاكتشاف واستخراج جميع جذور النطاقات الوهمية من ملف نتائج massdns.
سيستخدم إخراج massdns من الخطوة 1 كذاكرة تخزين مؤقتة لـ DNS لتقليل عدد الاستعلامات التي يحتاجها. لضمان نتائج دقيقة، قد يضطر إلى التحقق من نتائج التخزين المؤقت عن طريق إجراء استعلام DNS.
يمكنك تخطي هذه الخطوة باستخدام العلامة --skip-wildcard.
للحماية من تسميم DNS، يستخدم puredns massdns مرة أخيرة للتحقق من النتائج المتبقية باستخدام محللي DNS موثوقين. حالياً، المحللون الموثوقون الداخليون المستخدمون هم 8.8.8.8 و 8.8.4.4. تتم هذه الخطوة بوتيرة أبطأ لتجنب الوصول إلى أي حدود معدل على المحللين الموثوقين.
يمكنك تخطي هذه الخطوة باستخدام العلامة --skip-validation.
عند هذه النقطة، يجب أن تكون الملفات الناتجة خالية من النطاقات الوهمية وإجابات DNS المسمومة.
يحتفظ Trickest بقائمة من المحللين الصالحين هنا: https://github.com/trickest/resolvers
بدلاً من ذلك، يمكنك الحصول على قائمة من المحللين العامين من public-dns.info، ثم استخدام مشروع DNS Validator للاحتفاظ فقط بالمحللين الذين يقدمون إجابات صالحة.
إذا قدم محللك العام معلومات غير صحيحة إلى puredns، مثلاً عن طريق إرسال ردود مسمومة، فقد تفوت بعض النطاقات الفرعية حيث سيتم تصفيتها. تلميح: تجنب المحللين من الدول التي تراقب الإنترنت، مثل الصين.
بمجرد الحصول على قائمة من المحللين المخصصين، يمكنك تمريرها إلى puredns باستخدام الوسيط -r أو بوضعها في ملف موجود في ~/.config/puredns/resolvers.txt:
puredns resolve domains.txt -r resolvers.txt
المحللون الموثوقون الافتراضيون حالياً هم 8.8.8.8 و 8.8.4.4. إذا كنت ترغب في تغييرهم، يمكنك أيضاً تحديد قائمة مخصصة باستخدام الوسيط --resolvers-trusted أو بوضعها في ملف موجود في ~/.config/puredns/resolvers-trusted.txt. لقد أجريت العديد من الاختبارات للعثور على أفضل محللين موثوقين لـ puredns - تأكد من التحقق من نتائجك بعناية إذا قررت تغييرهم، واضبط حد المعدل باستخدام --rate-limit-trusted.
puredns resolve domains.txt -r resolvers.txt --resolvers-trusted trusted.txt
لا يتجاهل Puredns ببساطة إجابات DNS التي تحتوي على NXDOMAIN. في بعض الأحيان، تحتوي إجابات NXDOMAIN هذه على سجلات CNAME صالحة تشير إلى نطاقات منتهية الصلاحية. إذا كانت تلك السجلات موجودة، فقد تشير إلى نطاق غير مسجل، مما يسمح بالاستيلاء على النطاق الفرعي.
إذا كنت تسترجع نطاقات لا تُحل إلى عنوان IP، تحقق مما إذا كانت تحتوي على سجل CNAME ذي أهمية:
dig @8.8.8.8 CNAME example.com
السبب الأكثر احتمالاً هو موازنة تحميل DNS - في بعض الأحيان، ستحصل على عناوين IP مختلفة لكل استعلام DNS فريد يتم إجراؤه. قد يجعل من الصعب جداً اكتشاف النطاقات الوهمية من خلال مقارنة سجلات DNS الخاصة بها.
يمكنك تحديد عدد الاختبارات التي سيجريها puredns لجمع جميع عناوين IP المختلفة لنطاق فرعي أثناء اكتشاف النطاقات الوهمية. الرقم الافتراضي هو 3 اختبارات، وهو منخفض جداً. لقد رأيت نطاقات ذات موازنة كبيرة تستغرق أكثر من 50 استعلاماً لإرجاع نتائج ليست مثالية ولكنها جيدة بما فيه الكفاية.
يمكنك محاولة زيادة عدد الاختبارات التي يتم إجراؤها لاكتشاف النطاقات الوهمية باستخدام الوسيط --wildcard-tests:
puredns resolve domains.txt --wildcard-tests 50
لاكتشاف النطاقات الوهمية، يحتاج puredns إلى الاحتفاظ بذاكرة تخزين مؤقتة لإجابات DNS التي تم العثور عليها. إذا كانت قائمتك من النطاقات بالمئات من الملايين وتحتوي على العديد من النطاقات الوهمية، فقد ينفد الذاكرة من المضيف. ولكن هناك حل سهل.
بشكل افتراضي، يضع puredns جميع النطاقات في دفعة واحدة لتوفير عدد استعلامات DNS ووقت التنفيذ. إذا كانت الذاكرة مصدر قلق، فمن الممكن معالجة النطاقات في دفعات أصغر متعددة باستخدام الوسيط --wildcard-batch. لقد وجدت أن الحجم الجيد يكون بين 1M و 2M نطاق فرعي لخادم VPS بذاكرة 1GB.
puredns resolve domains.txt --wildcard-batch 1000000
لا يزيل Puredns التكرارات في أي مكان في مسار عمله. إذا كان ملف الإدخال يحتوي على عناصر مكررة مثل كلمات أو نطاقات متطابقة، فسيخرج puredns عناصر مكررة. يمكنك التأكد من أن ملفات الإدخال المقدمة إلى puredns خالية من التكرارات باستخدام أداة مثل sort -u.
من المحتمل أن يكون السبب هو المحللين العامين المستخدمين. بعضهم سيعيد أحياناً إجابات غير مرتبطة بالاستعلامات، مما يؤدي إلى ظهور أسماء نطاقات عشوائية في الإخراج. لا يعالج Puredns حالياً هذه الحالة ويترك الأمر للمستخدم لتنقية الإخراج للتأكد من أن النطاقات التي تم العثور عليها تحترم النطاق.
public-dns.info يحدّث باستمرار قائمة بمحللي DNS العامين والمجانيين.
DNS Validator يمكن استخدامه لإنشاء قائمتك الخاصة من محللي DNS العامين.
قائمة كلمات all.txt قائمة كلمات Jhaddix الشهيرة all.txt تُستخدم عادةً لتعداد النطاقات الفرعية.
shuffleDNS هو بديل جيد مكتوب بلغة Go يعالج النطاقات الوهمية باستخدام خوارزمية مختلفة.
يمكنك المساهمة في puredns بالطرق التالية:
هل لديك فكرة لميزة جديدة رائعة؟ هل وجدت خطأ تريد إصلاحه؟ رائع! لا تتردد في تقديم مشكلة للمناقشة قبل تقديم طلب سحب.
لن أقبل طلبات السحب للتغييرات التافهة مثل تصحيحات الأخطاء الإملائية، وأفضل الممارسات، والإصلاحات الطفيفة، إلخ.
أي محللين مضمنين في هذا المستودع موجودون للرجوع إليهم فقط. المؤلف غير مسؤول عن أي إساءة استخدام للمحللين في تلك القائمة. من مسؤولية المستخدم إنشاء قائمة من المحللين المصرح له باستخدامهم.
استخدام هذا البرنامج لمهاجمة أهداف دون موافقة غير قانوني. من مسؤولية المستخدم الامتثال لجميع القوانين المعمول بها. المطور لا يتحمل أي مسؤولية ولا هو مسؤول عن أي إساءة استخدام أو ضرر يسببه هذا البرنامج. يرجى الاستخدام بمسؤولية.
المادة الواردة في هذا المستودع مرخصة بموجب GNU GPLv3.