في الدرسين السابقين قمنا بتعريف nmap وهي واحدة من أهم الأدوات التي تستخدم في فحص الشبكات.
وبعد أن أخذنا نظرة عامة حول هذه الأداة والخيارات فيها وتعرفنا على أساسيات فحص الأجهزة والشبكات والمنافذ باستخدام nmap.
اليوم سنتطرق لأهم الخصائص الموجودة في هذه الأداة.
أقوم بتشغيل كل من Kali Linux و Metasploitable الموجودان في المختبر، ثم سنبدأ بالتعامل مع nmap بشكل عملي.
Version Detection للخدمات
في سطر الأوامر أو Terminal أكتب ببساطة: nmap –h للدخول إلى Help الخاص ب Nmap.
سأتحدث عن version Detection للخدمات، وهي البرنامج الذي يعمل على المنفذ المفتوح، إن معرفة الإصدار ونوع البرنامج الذي تعمل به هذه الخدمة هام جداً في الإختراق.
لأنه يمكننا من خلاله تحديد إن كان هذا الإصدار مصاب بثغرة أم لا، لذلك يجب علينا أن نجمع أكبر معلومات حول الهدف من خدمات وإصداراتها.
إذا قمنا بشكل افتراضي بفحص جهاز Metasploitable ستظهر لنا المنافذ المفتوحة والخدمات التي تعمل عليها وإصداراتها.
أما إصدار الخدمة فلا تظهر لنا، ولمعرفة إصدار الخدمة سنقوم بكتابة التالي:
Nmap –cv 10.0.2.14 وهذا يعني أني أريد من nmap بعد فحصه للمنافذ المفتوحة ومعرفة نوع الخدمات التي تعمل عليها، أن تقوم بجلب إصدار الخدمة.
نلاحظ عندما نقوم بتنفيذ الأمر، سيظهر لنا عمود رابع يحوي version الخاصة بالخدمة.، وتحاول nmap جمع أكبر قدر من البيانات.
نلاحظ أن ظهر لنا عمود جديد بجانب كل منفذ وهو إصدار وإسم البرنامج الذي تعمل معه هذه الخدمة.
فمثلاً منفذ 21 وهو FTP يعمل ببرنامج vsftpd الإصدار 2.3.4 ، يمكن أن نبحث عن الإصدار ونجد له Exploit موجود إما بال Metasploitable أو على مواقع تحوي استغلالات.
وتظهر بيانات إضافة ستساعدنا في عملية إختبار الإختراق. إن معرفة نظام التشغيل وإصداره ومعماريته، هو أمر مهم جداً.
Operating System Detection
باستخدام –O ، فإن كتبت: Nmap –cv -O 10.0.2.14 فتظهر لي بعض الأمور الخاصة ب nmap لمعرفة إصدار نظام التشغيل ومعماريته، هل هو ويندوز أو لينكس، وما إصداره.
وبعد أن تقوم nmap بالتعرف على المنافذ المفتوحة وثم معرفة الخدمات وإصداراتها، ستحاول التحدث مع نظام التشغيل بطرق معينة.
وحددت لي أن نظام التشغيل لدي يعمل ب Kernel 2.6.9 حينها يمكننا أن نقوم باستغلال نظام التشغيل.
ويمكن أن تكون الثغرة الموجودة على vsftpd وأن هذا البرنامج بهذا الإصدار عليه ثغرة يمكن أن تعمل على ويندوز ولا تعمل على لينكس.
وبمعرفة نظام التشغيل وهو لينكس لدي ستساعدني في توفير الوقت وتجاوز فحص الثغرة الخاصة ب vsftpd على سبيل المثال.
Timing و Performance
وظيفتها –t من 0 إلى 5 أي أن يأخذ وقته في عملية الفحص، فالصفر بطيء والخمسة أسرع ما يمكن.
ويمكن أن نحدد Max Tries لنسرع من عملية الفحص، فبدلاً من أن تأخذ وقتاً 18 دقيقة، تأخذ 5 دقائق، ولكن هذا يمكن أن يؤثر على دقة النتائج.
والتعامل معها بسيط فقط : nmap –sv –O –t5 10.2.2.14 ، ونحاول قدر الإمكان تسريع عملية الفحص.
فحص سكريبت Script Scan
في بداية دروس nmap ذكرنا Scripting Engine NSE ويعني أننا نكتب سكريبتات في nmap باستخدام لغة LUA لغة برمجة بحيث أن نجعل nmap ينفذ السكريبتات ويؤتمت عملية معينة.
بأن يقوم مثلاً بتتبع لشيء ما أو يجمع معلومات بشكل آلي بدل أن أجمعهم بشكل يدوي.
الآن في nmap؛ أو أي أداة موجودة على Kali Linux تكون مثبتة على المسار التالي:
Cd/usr/share وتظهر جميع الأدوات الموجودة، فإن كتبت بعدها ls ؛nmap فيظهر مجلد خاص ب nmap؛ وبداخله مجلد اسمه Script.
هذا المجلد يحتوي على nmap Script Engines؛ وكل سكريبت منها يقوم بأمر معين، وعددهم يصل 589 ، لكن يمكن أن تقوم بتحميل لسكريبتات أخرى من الإنترنت.
وكل واحد منها يقوم بأمر معين، ك enumeration ل Mysql مثلاً، وأمور خاصة ب Oracle وأخرى خاصة Https وهكذا.
فيمكنك البحث عن السكريبتات وتقرأ عن كل منها، وتجعل nmap؛ ينفذها.
فحص سكريبت ftp
لدينا ftp.vsftpd.backdoor.nse ننسخه، قبل قليل رأينا منفذ 21 على Metasploitable تعمل عليه خدمة ftp إصدارها vsftp 2.3.4 .
بما أن كلاهما vsftp سنحاول أن نكتب:
nmap –script= ftp.vsftpd.backdoor.nse 10.0.2.14
ويعني أننا نريد من nmap؛ أن ينفذ هذا السكريبت على Metasploitable.
بعد أن أضفنا السكريبت قامت nmap؛ بإضافة شيء جديد، وهو تنفيذ السكريبت على منفذ 21 ويبحث عن ثغرة فيه.
ويجد أنه معرض للإصابة لأن النسخة خاصته2.3.4 و Exploitable و تفاصيل أخرى. مثل أن صلاحياتي أصبحت route.
فهذا السكريبت فقام بفحص الثغرات، ولو بحثت عن سكريبتات أخرى، مثل http service، nfs، وغيرها، فإن وجدت لها nmap؛ script أتعامل معها وأنفذذها إما أحدها أو أكثر.
فإن كتبت: nmap –script=ftp*10.0.2.14؛ بهذه الحالة سيقوم بتنفيذ كل السكريبتات التي تبدأ ب ftp.
فحص سكريبت sc
وهو فحص مكافئ للافتراضي: nmap–script=default 10.0.2.14؛
ألاحظ عندما قلت له default قام بتنفيذ مجموعة كبيرة من السكريبتات، و nmap؛ يصنف السكريبتات ال 589 إلى تصنيفات مختلفة.
إحدى هذه التصنيفات تدعى default وتحوي مجموعة كبيرة من السكريبتات، عندما أطلب منه Default يقوم بتنفيذ كل السكريبتات المصنفة كذلك.
هناك تصنيف آخر يدعى Exploit
فإن كتبت: nmap — script=exploit؛ أي نفذ جميع السكريبتات الموجودة في nmap؛ التي نوعها exploit.
كتاب nmap:
هناك سكريبتات enumeration ، وغيرها وإن كنت تريد الإستزادة أكثر، يوجد رابط خاص ب nmap؛ على موقع nmap؛ لترجعوا له.
وهذه السكريبتات أصبحت تضيف لي، بالإضافة إلى نوع رقم المنفذ وحالته هل هو مفتوح أم مغلق، والخدمة، تضيف أموراً إضافية تخص المنافذ والخدمات.
يمكن أن أقرأها وأبحث عنها، وأجد ثغرات تفيدني في عملية جمع المعلومات ومعرفة الثغرات واستغلال الثغرات.
وحتى أرى الكتاب الخاص ب nmap؛ فالرابط في موقع nmap ويحوي على كل الخصائص الموجودة فيه وأمور إضافية ويعلمك كيف تكتب سكريبتات في nse وكيف تقوم بالفحص.
ويشرح كل شيء بالتفاصيل، وإن كنت سأشرح كل مافي nmap؛ أحتاج دورات كثيرة وعشرات الساعات ليتم شرحها بشكل كامل.
سنستكمل في الدرس القادم جميع الأمور الخاصة ب nmap.