Idle Scan بالتفصيل !

السلام عليكم ورحمة الله وبركاته

قبل فترة طويلة من الزمن ربما شهر أو أثنين قام أحد الأخوة بطلب مني أن أشرح له عملية المسح الساكن، أو ما يعرف بالـ Idle Scan ولظروف عدة لم تسنح لي الفرصة بعمل ذلك وكذلك في الكثير من الأحيان نسيت الأمر للأمانة (سامحني ياطيب) … ولهذا أتمنى أن يعذرني على تقصيري هذا … لقد حاولت في الموضوع أن أبسطه في أبسط صورة ممكنة وأجعله مفهوماً للجميع … وكذلك استعنت بكتاب Nmap Network Scanning في الكثير من جوانبه وكذلك فكرة الشرح الذي بالصور بالأسفل … أتمنى أن ينال على رضاكم وإعجابكم ويكون مفيد ولو بشكل بسيط لكم … ندخل في الموضوع …

ما هو المسح الساكن، أو ما يعرف بالـ Idle Scan؟
وهو إحدى التقنيات المستعملة لعمل مسح/scan لهدف من دون أن يتم إرسال ولو حزمة واحدة للهدف، وبالتالي يكون الهدف أعمى عن حقيقة من قام بالمسح!

هذه الطريقة تعمد على إختيار الفاحص (الشخص الذي يقوم بالمسح) بإختيار ضحية يجب ان تكون Idle أي إنها متصلة بالشبكة ولكنها في حالة سكون (لا يوجد إرسال أو إستقبال في تلك اللحظة) … السبب في ذلك لكي نستطيع أن نخمن ما هو رقم الـ IP ID للحزمة التالية … فكما يعرف الجميع لكل حزمة هناك IP ID وهذا الرقم يكون فريد أو وحيد (unique) … من خلال هذا الرقم نستطيع أن نخمن رقم الحزمة القادمة وهكذا … هذه الطريقة في الفحص تجعل أجهزة أو انظمة كشف الإختراقات تسجل بإنه حصلت عملية فحص من قبل جهاز الضحية، وذلك لعدم معرفتها بإنه فعليا الفحص تم من جهاز آخر (جهاز الفاحص)!

ما هي فائدة المسح الساكن Idle Scan؟
– مفيد في عمل فحص بشكل مخفي للهدف، وذلك لأنه الهدف لن يعرف من قام فعلياً بعملية المسح، ولا أجهزة كشف الإختراقات ستعرف ذلك وإنما سيعرفون بإن الضحية هو من قام بذلك … وذلك لأنها توهم الهدف بإنه لم تقوم هي بإرسال ولا اي حزمة من جهاز الجهاز الذي يقوم بالمسح الى الهدف، رغم إن أول حزمة هي صادرة من هذا الجهاز ولكن تم التعديل عليها لتظهر وكأنها صادرة من جهاز الضحية … وبالتالي صعب جداً إكتشاف المهاجم أو الماسح الحقيقي!
– مفيدة في تخطي حماية بعض الجدران النارية والراوترات والتي تعمل فلترة على عنوان IP لجهاز المصدر … مثلاً، قاعدة البيانات لا تسمح بالإتصال بها إلا من خلال جهاز له IP معيين، وبالتالي حين نقوم بعمل مسح عليه سيظهر إنه مغلق أو مفلتر لنا …
– مفيدة لمعرفة ما هي المنافذ المسموحة للضحية الإتصال بها على الهدف … وبالتالي نعرف ما هي صلاحيات الضحية على هذا الهدف … وكما يقولون بالأنجليزي Map and define trust relationships …

بعض أساسيات TCP/IP التي من الظروري معرفتها لفهم المسح الساكن Idle Scan:
1- لمعرفة إذا كان منفذ TCP مفتوح أو لا … نقوم بإرسال حزمة من نوع SYN والتي هي حزمة رغبة إنشاء إتصال … فإذا قام الطرف الآخر بالرد عليها بحزمة من نوع SYN/ACK … أي حزمة الموافقة على رغبة إنشاء الإتصال … فهذا يعني بإن المنفذ مفتوح … ولكن إذا جاء الرد من الطرف الآخر بحزمة من نوع RST … فهذا يعني بإن المنفذ مغلق … (هذه أبسط الطرق، أي الأساسيات فقط) …

2- أي جهاز يستلم فجأة حزمة من نوع SYN/ACK … أي إنه يوافق على رغبة الإتصال، رغم إنه الجهاز لم يرسل طلب بإنشاء إتصال ! … فإن الجهاز سيقوم بالرد عليها بحزمة من نوع RST … وهذا دلالة على الرفض أو إلغاء الأمر …

3- أي حزمة في الشبكات لها رقم يسمى IP Identifier أو بعض الكتب تسميه Fragment Identifier والذي نرمز له بـ IP ID … انظمة التشغيل إن لم يكن جلها تقوم بزيادة هذا الرقم لكل حزمة تقوم بإرسالها، وبالتالي عملية التحقق أو probe من الـ IP ID يمكن أن تكشف لنا كم حزمة تم إرسالها منذ آخر عملية تحقق probe قمنا بها وذلك لأنه نستطيع أن نحسب الفارق بين الرقمين للـ IP ID الذي حصلنا عليهم …

طريقة عمل مسح (Scan) من نوع Idle Scan:
هناك ثلاث خطوات سيتم تكرارها بغض النظر عن حالة المنفذ (مفتوح، مغلق، مفلتر) الذي يتم فحصه على جهاز المستهدف (الهدف المراد فحصه). هذه الخطوات هي:

الخطوة الأولى:
نقوم بالتحقق من رقم الـ IP ID للحزم على الجهاز الضحية، من خلال إرسال حزمة SYN/ACK له وتسجيل الرقم العائد لنا في حزمة الـ RST …

الخطوة الثانية:
نقوم بإنشاء حزمة نوعها SYN وذلك رغبة في إنشاء إتصال بين الضحية والجهة المستهدفة … نقوم بإرسال هذه الحزمة الى الهدف المراد فحصه، ولكن مع وضع عنوان الضحية وليس عنوان جهاز المسح الذي ننفذ عملية المسح منه …

الخطوة الثالثة:
نقوم بالتحقق من رقم الـ IP ID للحزم على جهاز الضحية مرة أخرى، من خلال إرسال حزمة SYN/ACK له وتسجيل الرقم العائد لنا في حزمة الـ RST … نقوم بمقارنة رقم الـ IP ID الذي حصلنا عليه في هذه الخطوة مع الرقم الذي حصلنا عليه في الخطوة رقم(1) … حيث سيتغيير أو لا يتغيير هذا الرقم حسب حالة المنفذ الذي تم فحصه …

هذه هي الثلاث حالات التي ستتكرر في كل مرة نقوم بالفحص بغض النظر عن حالة المنفذ (مفتوح، مغلق، مفلتر) …

الآن نأتي الى كيفية معرفة هل المنفذ مفتوح، أم مغلق، أم هو مفلتر بواسطة جدار ناري … طبعا جميع الشرح هذا يجب ان يكون فيه الضحية أو الـ Zombie في حالة سكون (Idle) … غير ذلك جميع ما ذكر سيختلف ويكون صعب تخمين رقم الـ IP ID وبالتالي يصعب الحصول على نواتج دقيقة … الآن الـ IP ID على جهاز الضحية يجب أن يتغيير بمقدار واحد (1) أو بمقدار أثنين (2) … الآن:
– إذا كان التغيير في IP ID بمقدار واحد (1) … هذا يعني إنه الضحية/Zombie لم تقم بإرسال سوى حزمة واحدة والتي كانت رداً على حزمة التحقق (SYN) الذي قام بها الماسح … وبالتالي هذا يعطينا فكرة على إن الهدف إما إنه لم يقم بالرد أو إنه قام بالرد بحزمة من نوع RST ولهذا تجاهلها الضحية/Zombie وهذا يعني بإن المنفذ مغلق …
– إذا كان التغيير في الـ IP ID بمقدار أثنين (2) … فهذا يعني بإن الضحية قام بإرسال حزمتين … واحدة كانت رداً على حزمة التحقق (SYN) الذي قام بها الماسح … وأخرى كانت رداً على جواب المنفذ بـ SYN/ACK (راجع عزيزي القاريء أساسيات TCP/IP في حالة أردت معرفة لماذا قام المنفذ المفتوح بالرد بـ SYN/ACK على حزمة الـ SYN) من خلال حزمة RST … وبالتالي هذا يعطينا دلالة على إن المنفذ مفتوح …
– إذا كان التغيير في IP ID أكثر من 2، فهذا يعني بإن الضحية/Zombie هذا غير جيد … أي إنه فعلياً ليس في حالة سكون/Idle حقيقية وبالتالي نتائجنا غير دقيقة …
– أخيراً، بسبب كون ما يحصل في حالة أردنا معرفة هل المنفذ مغلق أم مفلتر هو نفسه (زيادة الـ IP ID) بمقدار واحد … فهذا يعني بإن الـ Idle Scan لا يستطيع أن يمييز فعلياً بين المنفذ المغلق أو المنفذ المفلتر …

لمن لم يفهم ما يحصل في عملية المسح الساكن أو ما يسمى بـ Idle Scan أليكم الخطوات التالية موضحاً بالرسم … وكما يقولون الصورة أبلغ من ألف كلمة

صورة الأدوار (الأجهزة المشاركة):

الصورة الأولى: الفحص في حالة كان المنفذ مفتوح

الصورة الثانية: الفحص في حالة كان المنفذ مغلق

الصورة الثالثة: الفحص في حالة كان المنفذ مفلتر

الآن لنرى كيف يتم تنفيذ المسح الساكن Idle Scan من خلال Nmap … حيث يتم تنفيذ ذلك ببساطة من خلال الأمر التالي:

nmap -PN -sI idle.device.com www.target.com

وكما هو واضح بإننا نضع بعد الـ sI الجهاز الساكن ومن ثم الهدف المراد فحصه … يعني جميع الشرح الذي قمنا به بالأعلى هو لفهم هذا السطر فقط

أخيراً/
كيف يتم إكتشاف الأجهزة الساكنة Idle؟
هذا أتركه لكم للمذاكرة والإكتشاف

أرجوا أن أكون قد وفقت في شرح الموضوع بالشكل المطلوب وأن كان هناك اي إستفسار إن شاء الله أقوم بالإجابة عليه بإستثناء السؤال الخاص بتشغيل المُخ

———————————-
للنقاش، يرجى زيارة الموضوع الأصلي هنا