يعتبر DNS هو ذلك النظام الذي يسهل علينا تذكر عناوين الايبي ، مدام ان المنظومة المعلوماتية لاتقبل سوى الارقام فإن نظام الــ DNS يعمل على تحويل اسماء النطاقات التي نكتبها إلى عناوين آيبي فمثلا لو كتبت موقع www.Th3professional.com في المتصفح ، فإن هذا الاخير سيعمل على تحويل إسم النطاق إلى عنوان آيبي 108.162.198.187 ، هكذا فإن نظام DNS يعمل على البحث عن كل إسم نطاق والايبي المرافق له ، وذلك من خلال الإجابة على الطلبات بطريقتين Recursive و non -Recursive .
عند تفعيل Recursive في سرفر DNS فإن هذا الاخير في حالة إذا لم يجد إجابة على طلبك فإنه سيبحث عن الإجابة في سرفرات DNS اخرى مرتبط بها ، بطريقة اخرى مثلا لو كتبت إسم نطاق www.Th3professional.com فإن سرفر DNS في حالة إذا لم يتوفر على آيبي السرفر المقابل لهذا النطاق في cache سيتحول سرفر الــ DNS بدوره إلى عميل ويبحث لك عن ايبي الموقع في سرفرات DNS مرتبط بها .
اما في حالة تفعيل NON -Recursive فإن السرفر لن يعمل على البحث عن عنوان الايبي الخاص بالنطاق المرافق للدومين الذي كتبته في سرفرات DNS وسيتكفي في حالة لم يجد الإجابة في الـ cache فإن السرفر بإرسال رابط إحالة فقط.
DNS cache snooping ماهو ؟ وما هو دوره ؟
طبعا بعدما فهمنا اليات عمل DNS الان السؤال الذي قد تطرحه على نفسك ماهو DNS cache snooping ؟ وهو موضوع هذا الدرس . طبعا كما اشرت في مقدمة هذا الموضوع فإن الــ DNS يبحث عن ايبي الموقع في ذاكرته الخاصة والتي تدعى DNS cache ، والــ cache يمكنك ان تتخيلها كجدول يحتوي على العديد من المواقع وكل موقع يقابله عنوان آيبي الخاص به ففي حالة عدم تواجد الموقع في الــ cache فإن سرفرDNS يبحث عن الإجابة في سرفرات اخرى ، بعد ان يجد الإجابة يقوم بتدوينها في سجلاته الخاصة ، لهذا قد يعمل بعض الهاكرز وهو الامر الخطير في الموضوع بإدخال بيانات خاطئة إلى هذه الذاكرة او مايسمى بتسميم الكاش DNS cache poisoning بالتالي فإنه من الضروري على المهاجم قبل تطبيق بعض الهجمات معرفة ما إذا كان سرفر DNS يحتوي في ذاكرة تخزينه المؤقتة على الموقع الهدف ، ففي حالة عدم تواجد الموقع فإن الهاجم سيسرل طلب خبيث لسرفر الــ DNS يجعل هذا الاخير يسجل بيانات خاطئة عن الموقع في ذاكرته اي ان المهاجم سيتلاعب بالآيبي المقابل لإسم النطاق فمثلا لو كان موقع المحترف www.th3professional.com يقابله عنوان الايبي 108.162.198.187 ونفترض ان الموقع غير متواجد في سرفر 8.8.8.8 الخاص بجوجل (google DNS ) ، فإن المهاجم قد يرسل طلب خبيث يتضمن ان موقع www.Th3professional.com عنوان الايبي الخاص به هو 95.12.34.65 الاخير الذي قد يكون عنوان سرفر المهاجم الذي يتوفر على صفحة إختراق ، الامر الذي سيجعل DNS جوجل يسجل في سجلات ذاكرة التخزين المؤقت معلومات خاطئة وفي هذه الحالة اي شخص كتب موقع www.th3professional.com في متصفحه سيضهر له رسالة ان الموقع مخترق .
كيفية عمل DNS cache snooping
لكي نستطيع معرفة ما إذا كان موقع يتواجد على ذاكرة التخزين المؤقت لسرفر DNS فيمكننا تطبيق الامر الاتي من خلال موجه الاوامر الدوس :
nslookup -norecursive -type=A www.elmohtaref.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
*** Can't find www.elmohtaref.com: No answer
لاحظ معي ان عند كتابة الامر norecursive فإننا اخبرنا سرفر جوجل 8.8.8.8 اننا نود معرفة ما إذا كان موقع www.elmohtaref.com يتواجد على ذاكرة التخزين المؤقت للسرفر وكما تلاحظ ان الإجابة كانت ان الموقع غير متواجد في مقابل إذا ارسلنا الطب بإستعمال recursive فإننا سنجبر السرفر على البحث عن عنوان الايبي للموقع في سرفرات اخرى كما ستلاحظ معي من خلال المثال الاتي :
# nslookup -recursive -type=A www.elmohtaref.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: www.elmohtaref.com
Address: 50.11.27.10
طبعا الخطوة بسيطا كما تضهر للوهلة الاولى ، لكن ماذا إذا كان سرفر DNS غير مفعل لـ NON-recursive فكيف لنا معرفة إن كان الموقع متواجد في ذاكرة التخزين المؤقت لسرفر الــ DNS ؟ سؤال وجيه والإجابة هي متعددة ولكن ساقتصر في هذا الدرس على شرح طريقة واحدة وهي عن طريق حساب مدة إجابة السرفر ، وذلك عن طريق الفرضية الاتية :
إذا كان الموقع متواجد في ذاكرة التخزين المؤقت سرفر الــ DNS فإن مدة الإجابة ستكون اقل من مدة الإجابة في حالة إذا لم يكن ذلك لان السرفر سيبحث عن الإجابة في سرفرات اخرى و من الطبيعي ان يأخد وقت اطول ... لهذا سنستعين باداة dig والتي ستساعدنا في حساب وقت إجابة السرفر من خلال الامر الاتي :
; <<>> DiG 9.3.2 <<>> @8.8.8.8 www.google.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1094
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 235 IN A 81.192.190.208
www.google.com. 235 IN A 81.192.190.216
www.google.com. 235 IN A 81.192.190.229
www.google.com. 235 IN A 81.192.190.234
www.google.com. 235 IN A 81.192.190.223
www.google.com. 235 IN A 81.192.190.219
www.google.com. 235 IN A 81.192.190.249
www.google.com. 235 IN A 81.192.190.241
www.google.com. 235 IN A 81.192.190.218
www.google.com. 235 IN A 81.192.190.230
www.google.com. 235 IN A 81.192.190.240
www.google.com. 235 IN A 81.192.190.238
www.google.com. 235 IN A 81.192.190.227
www.google.com. 235 IN A 81.192.190.245
www.google.com. 235 IN A 81.192.190.251
www.google.com. 235 IN A 81.192.190.212
;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jul 18 15:42:15 2013
;; MSG SIZE rcvd: 288
لاحظ معي اننا تعمدنا البحث على وقت الإجابة لـموقع جوجل www.google.com لاننا نعلم ان جوجل حتما متواجد في ذاكرة التخزين المؤقت لـ جوجل وعليه كما تلاحظ فإن الوقت المستغرق هو 35 msec في مقابل إذا قمنا بحساب مدة سرعة إستجابة موقع www.elmohtaref.com فإننا سنلاحظ ان الموقع يأخد وقت اطول قريب من الضعف وهذا دليل على ان الموقع غير متواجد في ذاكرة التخزين المؤقت لسرفر 8.8.8.8 (google dns)
; <<>> DiG 9.3.2 <<>> @8.8.8.8 www.elmohtaref.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 460
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.elmohtaref.com. IN A
;; ANSWER SECTION:
www.elmohtaref.com. 3127 IN CNAME elmohtaref.com.
elmohtaref.com. 127 IN A 50.63.202.16
;; Query time: 104 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jul 18 15:51:28 2013
;; MSG SIZE rcvd: 66
يمكنك التقرب اكثر من موضوع اليوم من خلال هذا الشرح المصور
إرسال تعليق