
ماسح ضوئي متزامن لاختطاف DNS يكتشف ثغرات سجلات CNAME و NS و AXFR و SPF و MX و SRV وسجلات A القديمة عبر مزودي الخدمات السحابية، مع تحليل السلسلة متعدد المستويات.
ماسح اختطاف DNS
Subjack هو ماسح اختطاف DNS مكتوب بلغة Go، مصمم لمسح قائمة من النطاقات بشكل متزامن وتحديد تلك القابلة للاختطاف. بفضل سرعة Go وكفاءتها، تتميز هذه الأداة عند إجراء الاختبارات الجماعية. تحقق دائمًا من النتائج يدويًا لاستبعاد النتائج الإيجابية الخاطئة.
يكتشف Subjack ما يلي:
include: الخاصة بـ SPF مما يتيح انتحال البريد الإلكترونييتطلب Go
go install github.com/haccer/subjack@latest
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، وليس فقط تلك التي تحتوي على CNAMEات محددة (موصى به) | false |
-m | وضع علامة على سجلات CNAME الميتة حتى لو لم يكن النطاق متاحًا للتسجيل | false |
-r | مسار إلى قائمة من حلّي DNS (عنوان IP واحد لكل سطر، يرجع إلى 8.8.8.8 في حالة الفشل) | |
-ns | التحقق من الاستيلاء عبر NS (نطاقات NS منتهية الصلاحية + تفويضات DNS سحابية معلقة) | false |
-ar | التحقق من سجلات A البالية التي تشير إلى عناوين IP ميتة (قد يتطلب صلاحيات الجذر لـ ICMP) | false |
-axfr | التحقق من نقل النطاق (AXFR) بما في ذلك تخمين NS | false |
-mail | التحقق من الاستيلاء عبر تضمين SPF وسجلات MX | false |
-v | عرض مزيد من المعلومات لكل طلب | false |
يمكن لـ Subjack قراءة النطاقات من الإدخال القياسي، مما يسهل توجيه مخرجات من أدوات أخرى:
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) عند الإمكان، مما يسهل استهداف المنصة الصحيحة. يستخدم الكشف اختبار ping عبر ICMP (يتطلب صلاحيات الجذر) مع احتياطي 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: يحلل سجلات SPF TXT ويتحقق مما إذا كانت أي نطاقات include: منتهية الصلاحية ومتاحة للتسجيل. المهاجم الذي يسجل النطاق المضمن يمكنه إرسال رسائل بريد إلكتروني موثقة بالكامل باسم الهدف، متجاوزًا SPF و DMARC.
الاستيلاء عبر سجلات MX: يتحقق مما إذا كانت أي أهداف لسجلات MX منتهية الصلاحية ومتاحة للتسجيل. المهاجم الذي يسيطر على خادم البريد يمكنه اعتراض جميع رسائل البريد الإلكتروني الواردة — إعادة تعيين كلمات المرور، رموز 2FA، وأكثر.
subjack -w domains.txt -mail -o results.json
يتم تشغيل هذه الفحوصات تلقائيًا في كل مسح:
الاستيلاء عبر سلسلة CNAME: يتابع سلاسل CNAME متعددة المستويات (حتى 10 مستويات) ويتحقق مما إذا كان أي هدف وسيط قابل للمطالبة. كشف CNAME القياسي يتحقق فقط من القفزة الأولى — السلاسل تصطاد فرص الاستيلاء الأعمق.
الاستيلاء عبر سجلات SRV: يتحقق من سجلات SRV الشائعة (SIP، XMPP، LDAP، Kerberos، IMAP، CalDAV، إلخ) عن أهداف منتهية الصلاحية ومتاحة للتسجيل.
يمكنك استخدام scanio.sh وهو نوع من البرامج النصية لإثبات المفهوم (PoC) لتحديد النطاقات الفرعية الضعيفة بشكل جماعي باستخدام نتائج من Rapid7's Project Sonar. يقوم هذا البرنامج النصي بتحليل dump واستخراج سجلات CNAME المطلوبة وإنشاء قائمة كبيرة من النطاقات الفرعية للتحقق مع subjack ما إذا كانت عرضة للاستيلاء العدائي على النطاق الفرعي. يرجى استخدام هذا بمسؤولية.
يجب أن تتضمن قائمة الكلمات الخاصة بك قائمة من النطاقات الفرعية، نطاق واحد لكل سطر:
assets.xen.world
assets.github.com
b.xen.world
big.example.com
cdn.xen.world
dev.xen.world
dev2.twitter.com
معلومات إضافية حول استيلاءات DNS: