أمن المعلوماتمقالات

مقال : فحص الخوادم و تطبيقات الويب عن طريق أداة Nikto

فحص الخوادم و تطبيقات الويب عن طريق أداة Nikto

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

 

تعتبر أداة nikto من إحدى الأدوات المهمة لأي مطور تطبيقات ويب أو أي مدير خوادم ويب, بحيث تقوم هذه الأداة بفحص خوادم الويب من الثغرات الأمنية و تقوم أيضا بفحص البرمجيات التي تعمل على هذه البرامج فيما اذا كانت هذه البرمجيات منتهية الصلاحية و يوجد إصدارات أحدث منها, كما أن هذه الأداة تستخدم في فحص تطبيقات الويب من الثغرات (مثل بعض الأخطاء في اعدادات هذه التطبيقات كترك ملف install.php دون حذفه في بعض الأنظمة المفتوحة المصدر) بالإضافة الى أنها تقوم بفحص أكثر من 6500 ملف CGI خطير يمكن أن تتواجد على خوادم الويب و غيرها من الأمور الأخرى المفيدة في اختبار اختراق خوادم و تطبيقات الويب.

 

أداة nikto هي أداة مفتوحة المصدر مكتوبة بلغة perl و تستخدم أيضا بما يسمى بتقييم نقاط الضعف أو ال vulnerability Assesment .

 

من ميزات اداة Nikto أنها :

* تدعم ال SSL
* تدعم ال HTTP Proxy بشكل كامل
* تقوم بإصدار التقارير بأنواع مختلفة (html, CSV و XML)
* تقوم بحفص الخوادم على العديد من المنافذ او ال Ports (بشكل افتراضي على منفذ 80)

بالإضافة الى العديد من الميزات المختلفة.

 

متطلبات تنصيب الاداة :

تتطلب اداة Nikto لكي تعمل بشكل طبيعي الى مايلي :

* perl
* perl modules
*OpenSSL

 

و تعمل هذه الأداة على أنظمة تشغيل مختلفة من Windows و Linux و Unix بالإضافة الى عملها على Mac OSX .

 

تنصيب الأداة :

 

سنتعرف الآن على كيفية تنصيب هذه الأداة على توزيعات لينكس المختلفة, حيث أن المتطلبات السابقة تكون موجودة بشكل إفتراضي على توزيعات لينكس, ولكن لو فرضنا بأن هذه المتطلبات غير موجودة على توزيعة لينكس فانه يمكننا تنصيبها عن طريق اي برنامج من برامج ادارة الحزم او ما تسمى package manager في توزيعات لينكس سواء yum أم apt-get .

 

بالنسبة لتوزيعات Redhat/CentOS/Fedora و التي تعتمد على مدير حزم yum فانه يمكننا تنصيب المتطلبات بالأمر التالي :

yum install perl perl-Net-SSLeay openssl

 

اما بالنسبة لتوزيعات Ubuntu/Debian/Linux Mint و التي تعتمد على مدير حزم apt-get فانه يمكننا تنصيب هذه المتطلبات بالشكل التالي :

apt-get install perl openssl libnet-ssleay-perl

 

بعد أن قمنا بتنصيب المتطلبات السابقة لعمل ال nikto يجب علينا الآن تنصيب ال nikto و يمكننا ذلك بعدة طرق, و من هذه الطرق أن نقوم بالدخول لرابط موقع أداة nikto على الرابط التالي :

http://www.cirt.net/Nikto2

 

و من ثم تحميل ملف النسخة الأخيرة المضغوط اما من المتصفح بشكل مباشر أو من سطر الأوامر بإستخدم الأمر wget.

 

عند تحميل الملف على الجهاز سنقوم بفك ضغط الملف بإستخدام الأمر التالي :

tar -xvf nikto-2.1.5.tar.gz

 

* ملاحظة : الإصدار المستخدم في هذا الدرس هو 2.1.5 فاذا تم اصدار نسخة أحدث ما عليك الا كتابة اسم الملف المراد 🙂

 

بعدها قم بالدخول للمجلد الذي تم فك ضغطه و عمل فك للأرشفة .

طبعا هنالك طريقة أخرى لتنصيب الأداة على اللينكس و هي بإستخدم مدير الحزم و بالطريقة التالية :

yum install nikto

او

apt-get install nikto

 

طبعا يعتمد ذلك على توزيعة اللينكس المستخدمة كما تم ذكره سابقا.

 

كيفية استخدام الأداة :

 

دعونا الآن نتعرف على كيفية استخدام الأداة في فحص تطبيقات و خوادم الويب.

 

لتشغيل الأداة فاننا سنقوم بالدخول من سطر الأوامر لمجلد الأداة و تنفيذ الأمر التالي :

perl nikto.pl

ستظهر رسالة خطأ و سبب ذلك عدم ذكر أي خيار للأداة بالإضافة الى ظهور مساعدة بسيطة و التي تحتوي على شرح بسيط عن الخيارات الموجودة وهي كما في الشكل التالي :

help_1

لو أردنا اظهار مساعدة لجميع الخصائص الموجودة في الأداة فاننا نقوم بكتابة الأمر السابق و إضافة الخيار -H ليصبح الأمر كالآتي :

perl nikto.pl -H

 

فسيظهر لنا الناتج التالي (هذا جزء من الناتج) :

help_2

 

 

الآن لو أردنا أن نقوم بفحص موقع ما فإننا نقوم بإضافة الخيار -h و الذي يدل على اسم النطاق او عنوان الإنترنت (IP Address) الخاص بالموقع او الخادم المراد فحصه وذلك بالشكل التالي :

perl nikto.pl -h 192.168.40.134

 

و ستكون النتيجة كما الشكل التالي :

scan_1

 

بحيث تحتوي النتائج على شرح عن كل شيء تم ايجاده في التطبيق او الخادم من برمجيات منتهية و اي تحديث لهذه البرمجيات مثل ال Apache و ال openssl وغيرها من الأمور, كما أنها تقوم بعرض أي ملفات افتراضية توجد على سيرفر الويب مثل ملفات الإعدادات و التي يمكن من خلالها الحصول على معلومات قد تؤدي الى اختراق الموقع و الخادم, كما أنها ستقوم بإظهار أي مجلدات مشهورة و التي يمكننا من خلالها الوصول الى لوحة التحكم الخاصة بالتطبيق و غيرها, بالإضافة الى فحص أي مجلد من انه يسمح بعرض المحتويات ام لا (خاصية ال Directory Listing) و غيرها من الخصائص المختلفة..

 

ماذا لو أردنا فحص منفذ آخر, فلو فرضنا بأن تطبيق الويب المراد فحصه يعمل على منفذ او port آخر مثل منفذ 443 و الخاص بال HTTPS أو أي منفذ آخر فإننا نقوم بإضافة الخيار -p و ذلك بالشكل التالي :

 

perl nikto.pl -h 192.168.40.134 -p 443

 

و سيكون الناتج كالسابق الا أن التطبيق الذي سأقوم بفحصه لا يعمل على منفذ 443 🙁

 

اذا أردنا الآن فحص اكثر من منفذ فاننا نقوم بوضع المنافذ المراد فحصها اذا كانت قليلة وراء بعض و بوجود فاصلة بين كل منفذ و آخر أو اذا كانت مجموعة كبيرة و موجودة بشكل متسلسل فاننا نقوم بكتابة المجال المراد فصحه على الشكل التالي 80-443 و المثالين التاليين يوضحان الامر :

perl nikto.pl -h 192.168.40.134 -p 80,443

perl nikto.pl -h 192.168.40.134 -p 80-100

 

لو أردنا الآن أن نقوم بإستخدام الأداة عن طريق جهاز وسيط أو ما يسمى ب Proxy لعدة أسباب, فمثلا أنا في المكان الذي اعمل فيه أحتاج الى Proxy Server للخروج للإنترنت و تصفح المواقع, او يمكن انني أريد ذلك بحيث لا يتم تسجيل الطلبات التي أرسلتها الأداة بعنوان الإنترنت الخاص بي او لغيرها من الاسباب فهنالك عدة طرق للقيام بذلك .

 

أول هذه الطرق هو كتابة و تخزين عنوان و بيانات ال proxy server في ملف ال nikto.conf و الموجود في المجلد الرئيسي لل nikto و ذلك عن طريق الأمر التالي :

vi nikto.conf

 

حيث يحتوي هذا الملف على جميع الإعدادات الخاصة باداة nikto, مثلا اذا أردنا وضع UserAgent و proxy و غيرها, ثم نقوم بالذهاب لجزء ال Proxy كما في الشكل التالي و نحدد البيانات :

 

scan_3

 

و من ثم نقوم بإضافة الخيار -useproxy وذلك كما في الأمر التالي :

perl nikto.pl -h 192.168.40.134 -useproxy

 

أو يمكننا الإستعاضة عن التعديل على الملف السابق بكتابة بيانات ال proxy server بعد -useproxy في الأمر و ذلك بالشكل التالي :

 

perl nikto.pl -h 192.168.40.134 -useproxy http://172.16.16.37:8080

 

لو فرضنا بأننا نريد القيام بفحص مجلد معين داخل تطبيق الويب, فالأوامر السابقة قامت بفحص المجلد الرئيسي للموقع, يمكننا القيام بذلك عن طريق استخدام الخيار -root والذي يمكننا من خلاله تحديث مسار المجلد المراد فحصه و ذلك بالشكل التالي :

 

perl nikto.pl -h 192.168.40.134 -root /admin

 

في الامر السابق قمنا بفحص جميع الأمور الموجودة في المجلد admin

 

أيضا يمكننا الإحتفاظ بالنتائج على شكل تقرير مقروء اما على شكل html او csv او xml وذلك عن طريق الخيارين التاليين و هما -output الذي نحدد من خلاله مسار الملف المراد تخزين النتائج عليه و الخيار -Format و الذي نحدد من خلاله شكل النتائج و ذلك كما في المثال التالي حيث سنقوم بحفظ التقرير على المسار /root/Desktop/report.html و سيكون تنسيق التقرير عبارة عن html :

 

perl nikto.pl -h 192.168.40.134 -outpu /root/Desktop/report.html -Format html

 

ماذا لو أردنا القيام بتحديث الأداة لآخر إصدار بالإضافة الى تحديث ال plugins و ال database الخاصة بهذه الأداة, يمكننا القيام بذلك عن طريق كتابة الأمر التالي :

 

perl nikto.pl -update

 

طبعا ما قمنا بشرحه هو بعض الأمور البسيطة التي يمكننا القيام بها عن طريق هذه الاداة و يمكنكم الإطلاع على باقي الأمور من خلال موقع الأداة الخاص و الذي تم ذكره سابقا 🙂

انتظرونا في الفيديو الخاص بهذه الأداة ان كنتم تحبون مشاهدة الشروحات على شك فيديو وليس قراءتها على شكل مقال 😀

نتمنى لكم قراءة مفيدة و ممتعة

الوسوم

محمد خريشة

مهندس حاسوب من الأردن مهتم ومهووس بكل ماله علاقة بالتقنية على اختلاف اصنافها, عملت و مازلت اعمل كمطور لمواقع الويب بشكل فردي, عملت بمؤسسات اردنية كمهندس شبكات ومن ثم مهندس انظمة و حماية و الآن أعمل كمدير لقواعد بيانات اوراكل بالإضافة الى ادراة خوادم *nix , لدي خبرة بالتعامل و ادارة نظام تشغيل OpenVMS و نظام البريد الإلكتروني Exchange Server من شركة مايكروسوفت . من اهتماماتي اثراء المحتوى التقني العربي بكل ما هو جديد.

مقالات ذات صلة

‫2 تعليقات

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

18 − 6 =

إغلاق