
مسح متقدم للثغرات باستخدام Nmap NSE
Vulscan هي وحدة تعمل على تحسين nmap لتصبح ماسحًا للثغرات الأمنية. خيار nmap -sV يتيح اكتشاف الإصدار لكل خدمة والذي يُستخدم لتحديد العيوب المحتملة بناءً على المنتج المُحدد. يتم البحث في البيانات ضمن نسخة محلية من VulDB.
يرجى تثبيت الملفات في المجلد التالي من تثبيت Nmap الخاص بك:
Nmap\scripts\vulscan\*
استنساخ مستودع GitHub كما يلي:
git clone https://github.com/scipag/vulscan scipag_vulscan
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
يجب تشغيل الأمر البسيط التالي لبدء فحص ثغرات أساسي:
nmap -sV --script=vulscan/vulscan.nse www.example.com
تتوفر حاليًا قواعد البيانات المثبتة مسبقًا التالية:
يمكنك تشغيل vulscan باستخدام الوسيطة التالية لاستخدام قاعدة بيانات واحدة:
--script-args vulscandb=your_own_database
من الممكن أيضًا إنشاء قواعد البيانات الخاصة بك والإشارة إليها. يتطلب ذلك إنشاء ملف قاعدة بيانات، والذي له البنية التالية:
<id>;<title>
قم فقط بتشغيل vulscan كما تفعل بالإشارة إلى إحدى قواعد البيانات المقدمة مسبقًا. لا تتردد في مشاركة قاعدة البيانات الخاصة بك وربط الثغرات معي، لإضافتها إلى المستودع الرسمي.
يتم تحديث قواعد بيانات الثغرات وتجميعها بشكل منتظم. لدعم أحدث الثغرات المُعلن عنها، حافظ على تحديث قواعد بيانات الثغرات المحلية لديك.
لتحديث قواعد البيانات تلقائيًا، ما عليك سوى تعيين أذونات التنفيذ لملف update.sh وتشغيله:
chmod 744 update.sh
./update.sh
إذا كنت ترغب في تحديث قواعد بياناتك يدويًا، فانتقل إلى موقع الويب التالي وقم بتنزيل هذه الملفات:
انسخ الملفات إلى مجلد vulscan الخاص بك:
/vulscan/
إذا تمكن اكتشاف الإصدار من تحديد إصدار البرنامج وكانت قاعدة بيانات الثغرات توفر هذه التفاصيل، فسيتم أيضًا مطابقة هذه البيانات.
قد يؤدي تعطيل هذه الميزة إلى ظهور نتائج إيجابية خاطئة ولكنه قد يزيل النتائج السلبية الخاطئة ويزيد الأداء قليلاً. إذا كنت تريد تعطيل مطابقة الإصدار الإضافية، استخدم الوسيطة التالية:
--script-args vulscanversiondetection=0
اكتشاف الإصدار في vulscan يكون بنفس جودة اكتشاف إصدار Nmap وإدخالات قاعدة بيانات الثغرات. بعض قواعد البيانات لا توفر معلومات إصدار قاطعة، مما قد يؤدي إلى الكثير من النتائج الإيجابية الخاطئة (كما يمكن رؤيته لخوادم Apache).
يحاول البرنامج النصي تحديد أفضل التطابقات فقط. إذا لم يتم العثور على تطابق إيجابي، يتم عرض أفضل تطابق ممكن (قد يكون إيجابيًا خاطئًا).
إذا كنت تريد عرض جميع التطابقات، والتي قد تؤدي إلى ظهور الكثير من النتائج الإيجابية الخاطئة ولكنها قد تكون مفيدة لمزيد من التحقيق، فاستخدم الوسيطة التالية:
--script-args vulscanshowall=1
يساعدك الوضع التفاعلي على تجاوز نتائج اكتشاف الإصدار لكل منفذ. استخدم الوسيطة التالية لتمكين الوضع التفاعلي:
--script-args vulscaninteractive=1
تتم طباعة جميع نتائج المطابقة سطرًا بسطر. التنسيق الافتراضي لذلك هو:
[{id}] {title}\n
من الممكن استخدام هيكل تقرير محدد مسبقًا آخر باستخدام الوسيطة التالية:
--script-args vulscanoutput=details
--script-args vulscanoutput=listid
--script-args vulscanoutput=listlink
--script-args vulscanoutput=listtitle
يمكنك فرض هيكل التقرير الخاص بك باستخدام الوسيطة التالية (بعض الأمثلة):
--script-args vulscanoutput='{link}\n{title}\n\n'
--script-args vulscanoutput='ID: {id} - Title: {title} ({matches})\n'
--script-args vulscanoutput='{id} | {product} | {version}\n'
العناصر التالية مدعومة لقالب تقرير ديناميكي:
تأتي كل قاعدة بيانات افتراضية مع عنوان URL ورابط، يُستخدم أثناء الفحص ويمكن الوصول إليه كـ {link} داخل قالب التقرير المخصص. لاستخدام روابط قاعدة بيانات مخصصة، استخدم الوسيطة التالية:
--script-args "vulscandblink=http://example.org/{id}"
ضع في اعتبارك أن هذا النوع من فحص الثغرات المشتقة يعتمد بشكل كبير على موثوقية اكتشاف الإصدار في nmap، وعدد الثغرات الموثقة، ودقة مطابقة الأنماط. لا يتم التحقق من وجود العيوب المحتملة من خلال الفحص الإضافي أو تقنيات الاستغلال.