المختبر 5.2: تعداد DNS المتقدم
الأهداف التعليمية
في نهاية هذا المختبر، ستكون قادرًا على:
- فهم دور DNS في أمان الشبكة
- تنفيذ استعلامات DNS من أنواع مختلفة (A، MX، NS، TXT، إلخ)
- اكتشاف النطاقات الفرعية المخفية
- محاولة نقل مناطق DNS
- تحديد تسريبات المعلومات عبر DNS
- استخدام أدوات تعداد DNS الآلية
- تحليل تكوين DNS لتحديد الثغرات الأمنية
- تطبيق تدابير تأمين DNS
المدة المقدرة
35 دقيقة
المتطلبات المسبقة
- جهاز افتراضي Windows و/أو Kali Linux
- اتصال بالإنترنت (لهذا المختبر، سنستخدم نطاقات اختبار قانونية)
- فهم نظام DNS (دورة نظرية)
- إكمال المختبر 5.1 (Nmap)
السياق المهني
تعداد DNS هو خطوة حاسمة في الاستطلاع السلبي. يسمح بـ:
- اكتشاف بنية المنظمة
- تحديد الخوادم والخدمات غير المكشوفة عمدًا
- العثور على نطاقات فرعية للتطوير/الاختبار
- جمع عناوين البريد الإلكتروني للتصيد المستهدف
- رسم خريطة للهندسة المعمارية للشبكة
- تحديد التكوينات غير الصحيحة
يستخدم من قبل:
- مختبري الاختراق أثناء الاستطلاع
- صائدي الثغرات للعثور على الأصول
- المسؤولين لمراجعة بنيتهم التحتية
- المهاجمين لتحديد الأهداف
تحذير أخلاقي وقانوني
يمكن اعتبار التعداد المفرط أو المستهدف لـ DNS كاستطلاع ضار.
مسموح به:
- على نطاقاتك الخاصة
- على نطاقات اختبار عامة (example.com، testphp.vulnweb.com)
- في إطار مكافآت الثغرات مع الإذن
- لمراجعة الأمان بعقد
ممنوع:
- التعداد الجماعي للنطاقات بدون إذن
- مسح البنى التحتية الحكومية أو العسكرية
- الاستخدام لاستهداف الهجمات
- القوة الغاشمة العدوانية التي تسبب رفض الخدمة
ملاحظة: سنستخدم فقط نطاقات اختبار قانونية في هذا المختبر.
الجزء 1: استعلامات DNS الأساسية
الخطوة 1.1: أمر nslookup
استعلام DNS بسيط:
nslookup example.com
النتيجة:
Server: dns.google
Address: 8.8.8.8
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
المعلومات التي تم الحصول عليها:
- خادم DNS المستخدم
- عنوان IP للنطاق
استعلام من نوع محدد:
nslookup -type=MX example.com
الأنواع الشائعة:
A- عنوان IPv4AAAA- عنوان IPv6MX- خوادم البريدNS- خوادم الأسماءTXT- سجلات النص (SPF، DKIM، إلخ)CNAME- الاسم القانوني (الاسم المستعار)SOA- بداية السلطة
الخطوة 1.2: أمر dig (Linux)
أكثر قوة من nslookup:
dig example.com
استعلام من نوع محدد:
dig example.com MX
dig example.com NS
dig example.com TXT
dig example.com ANY
الخيار ANY: جميع أنواع السجلات (أحيانًا محدود بواسطة خوادم DNS)
خادم DNS محدد:
dig @8.8.8.8 example.com
dig @1.1.1.1 example.com
أسئلة:
- ما هي خوادم البريد (MX) لـ example.com؟
- ما هي خوادم الأسماء (NS)؟
الخطوة 1.3: سجلات TXT وتسريبات المعلومات
تحتوي سجلات TXT غالبًا على معلومات حساسة:
dig example.com TXT
المعلومات التي تم العثور عليها عادةً:
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
example.com. 3600 IN TXT "google-site-verification=xxxxxx"
يمكن أن تكشف:
- الخدمات المستخدمة (Google Workspace، Microsoft 365)
- تكوينات الأمان (SPF، DKIM، DMARC)
- التحقق من النطاق
- أحيانًا: معلومات داخلية غير مقصودة
أسئلة: 3. ما هي الخدمات التي تستخدمها المنظمة (بناءً على سجلات TXT)؟ 4. هل هناك معلومات حساسة في سجلات TXT؟
الجزء 2: نقل منطقة DNS
الخطوة 2.1: فهم نقل المناطق
نقل المنطقة (AXFR):
- آلية شرعية لتكرار DNS بين الخوادم
- يجب أن تكون مقيدة بالخوادم الثانوية المصرح بها
- إذا تم تكوينها بشكل سيء: يسمح بتفريغ كامل لمنطقة DNS!
نتيجة نقل ناجح:
- قائمة كاملة بجميع النطاقات الفرعية
- جميع عناوين IP
- جميع تكوينات DNS
إنه مثل الحصول على الدليل الكامل للمنظمة!
الخطوة 2.2: محاولة نقل منطقة
مع dig:
dig axfr @ns1.example.com example.com
النتيجة إذا كانت ضعيفة:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. ...
example.com. 3600 IN NS ns1.example.com.
example.com. 3600 IN NS ns2.example.com.
www.example.com. 3600 IN A 93.184.216.34
mail.example.com. 3600 IN A 93.184.216.35
ftp.example.com. 3600 IN A 93.184.216.36
admin.example.com. 3600 IN A 192.168.1.50
dev.example.com. 3600 IN A 192.168.1.100
test.example.com. 3600 IN A 10.0.0.50
...
جائزة كبرى! جميع النطاقات الفرعية مكشوفة، بما في ذلك الداخلية!
النتيجة إذا كانت محمية:
; Transfer failed.
مع nslookup (Windows):
nslookup
server ns1.example.com
ls -d example.com
الخطوة 2.3: تحديد خوادم الأسماء
قبل محاولة النقل، حدد NS:
dig example.com NS
النتيجة:
example.com. 3600 IN NS ns1.example.com.
example.com. 3600 IN NS ns2.example.com.
محاولة النقل على كل منها:
dig axfr @ns1.example.com example.com
dig axfr @ns2.example.com example.com
أحيانًا يكون خادم واحد ضعيف التكوين ولكن ليس الآخر!
أسئلة: 5. هل نجح نقل المنطقة؟ 6. كم عدد النطاقات الفرعية التي اكتشفتها؟
الجزء 3: اكتشاف النطاقات الفرعية
الخطوة 3.1: القوة الغاشمة للنطاقات الفرعية
قائمة كلمات للنطاقات الفرعية الشائعة:
أنشئ subdomains.txt:
www
mail
ftp
admin
webmail
portal
vpn
remote
dev
test
staging
api
سكريبت bash بسيط:
#!/bin/bash
DOMAIN=$1
WORDLIST="subdomains.txt"
while read subdomain; do
result=$(host "$subdomain.$DOMAIN" 2>/dev/null)
if [[ $result != *"not found"* ]]; then
echo "[+] Found: $subdomain.$DOMAIN"
echo "$result"
fi
done < $WORDLIST
الاستخدام:
chmod +x subdomain_enum.sh
./subdomain_enum.sh example.com
الخطوة 3.2: أدوات آلية
dnsenum (مثبت مسبقًا على Kali):
dnsenum example.com
الميزات:
- محاولة نقل المنطقة
- القوة الغاشمة للنطاقات الفرعية
- الحل العكسي (سجلات PTR)
- جلب Google للنطاقات الفرعية
نتيجة مثال:
dnsenum VERSION:1.2.6
----- example.com -----
Host's addresses:
__________________
example.com. 93.184.216.34
Name Servers:
______________
ns1.example.com. 199.43.135.53
ns2.example.com. 199.43.133.53
Brute forcing with subdomains.txt:
___________________________________
www.example.com. 93.184.216.34
mail.example.com. 93.184.216.35
ftp.example.com. 93.184.216.36
subfinder (أداة حديثة):
# التثبيت
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# الاستخدام
subfinder -d example.com
يستخدم مصادر متعددة:
- APIs البحث
- شهادات SSL (crt.sh)
- أرشيفات الويب
- محركات البحث
الخطوة 3.3: شهادات SSL للنطاقات الفرعية
شهادات SSL تكشف غالبًا عن النطاقات الفرعية!
بحث يدوي على crt.sh:
curl -s "https://crt.sh/?q=%.example.com&output=json" | jq -r '.[].name_value' | sort -u
النتيجة:
*.example.com
www.example.com
mail.example.com
api.example.com
staging.example.com
النطاقات الفرعية المكتشفة عبر شهادات SSL!
أسئلة: 7. كم عدد النطاقات الفرعية التي وجدتها باستخدام dnsenum؟ 8. هل يبدو أن بعض النطاقات الفرعية للتطوير/الاختبار؟
الجزء 4: التعداد العكسي (Reverse DNS)
الخطوة 4.1: الحل العكسي (سجلات PTR)
من عنوان IP، العثور على اسم النطاق:
nslookup 93.184.216.34
أو
dig -x 93.184.216.34
النتيجة:
34.216.184.93.in-addr.arpa name = example.com.
الخطوة 4.2: مسح نطاق IP لسجلات PTR
سكريبت لمسح نطاق:
#!/bin/bash
NETWORK="93.184.216"
for i in {1..254}; do
IP="$NETWORK.$i"
PTR=$(dig -x $IP +short 2>/dev/null)
if [ ! -z "$PTR" ]; then
echo "$IP -> $PTR"
fi
done
النتيجة: قائمة بجميع النطاقات المستضافة على هذا النطاق IP!
مفيد لـ:
- تحديد جميع المواقع لنفس المنظمة
- اكتشاف النطاقات غير المعلنة
- رسم خريطة للبنية التحتية
أسئلة: 9. كم عدد النطاقات المستضافة على نفس النطاق IP؟ 10. لماذا الحل العكسي مفيد في الاستطلاع؟
الجزء 5: تحليل تكوين DNS
الخطوة 5.1: تحديد خوادم DNS المصرح بها
dig example.com NS +trace
النتيجة تظهر التسلسل الهرمي الكامل:
. خوادم الجذر
com. خوادم TLD
example.com. خوادم مصرح بها
رؤية التفويض الكامل من الجذر!
الخطوة 5.2: التحقق من SPF/DMARC
SPF (إطار سياسة المرسل):
dig example.com TXT | grep spf
تحليل:
"v=spf1 include:_spf.google.com ~all"
~all= SoftFail (يقبل ولكن يضع علامة مشبوهة)-all= HardFail (يرفض)+all= يقبل كل شيء (خطر!)
DMARC:
dig _dmarc.example.com TXT
إذا تم تكوينه بشكل سيء: التصيد يصبح أسهل!
الخطوة 5.3: تسميم ذاكرة التخزين المؤقت لـ DNS (عرض)
على جهازك الافتراضي المحلي (ليس على الإنترنت!):
ملف hosts المحلي:
notepad C:\Windows\System32\drivers\etc\hosts
أضف:
192.168.100.50 facebook.com
192.168.100.50 google.com
احفظ واختبر:
ping facebook.com
النتيجة: Ping إلى 192.168.100.50 بدلاً من IP الحقيقي!
التطبيق: التصيد المحلي، إعادة توجيه حركة المرور
أسئلة: 11. هل يتجاوز ملف hosts الـ DNS؟ 12. كيف يمكن للمهاجم استغلال ذلك؟
الجزء 6: أدوات التعداد المتقدمة
الخطوة 6.1: fierce (ماسح DNS)
fierce --domain example.com
الميزات:
- نقل المنطقة
- القوة الغاشمة للنطاقات الفرعية
- مسح النطاقات IP القريبة
- الحل العكسي
الخطوة 6.2: dnsrecon
dnsrecon -d example.com -t std
خيارات المسح (-t):
std- قياسيaxfr- نقل المنطقةbing- بحث Bingzonewalk- المشي في منطقة DNSSEC
مسح كامل:
dnsrecon -d example.com -t std,axfr,bing,zonewalk -n ns1.example.com
الخطوة 6.3: amass (الأكثر شمولاً)
amass enum -d example.com
المصادر المستخدمة:
- APIs متعددة
- جلب الويب
- شهادات SSL
- الأرشيفات
- القوة الغاشمة لـ DNS
مخرجات مفصلة:
amass enum -d example.com -o subdomains.txt -v
نتيجة نموذجية: اكتشاف 50-500+ نطاق فرعي!
أسئلة: 13. أي أداة وجدت أكبر عدد من النطاقات الفرعية؟ 14. هل يبدو أن بعض النطاقات الفرعية مكشوفة بشكل غير مقصود؟
الجزء 7: استغلال تكوينات DNS
الخطوة 7.1: التطفل على ذاكرة التخزين المؤقت لـ DNS
التحقق مما إذا كان خادم DNS قد حل بعض النطاقات:
nmap --script dns-cache-snoop --script-args 'dns-cache-snoop.mode=timed,dns-cache-snoop.domains={google.com,facebook.com,internalsite.local}' <DNS_SERVER>
إذا كان الخادم قد حل هذه النطاقات بالفعل: في ذاكرة التخزين المؤقت!
يكشف: ما هي المواقع التي تزورها المنظمة
الخطوة 7.2: المشي في منطقة DNS (DNSSEC)
إذا تم تكوين DNSSEC بشكل سيء:
dnsrecon -d example.com -t zonewalk
يسمح بتعداد جميع السجلات حتى بدون نقل المنطقة!
الخطوة 7.3: الاستيلاء على النطاق الفرعي
تحديد النطاقات الفرعية التي تشير إلى خدمات غير موجودة:
dig admin.example.com
إذا كان CNAME يشير إلى:
admin.example.com CNAME old-service.azurewebsites.net
وإذا كان old-service.azurewebsites.net لم يعد موجودًا:
يمكن للمهاجم:
- إنشاء
old-service.azurewebsites.net - التحكم في
admin.example.com - التصيد، سرقة الجلسات، إلخ.
الكشف الآلي:
subzy run --target subdomains.txt
أسئلة: 15. هل وجدت نطاقات فرعية مع CNAME إلى خدمات خارجية؟ 16. كيف تتحقق مما إذا كان النطاق الفرعي عرضة للاستيلاء؟
التسليمات
لتقديم:
-
تقرير تعداد DNS (Word/PDF، 3-4 صفحات):
- إجابات على 16 سؤال
- منهجية التعداد المستخدمة
- قائمة كاملة بالنطاقات الفرعية المكتشفة
- تحليل تكوين DNS
- الثغرات الأمنية المحددة
-
لقطات شاشة (الحد الأدنى 6):
- استعلامات nslookup/dig من أنواع مختلفة
- محاولة نقل المنطقة
- نتائج dnsenum
- مخرجات subfinder أو amass
- تحليل سجلات TXT
- تحديد التكوينات الخاطئة
-
ملفات النتائج:
- قائمة النطاقات الفرعية (subdomains.txt)
- نتائج dnsenum الكاملة
- تصدير amass
-
تحليل الأمان (2 صفحات):
- المخاطر المحددة
- التأثير المحتمل
- توصيات لتأمين DNS
معايير التقييم
| المعيار | النقاط |
|---|---|
| إتقان استعلامات DNS (nslookup، dig) | 20% |
| استخدام أدوات التعداد | 25% |
| اكتشاف النطاقات الفرعية | 20% |
| تحليل التكوين والثغرات الأمنية | 20% |
| جودة التقرير والتوصيات | 15% |
أوامر مرجعية سريعة
Windows (nslookup)
nslookup example.com
nslookup -type=MX example.com
nslookup -type=NS example.com
nslookup -type=TXT example.com
Linux (dig)
dig example.com
dig example.com MX
dig example.com ANY
dig @8.8.8.8 example.com
dig axfr @ns1.example.com example.com
التعداد
dnsenum example.com
subfinder -d example.com
amass enum -d example.com
fierce --domain example.com
dnsrecon -d example.com -t std
الخاتمة
هذا المختبر علمك:
- استعلامات DNS من جميع الأنواع
- نقل المناطق واستغلالها
- اكتشاف النطاقات الفرعية بطرق متعددة
- أدوات التعداد الآلية
- تحليل تكوين DNS
- تحديد ثغرات DNS
الدروس الرئيسية:
- DNS يكشف الكثير من المعلومات عن البنية التحتية
- نقل المناطق الضعيف التكوين = إفشاء كامل
- النطاقات الفرعية للتطوير/الاختبار غالبًا ما تكون أقل أمانًا
- سجلات TXT قد تحتوي على معلومات حساسة
- التعداد السلبي صعب الكشف
الخطوة التالية: المختبر 5.3 انتحال ARP والرجل في المنتصف!
مختبر مطور في إطار دورة أنظمة التشغيل - الوحدة 5