Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك
في الماضي مقالة تحدثنا عنه نيميسيدا WAF مجاني - أداة مجانية لحماية مواقع الويب وواجهات برمجة التطبيقات من هجمات المتسللين، وفي هذه الأداة قررنا مراجعة أداة فحص الثغرات الشائعة الظبيان.

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

Nikto، W3af (المكتوب بلغة Python 2.7، والذي لم يعد مدعومًا) أو Arachni (لم يعد مدعومًا منذ فبراير) هي الحلول الأكثر شيوعًا المقدمة في القطاع المجاني. وطبعا هناك غيرها مثل Wapiti التي قررنا التركيز عليها.

تعمل Wapiti مع أنواع الثغرات الأمنية التالية:

  • توسيع الملف (المحلي والبعيد، fopen، readfile)؛
  • الحقن (حقن PHP / JSP / ASP / SQL وحقن XPath) ؛
  • XSS (البرمجة النصية عبر المواقع) (عاكسة ومستمرة)؛
  • كشف وتنفيذ الأوامر (eval()، system()، passtru())؛
  • حقن CRLF (تقسيم استجابة HTTP، تثبيت الجلسة)؛
  • تضمين XXE (كيان XML خارجي)؛
  • SSRF (تزوير طلب جانب الخادم) ؛
  • استخدام الملفات المعروفة التي يحتمل أن تكون خطرة (بفضل قاعدة بيانات Nikto)؛
  • تكوينات .htaccess الضعيفة التي يمكن تجاوزها؛
  • وجود ملفات احتياطية تكشف معلومات سرية (الكشف عن كود المصدر)؛
  • إرتجاج دماغي؛
  • عمليات إعادة التوجيه المفتوحة؛
  • طرق HTTP غير القياسية التي يمكن حلها (PUT).

الميزات:

  • دعم وكيل HTTP وHTTPS وSOCKS5؛
  • المصادقة باستخدام عدة طرق: Basic أو Digest أو Kerberos أو NTLM؛
  • القدرة على تحديد منطقة المسح (المجال، المجلد، الصفحة، URL)؛
  • الإزالة التلقائية لأحد المعلمات في عنوان URL؛
  • احتياطات متعددة ضد حلقات المسح التي لا نهاية لها (على سبيل المثال: ifor، تحديد قيم المعلمة)؛
  • القدرة على تحديد الأولوية لفحص عناوين URL (حتى لو لم تكن في منطقة الفحص)؛
  • القدرة على استبعاد بعض عناوين URL من الفحص والهجمات (على سبيل المثال: تسجيل الخروج من عنوان URL)؛
  • استيراد ملفات تعريف الارتباط (احصل عليها باستخدام أداة wapiti-getcookie)؛
  • القدرة على تفعيل/إلغاء تنشيط التحقق من شهادة SSL؛
  • القدرة على استخراج عناوين URL من JavaScript (مترجم JS بسيط جدًا)؛
  • التفاعل مع HTML5؛
  • عدة خيارات لإدارة سلوك الزاحف وقيوده؛
  • تحديد الحد الأقصى للوقت لعملية المسح.
  • إضافة بعض رؤوس HTTP المخصصة أو إعداد وكيل مستخدم مخصص.

ميزات إضافية:

  • إنشاء تقارير الضعف بتنسيقات مختلفة (HTML، XML، JSON، TXT)؛
  • إيقاف الفحص أو الهجوم مؤقتًا واستئنافه (آلية الجلسة باستخدام قواعد بيانات SQLite3)؛
  • الإضاءة الخلفية في الجهاز لتسليط الضوء على نقاط الضعف؛
  • مستويات مختلفة من قطع الأشجار.
  • طريقة سريعة وسهلة لتنشيط/إلغاء تنشيط وحدات الهجوم.

تركيب

يمكن تثبيت الإصدار الحالي من Wapiti بطريقتين:

  • تحميل المصدر من الرسمي сайта وتشغيل البرنامج النصي للتثبيت، بعد تثبيت Python3 مسبقًا؛
  • باستخدام الأمر pip3 install wapiti3.

بعد ذلك، سيكون وابيتي جاهزًا للانطلاق.

العمل مع الأداة

لتوضيح عمل Wapiti، سنستخدم منصة مُعدة خصيصًا sites.vulns.pentestit.ru (مورد داخلي)، تحتوي على نقاط الضعف المختلفة (Injection، XSS، LFI/RFI) وأوجه القصور الأخرى في تطبيقات الويب.

يتم توفير المعلومات لأغراض إعلامية فقط. لا تخرق القانون!

الأمر الأساسي لتشغيل الماسح الضوئي:

# wapiti -u <target> <options>

في الوقت نفسه، هناك مساعدة مفصلة للغاية مع عدد كبير من خيارات الإطلاق، على سبيل المثال:

--نِطَاق - منطقة التطبيق
إذا قمت بتحديد معلمة النطاق مع عنوان URL للزحف، فيمكنك ضبط منطقة الزحف للموقع عن طريق تحديد صفحة واحدة وجميع الصفحات التي يمكن العثور عليها على الموقع.

-s и -x - خيارات لإضافة أو إزالة عناوين URL محددة. تكون هذه الخيارات مفيدة عندما تحتاج إلى إضافة عنوان URL محدد أو إزالته أثناء عملية الزحف.

--يتخطى — سيتم فحص المعلمة المحددة بهذا المفتاح، لكن لن يتم مهاجمتها. يكون هذا مفيدًا في حالة وجود أي معلمات خطيرة من الأفضل استبعادها أثناء المسح.

--تحقق-ssl — تمكين أو تعطيل التحقق من الشهادة.
الماسح الضوئي Wapiti معياري. ومع ذلك، لتشغيل وحدات محددة، بما في ذلك تلك التي يتم توصيلها تلقائيًا أثناء تشغيل الماسح الضوئي، تحتاج إلى استخدام المفتاح -m وسرد الوحدات التي تحتاجها، مفصولة بفواصل. إذا لم يتم استخدام المفتاح، فستعمل جميع الوحدات بشكل افتراضي. في أبسط نسخة سيبدو كما يلي:

# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxe

يعني مثال الاستخدام هذا أننا سنستخدم وحدات SQL وXSS وXXE فقط عند فحص الهدف. بالإضافة إلى ذلك، يمكنك تصفية تشغيل الوحدات اعتمادًا على الطريقة المطلوبة. على سبيل المثال -m "xss: الحصول على، blindsql: نشر، xxe: نشر". في هذه الحالة، الوحدة النمطية XSS سيتم تطبيقه على الطلبات المرسلة باستخدام طريقة GET والوحدة النمطية blibdsql - لنشر الطلبات، وما إلى ذلك. بالمناسبة، إذا لم تكن هناك حاجة إلى بعض الوحدات التي تم تضمينها في القائمة أثناء المسح أو استغرقت وقتًا طويلاً جدًا، فيمكنك بالضغط على مجموعة Ctrl + C تخطي استخدام الوحدة الحالية عن طريق تحديد العنصر المقابل في القائمة التفاعلية.

يدعم Wapiti تمرير الطلبات عبر الوكيل باستخدام المفتاح -p والمصادقة على الموقع المستهدف من خلال المعلمة -a. يمكنك أيضًا تحديد نوع المصادقة: أساسي, استوعب, كيربيروس и NTLM. قد يتطلب الأخيران تثبيت وحدات إضافية. بالإضافة إلى ذلك، يمكنك إدراج أي رؤوس في الطلبات (بما في ذلك التعسفية عامل المستخدم) وأكثر بكثير.

لاستخدام المصادقة يمكنك استخدام الأداة wapiti-getcookie. بمساعدتها نشكل كوكي، والذي سيستخدمه Wapiti عند المسح. تشكيل كوكي تم مع الأمر:

# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.json

أثناء العمل بشكل تفاعلي، نقوم بالإجابة على الأسئلة والإشارة إلى المعلومات الضرورية مثل تسجيل الدخول وكلمة المرور وما إلى ذلك:

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

الإخراج هو ملف بتنسيق JSON. خيار آخر هو إضافة كافة المعلومات الضرورية من خلال المعلمة -d:

# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"

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

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

عند النظر في الوظيفة الرئيسية للماسح الضوئي، كان الطلب النهائي لاختبار تطبيق الويب في حالتنا هو:

# wapiti --level 1 -u http://sites.vulns.pentestit.ru/ -f html -o /tmp/vulns.html -m all --color -с cookie.json --scope folder --flush-session -A 'Pentestit Scans' -p http://proxy.office.pentestit.ru:3128

حيث من بين المعلمات الأخرى:

-f и -o — تنسيق ومسار حفظ التقرير؛

-m — لا ينصح بتوصيل جميع الوحدات، لأن سيؤثر على وقت الاختبار وحجم التقرير؛

--لون - تسليط الضوء على نقاط الضعف التي تم العثور عليها اعتمادًا على مدى أهميتها وفقًا لـ Wapiti نفسها؛

-c - باستخدام ملف مع كوكي، تم إنشاؤها باستخدام wapiti-getcookie;

--نِطَاق — اختيار هدف للهجوم. تحديد خيار مجلد سيتم الزحف إلى كل عنوان URL ومهاجمته، بدءًا من العنوان الأساسي. يجب أن يحتوي عنوان URL الأساسي على شرطة مائلة للأمام (بدون اسم ملف)؛

--جلسة فلوش — يسمح بالمسح المتكرر، حيث لن يتم أخذ النتائج السابقة بعين الاعتبار؛

-A - ملك عامل المستخدم;

-p — عنوان الخادم الوكيل، إذا لزم الأمر.

قليلا عن التقرير

يتم عرض نتيجة المسح في شكل تقرير مفصل عن جميع الثغرات الأمنية التي تم العثور عليها بتنسيق صفحة HTML، في نموذج واضح وسهل القراءة. سيشير التقرير إلى فئات وعدد الثغرات الأمنية التي تم العثور عليها وأوصافها وطلباتها وأوامرها حليقة ونصائح حول كيفية إغلاقها. ولسهولة التصفح سيتم إضافة رابط لأسماء الفئات، بالضغط عليه يمكنك الذهاب إليه:

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

ومن العيوب الكبيرة في التقرير عدم وجود خريطة لتطبيق الويب في حد ذاتها، والتي بدونها لن يكون من الواضح ما إذا كان قد تم تحليل جميع العناوين والمعلمات. هناك أيضًا احتمال وجود نتائج إيجابية كاذبة. وفي حالتنا، يتضمن التقرير "ملفات النسخ الاحتياطي" و"الملفات التي يحتمل أن تكون خطرة". عددهم لا يتوافق مع الواقع، حيث لم تكن هناك مثل هذه الملفات على الخادم:

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

ربما سيتم إصلاح الوحدات التي تعمل بشكل غير صحيح بمرور الوقت. عيب آخر في التقرير هو عدم تلوين الثغرات المكتشفة (اعتمادًا على مدى خطورتها)، أو على الأقل تقسيمها إلى فئات. الطريقة الوحيدة التي يمكننا من خلالها فهم أهمية الثغرة الأمنية التي تم اكتشافها بشكل غير مباشر هي استخدام المعلمة --لون أثناء المسح، وبعد ذلك سيتم تلوين الثغرات الموجودة بألوان مختلفة:

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

لكن التقرير نفسه لا يقدم مثل هذا التلوين.

نقاط الضعف

سكلي

تعامل الماسح الضوئي جزئيًا مع بحث SQLi. عند البحث عن ثغرات SQL في الصفحات التي لا تتطلب المصادقة، لا تنشأ أي مشاكل:

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

ولم يكن من الممكن العثور على ثغرة أمنية في الصفحات التي يمكن الوصول إليها إلا بعد المصادقة، حتى باستخدام صالحة كوكي، لأنه على الأرجح بعد المصادقة الناجحة، سيتم "تسجيل الخروج" من جلستهم و كوكي سوف تصبح غير صالحة. إذا تم تنفيذ وظيفة إلغاء التفويض كبرنامج نصي منفصل مسؤول عن معالجة هذا الإجراء، فسيكون من الممكن استبعادها بالكامل من خلال المعلمة -x، وبالتالي منعها من التشغيل. وإلا فلن يكون من الممكن استبعاد معالجتها. هذه ليست مشكلة في وحدة معينة، ولكن في الأداة ككل، ولكن بسبب هذا الفارق الدقيق، لم يكن من الممكن اكتشاف عدة حقن في منطقة موارد مغلقة.

XSS

تعامل الماسح الضوئي مع المهمة المحددة بشكل مثالي ووجد جميع نقاط الضعف المعدة:

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

LFI/RFI

عثر الماسح الضوئي على جميع نقاط الضعف الأساسية:

Wapiti - فحص الموقع بحثًا عن نقاط الضعف بنفسك

بشكل عام، على الرغم من الإيجابيات الخاطئة ونقاط الضعف المفقودة، فإن Wapiti، كأداة مجانية، تظهر نتائج أداء جيدة جدًا. على أية حال، تجدر الإشارة إلى أن الماسح الضوئي قوي للغاية ومرن ومتعدد الوظائف، والأهم من ذلك أنه مجاني، لذلك يحق استخدامه في مساعدة المسؤولين والمطورين في الحصول على المعلومات الأساسية حول الحالة الأمنية للويب طلب.

كن بصحة جيدة ومحمية!

المصدر: www.habr.com

إضافة تعليق