
خدمة DNS مفيدة مكتوبة بلغة Go للمساعدة في اكتشاف عدة أنواع من الثغرات العمياء. تراقب خادم المختبر الاختراقي للتفاعلات DNS خارج النطاق وترسل إشعارات البحث عبر Slack.
خدمة DNS مفيدة مكتوبة بلغة Go للمساعدة في اكتشاف عدة أنواع من الثغرات العمياء. تقوم بمراقبة خادم المختبر الاختراقي للتفاعلات DNS خارج النطاق وتُرسل إشعارات بتفاصيل الطلب المستلم عبر Slack. يمكن لـ DNSObserver مساعدتك في العثور على أخطاء مثل حقن الأوامر العمياء، وحقن SQL الأعمى، وحقن XML الخارجي الأعمى، وغيرها الكثير!

للحصول على نظرة عامة أكثر تفصيلاً وتعليمات الإعداد، راجع:
https://www.allysonomalley.com/2020/05/22/dnsobserver/
ما ستحتاج إليه:
إذا لم يكن لديك بالفعل VPS جاهز للاستخدام، فأنشئ VPS جديد بنظام Linux مع مزود الخدمة المفضل لديك. قم بتدوين عنوان IP العام الخاص به.
سجّل اسم نطاق جديد مع المسجل المفضل لديك - أي مسجل سيكون جيدًا طالما يسمح بتعيين خوادم أسماء مخصصة وسجلات لزجة (glue records).
اذهب إلى إعدادات DNS الخاصة بنطاقك الجديد وابحث عن قسم 'glue record'. أضف إدخالين هنا، واحد لكل خادم أسماء جديد، وقدم لكل منهما عنوان IP العام لـ VPS الخاص بك.
بعد ذلك، قم بتغيير خوادم الأسماء الافتراضية إلى:
ns1.<النطاق-الخاص-بك>
ns2.<النطاق-الخاص-بك>
اتصل عبر SSH بـ VPS الخاص بك، وقم بتنفيذ هذه الخطوات:
قم بتثبيت Go إذا لم يكن لديك بالفعل. يمكن العثور على تعليمات التثبيت هنا
تأكد من أن منافذ DNS الافتراضية مفتوحة - 53/UDP و 53/TCP. قم بتشغيل:
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
احصل على DNSObserver وتوابعه:
go get github.com/allyomalley/dnsobserver/...
هناك وسيطان إجباريان، ووسيطان اختياريان:
domain [مطلوب]
اسم النطاق الجديد الخاص بك.
ip [مطلوب]
عنوان IP العام لـ VPS الخاص بك.
webhook [اختياري]
إذا كنت ترغب في تلقي الإشعارات، قم بتقديم رابط webhook الخاص بـ Slack الخاص بك. سيتم إعلامك بأي استعلامات لاسم النطاق الخاص بك، أو لأي نطاقات فرعية من نطاقك (لقد استبعدت الإشعارات للاستعلامات الخاصة بأي نطاقات عليا أخرى ولخوادم الأسماء المخصصة الخاصة بك لتجنب الإشعارات المفرطة أو العشوائية). إذا لم تقم بتقديم webhook، فسيتم تسجيل التفاعلات في الإخراج القياسي بدلاً من ذلك. يمكن العثور على تعليمات إعداد webhook هنا.
recordsFile [اختياري]
بشكل افتراضي، سيقوم DNSObserver بالرد فقط بإجابة على الاستعلامات الخاصة باسم النطاق الخاص بك، أو لأي من خوادم الأسماء الخاصة به. لأي مضيف آخر، سيظل يبلغك بالتفاعل (طالما أنه نطاقك أو نطاق فرعي)، لكنه سيرسل ردًا فارغًا. إذا كنت تريد أن يجيب DNSObserver على استعلامات A لمضيفين معينين بعنوان، يمكنك إما تعديل ملف config.yml المضمن في هذا المشروع، أو إنشاء ملف خاص بك بناءً على هذا القالب:
a_records:
- hostname: ""
ip: ""
- hostname: ""
ip: ""
حاليًا، الأداة تستخدم فقط سجلات A - في المستقبل قد أضيف CNAME، AAAA، إلخ). إليك مثال كامل لملف سجلات مخصص:
a_records:
- hostname: "google.com"
ip: "1.2.3.4"
- hostname: "github.com"
ip: "5.6.7.8"
هذه الإعدادات تعني أنني أريد الرد على الاستعلامات الخاصة بـ 'google.com' بـ '1.2.3.4'، والاستعلامات الخاصة بـ 'github.com' بـ '5.6.7.8'.
الآن، نحن جاهزون لبدء الاستماع! إذا كنت تريد أن تكون قادرًا على القيام بأعمال أخرى على VPS الخاص بك أثناء تشغيل DNSObserver، فابدأ جلسة tmux جديدة أولاً.
للإعداد القياسي، قم بتمرير الوسائط المطلوبة و webhook الخاص بك:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX
لتحقيق ما سبق، مع تضمين بعض ردود استعلام A المخصصة، أضف الوسيطة لملف السجلات الخاص بك:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX --recordsFile my_records.yml
بافتراض أنك قمت بإعداد كل شيء بشكل صحيح، يجب أن يكون DNSObserver قيد التشغيل الآن. لتأكيد أنه يعمل، افتح محطة طرفية على سطح المكتب الخاص بك وقم بإجراء استعلام لنطاقك الجديد ('example.com' في هذا العرض):
dig example.com
يجب أن تتلقى الآن إشعار Slack بتفاصيل الطلب!