
ماسح ضوئي متزامن لاختطاف DNS يكتشف ثغرات سجلات CNAME و NS و AXFR و SPF و MX و SRV وسجلات A القديمة عبر مزودي الخدمات السحابية، مع تحليل السلسلة متعدد المستويات.
ماسح الاستيلاء على DNS
Subjack هو ماسح للاستيلاء على DNS مكتوب بلغة Go، مصمم لفحص قائمة من النطاقات بشكل متزامن وتحديد النطاقات القابلة للاستيلاء عليها. بفضل سرعة وكفاءة Go، تبرز هذه الأداة حقًا في الاختبار الجماعي. تحقق دائمًا من النتائج يدويًا لاستبعاد الإيجابيات الكاذبة.
يكتشف Subjack:
include: الخاصة بـ SPF تتيح انتحال البريد الإلكترونييتطلب Go
go install github.com/haccer/subjack@latest
تتوفر أيضًا ملفات ثنائية جاهزة لأنظمة Linux وmacOS وWindows على صفحة الإصدارات — وهي مفيدة للخوادم الافتراضية الصغيرة حيث يكون التجميع بطيئًا.
subjack -w subdomains.txt -t 100 -timeout 30 -o results.txt -ssl
| العلم | الوصف | الافتراضي |
|---|---|---|
-d | نطاق واحد للفحص | |
-w | مسار قائمة كلمات النطاقات الفرعية | |
-t | عدد الخيوط المتزامنة | 10 |
-timeout | الثواني للانتظار قبل انتهاء مهلة الاتصال | 10 |
-o | إخراج النتائج إلى ملف (استخدم امتداد .json لإخراج JSON) | |
-ssl | فرض اتصالات HTTPS (قد يزيد الدقة) | false |
-a | إرسال الطلبات إلى كل عنوان URL، وليس فقط تلك التي تحتوي على CNAMEs محددة (موصى به) | false |
-m | وضع علامة على سجلات CNAME الميتة حتى لو كان النطاق غير متاح للتسجيل | false |
-r | مسار قائمة خوادم DNS (عنوان IP واحد أو host:port لكل سطر، مع الرجوع إلى 8.8.8.8 عند الفشل) | |
-ns | التحقق من الاستيلاء على NS (نطاقات NS منتهية الصلاحية + تفويضات DNS السحابية المعلقة) | false |
-ar | التحقق من سجلات A القديمة التي تشير إلى عناوين IP ميتة (قد يتطلب صلاحيات root لـ ICMP) | false |
-axfr | التحقق من نقل المناطق (AXFR) بما في ذلك تخمين NS | false |
-mail | التحقق من الاستيلاء على SPF include وسجلات MX | false |
-srv | التحقق من الاستيلاء على سجلات SRV (يضيف ~28 استعلام DNS لكل نطاق) | false |
-v | عرض مزيد من المعلومات لكل طلب | false |
يمكن لـ Subjack قراءة النطاقات من stdin، مما يسهل تمرير الإخراج من أدوات أخرى:
subfinder -d example.com | subjack -ssl -o results.json
cat domains.txt | subjack -t 20 -o results.txt
مع علم -ns، يقوم subjack بإجراء نوعين من فحوصات الاستيلاء على خوادم الأسماء:
نطاقات NS منتهية الصلاحية: يتحقق مما إذا كان أي من خوادم أسماء النطاق قد انتهت صلاحيته ومتاح للشراء. يمكن للمهاجم الذي يسجل خادم أسماء منتهي الصلاحية أن يتحكم بالكامل في جميع سجلات DNS لذلك النطاق — يمكنه توجيه أي سجل إلى أي مكان، واعتراض البريد الإلكتروني، وإصدار الشهادات، والمزيد.
تفويضات NS المعلقة: يكتشف عندما تشير سجلات NS للنطاق إلى مزودي DNS السحابيين ولكن تم حذف المنطقة المستضافة. يستعلم Subjack من كل خادم أسماء مباشرة عن سجل SOA — إذا أعادت جميعها SERVFAIL أو REFUSED، فإن المنطقة قد اختفت وربما تكون قابلة للمطالبة. المزودون المدعومون:
ns-*.awsdns-*)ns-cloud-*.googledomains.com)ns*-*.azure-dns.*)ns*.digitalocean.com)ns*.vultr.com)ns*.linode.com)subjack -w subdomains.txt -ns -o results.json
مع علم -ar، سيقوم subjack بتحليل سجلات A والتحقق مما إذا كان عنوان IP لا يزال نشطًا. عندما تنهي شركة خادمًا سحابيًا ولكنها تنسى إزالة سجل DNS A، يتم إعادة عنوان IP إلى مجموعة المزود. يمكن للمهاجم إنشاء نسخ جديدة على ذلك المزود حتى يصل إلى نفس عنوان IP، مما يمنحه التحكم في النطاق الفرعي.
يحدد Subjack مزود الخدمة السحابية (AWS، GCP، Azure، DigitalOcean، Linode، Vultr، Oracle) عندما يكون ذلك ممكنًا، مما يسهل استهداف المنصة الصحيحة. يستخدم الاكتشاف ICMP ping (يتطلب صلاحيات root) مع بديل TCP على المنافذ 80/443.
sudo subjack -w subdomains.txt -ar -o results.json
يتم وضع علامة على النتائج كـ STALE A RECORD ويجب التحقق منها يدويًا — عنوان IP غير المستجيب لا يعني دائمًا أنه قابل للاستعادة.
مع علم -axfr، سيحاول subjack إجراء نقل مناطق DNS (AXFR) والذي يمكن أن يكشف عن سجلات DNS لنطاق بأكمله. يتجاوز Subjack مجرد اختبار خوادم الأسماء الرسمية للنطاق — فهو أيضًا يخمّن أسماء مضيفي خوادم الأسماء الشائعة (ns1، dns-0، ns-backup، إلخ) لأن خوادم الأسماء المخفية أو المنسية غالبًا ما تُترك غير مؤمنة حتى بعد تأمين الخوادم الأساسية.
subjack -d example.com -axfr -o results.json
subjack -w domains.txt -axfr -o results.json
يتم وضع علامة على النتائج كـ ZONE TRANSFER مع خادم الأسماء المعرض للخطر وعدد السجلات المكشوفة.
مع علم -mail، يتحقق subjack من ناقلين للاستيلاء القائم على البريد الإلكتروني:
الاستيلاء على SPF include: يحلل سجلات SPF TXT ويتحقق مما إذا كان أي من نطاقات include: منتهي الصلاحية ومتاح للتسجيل. يمكن للمهاجم الذي يسجل النطاق المُضمّن إرسال رسائل بريد إلكتروني موثقة بالكامل باسم الهدف، متجاوزًا SPF وDMARC.
الاستيلاء على سجلات MX: يتحقق مما إذا كان أي من أهداف سجلات MX منتهي الصلاحية ومتاح للتسجيل. يمكن للمهاجم الذي يتحكم في خادم البريد اعتراض جميع البريد الإلكتروني الوارد — إعادة تعيين كلمات المرور، رموز 2FA، والمزيد.
subjack -w domains.txt -mail -o results.json
الاستيلاء على سلاسل CNAME يعمل تلقائيًا في كل فحص: يتبع سلاسل CNAME متعددة المستويات (حتى عمق 10) ويتحقق مما إذا كان أي هدف وسيط قابلًا للمطالبة. اكتشاف CNAME القياسي يتحقق فقط من القفزة الأولى — بينما تلتقط السلاسل فرص استيلاء أعمق.
الاستيلاء على سجلات SRV اختياري مع علم -srv، لأن فحص مواقع SRV الشائعة (SIP، XMPP، LDAP، Kerberos، IMAP، CalDAV، إلخ) يضيف حوالي 28 استعلام DNS لكل نطاق:
subjack -w domains.txt -srv -o results.json
يمكنك استخدام scanio.sh وهو نوع من سكريبت إثبات المفهوم لتحديد موقع النطاقات الفرعية المعرضة للخطر بشكل جماعي باستخدام نتائج Project Sonar من Rapid7. يقوم هذا السكريبت بتحليل وgrep خلال التفريغ لسجلات CNAME المطلوبة وينشئ قائمة كبيرة من النطاقات الفرعية للتحقق مع subjack مما إذا كانت معرضة للاستيلاء العدائي على النطاقات الفرعية. يرجى استخدام هذا بمسؤولية.
يجب أن تتضمن قائمة الكلمات الخاصة بك قائمة بالنطاقات الفرعية، واحدًا في كل سطر:
assets.xen.world
assets.github.com
b.xen.world
big.example.com
cdn.xen.world
dev.xen.world
dev2.twitter.com
مجموعة الاختبارات معزولة — تعمل مقابل تجهيزات DNS وHTTP محلية ولا تحتاج إلى شبكة:
go test -race ./...
معلومات إضافية حول الاستيلاء على DNS: