اختبار الاختراق لمواقع ووردبريس
نشرت: 2020-03-20يقوم WordPress بتشغيل الكثير من مواقع الويب على الإنترنت. لذلك ليس من المستغرب أن المهاجمين المخضرمين و "أطفال البرامج النصية" يحبون استهداف مواقع WordPress على الويب. سواء كنت مشرف موقع أو متخصصًا في مجال الأمان ، عند تكليفك بتقييم الوضع الأمني لموقع WordPress على الويب ، فإنه يميل إلى المساعدة في أن تكون على دراية بمخاطر الأمان الشائعة التي يستفيد منها المهاجمون عادةً. من المهم أيضًا استخدام أدوات اختبار الاختراق الصحيحة.
في هذه المقالة ، سأغطي عددًا من الثغرات الأمنية الشائعة والممارسات الخاطئة والمعلومات المفيدة التي قد يتمكن المهاجم من إساءة استخدامها في العديد من تثبيتات WordPress. سأقوم أيضًا بتسليط الضوء على عدد من الأدوات التي يمكنك استخدامها لمساعدتك في أتمتة اختبار اختراق WordPress.
تنبيه - قم بإجراء اختبار اختراق الأمان فقط على الأنظمة التي تخصك ، أو تم منحك الإذن بذلك. افهم حدود الوصول الممنوح لك وابق ضمن هذه الحدود.
المشاكل الأمنية الشائعة في ووردبريس والممارسات الخاطئة
إصدارات قديمة من كود WordPress
يمكن القول إن تشغيل الإصدارات القديمة من نواة WordPress التي تحتوي على ثغرات أمنية هو أحد أكثر الثغرات الأمنية شيوعًا المتعلقة بـ WordPress. بينما تسهل الإصدارات الأحدث من WordPress الترقية إلى أحدث إصدار ، فليس من غير المألوف أن تتخلف مواقع WordPress القديمة.
يعد تشغيل إصدار قديم من WordPress على الإنترنت قنبلة موقوتة. تحتوي العديد من الإصدارات القديمة من WordPress على ثغرات أمنية. يتم استغلال العديد من هذه المشكلات الأمنية بشكل جماعي من قبل المهاجمين.
عند تدقيق موقع WordPress على الويب بحثًا عن ثغرات أمنية ، يعد هذا عادةً أحد الأشياء الأولى التي تريد التحقق منها. لحسن الحظ بالنسبة للمهاجمين ، يضيف WordPress بشكل افتراضي علامة وصفية HTML تحتوي على إصدار WordPress المستخدم.
<meta name = "generator" content = "WordPress 4.8.11 ″ />
إن معرفة أن تثبيت WordPress يعمل بإصدار قديم قد يمنح المهاجم فرصة للاستفادة من ثغرة معروفة. استخدم قاعدة بيانات الثغرات الأمنية CVE للبحث عن مشكلات الأمان المعروفة في WordPress الأساسية.
الإصدارات القديمة من قوالب WordPress والإضافات
نواة WordPress آمنة للغاية. يختبر الملايين من المستخدمين والمتسللين الخبثاء على حد سواء الشفرة ويراجعونها بدقة. هذا يعني أنه في معظم الأحيان ، يتم رصد مشكلات الأمان وإصلاحها قبل أن يسيء المهاجمون استخدامها. ومع ذلك ، فهي ليست محصنة ضد الثغرات الأمنية. لسوء الحظ ، لا ينطبق هذا على آلاف المكونات الإضافية والسمات في WordPress.
يمكن لأي شخص إرسال سمة أو مكون إضافي وإتاحته لأي مسؤول WordPress للتنزيل والاستخدام. بالطبع ، هذا لا يعني أن كل مكون إضافي من WordPress مشفر بشكل سيء ومليء بالثغرات الأمنية - بعيدًا عن ذلك. ومع ذلك ، فإن نقاط الضعف المعروفة تعرض سطح هجوم هائل لـ WordPress والذي يجب أن تكون على دراية به عند إجراء اختبار اختراق WordPress.
الأداة الأسرع والأكثر شمولاً التي يمكن استخدامها لأخذ بصمات الإضافات والسمات الضعيفة في WordPress هي استخدام WPScan. WPScan عبارة عن فاحص أمان مفتوح المصدر على WordPress يستخدم بشكل متكرر لفحص مواقع WordPress على الويب بحثًا عن نقاط الضعف المعروفة داخل الأساسي والمكونات الإضافية والسمات.
عند استخدام WPScan أثناء اختبار pentest ، تأكد من تسجيلك وتكوينه لاستخدام مفتاح WPScan Vulnerability Database API. قاعدة بيانات WPScan Vulnerability Database هي قاعدة بيانات يحتفظ بها مؤلفو WPScan مع أحدث الثغرات الأمنية المعروفة والإصدارات الخاصة بها.
لمزيد من المعلومات حول WPScan وكيفية تشغيل أنواع مختلفة من عمليات المسح ، راجع بدء استخدام WPScan.
الإصدارات القديمة من PHP وخوادم الويب
WordPress هو تطبيق ويب PHP ، وبالتالي فإن أفضل ممارسات أمان PHP تنطبق على WordPress أيضًا. أثناء اختبار اختراق WordPress ، يعد هذا من أول الأشياء التي يجب البحث عنها. قد تؤدي عمليات تثبيت WordPress التي تعمل بإصدارات قديمة من PHP أو برنامج خادم الويب (مثل Nginx و Apache HTTP Server و IIS…) إلى تعريض موقع الويب لجميع أنواع الهجمات المختلفة.
من السهل جدًا معرفة خادم الويب وإصدار PHP الذي يستخدمه موقع WordPress. في كثير من الحالات ، كل ما يحتاجه المهاجم هو ببساطة الانتباه عن كثب إلى رؤوس استجابة HTTP التي يتم إرجاعها من موقع الويب. يمكنك إرسال طلب بنفسك باستخدام curl:
$ curl -s -D - http://167.71.67.124/ -o / dev / null | grep -i "Server \ | X-Powered-By"
ابحث عن رؤوس الخادم و X-Powered-By HTTP في الاستجابة:
الخادم: Apache / 2.4.29 (Ubuntu)
X-Powered-By: PHP / 5.5.9
اعتمادًا على إصدار موقع الويب وتكوينه ، قد يتمكن المهاجم من استخدام نقاط الضعف المعروفة (مثل https://www.cvedetails.com/vendor/74/PHP.html) للحصول على معلومات إضافية حول الهدف. يمكن أن تساعد هذه المعلومات في تصعيد الهجوم ، أو حتى تنفيذ الأوامر مباشرة على خادم الويب.
تعداد اسم مستخدم WordPress
ما لم يتخذ مسؤول النظام خطوات لمنعه ، بشكل افتراضي ، يكون WordPress عرضة لهجمات تعداد المستخدم. هجمات تعداد مستخدمي WordPress ، ابحث عن الاختلافات الدقيقة في كيفية استجابة WordPress لطلبات معينة. اعتمادًا على الرد ، يمكن للمهاجم تحديد ما إذا كان المستخدم موجودًا أم لا ، مما يسمح للمهاجم باستخدام هذه المعلومات على الأرجح كجزء من هجوم أكبر.
فيما يلي لقطة شاشة لـ WPScan أثناء تنفيذ هجوم تعداد اسم مستخدم WordPress.
أخطاء تكوين خادم الويب
قائمة الدليل والتشكيلات الخاطئة الأخرى لخادم الويب
بصرف النظر عن البرامج القديمة ، يجب على المرء دائمًا تقييم أي تكوينات خاطئة محتملة لخادم الويب. قد يترك خادم الويب الذي تم تكوينه بشكل خاطئ موقع WordPress الإلكتروني عرضة للاستغلال. يمكن أن يحدث هذا حتى إذا كان خادم الويب يقوم بتشغيل أحدث البرامج. فيما يلي بعض التكوينات الخاطئة النموذجية لخادم الويب:
تمكين قائمة الدليل
قائمة الدليل هي خطأ شائع جدا في التكوين. تقوم خوادم الويب Apache بتمكين هذا افتراضيًا ، وهذا لا يساعد. قائمة الدليل تسرد ببساطة الملفات والأدلة على خادم الويب في واجهة رسومية في حالة عدم وجود ملف فهرس.
في حين أن هذا في حد ذاته ليس ضارًا بشكل خاص ، فإنه يوفر للمهاجم إمكانية تصفح محتويات دليل خادم الويب الخاص بك. قد يسمح له ذلك برؤية جميع الملفات الموجودة على موقع الويب الخاص بك ، والتي يجب ألا يكون معظمها متاحًا للجمهور ولكن مثل النسخ الاحتياطية وكلمات المرور وملفات التكوين.
ملفات النسخ الاحتياطي
ملفات النسخ الاحتياطي هي تكوين خاطئ آخر شائع لخادم الويب . يحدث ذلك عادةً عندما يقوم مسؤولو النظام بتحرير الملفات يدويًا على أنظمة الإنتاج.
من الأمثلة الشائعة لملفات النسخ الاحتياطي التي تعرض معلومات قد تكون حساسة هي النسخ الاحتياطية لملفات PHP. تحتوي ملفات PHP أحيانًا على بيانات تكوين مهمة - مثل ملف wp-config.php الخاص بـ WordPress.
خذ السيناريو التالي - يحتاج مسؤول WordPress إلى إجراء تغييرات على ملف wp-config.php. بدلاً من اتباع أفضل الممارسات والاحتفاظ بنسخة من الملف في مكان آخر غير خادم الويب ، يقومون بعمل نسخة من ملف wp-config.php المباشر ، مع تسمية النسخة الاحتياطية wp-config.php.bak. لنفترض الآن أن مسؤول النظام قد نسي إزالة هذا الملف ، والذي يحدث في كثير من الأحيان أكثر مما نعتقد.
يمكن للمهاجم الآن قراءة الملف بمجرد طلب http://www.example.com/wp-config.php.bak . يمكن للمهاجم قراءة الملف لأن امتداده ليس .php بعد الآن. لذلك يتجاهلها محرك PHP ويعمل خادم الويب كملف نصي. يعرف المهاجم الآن بيانات اعتماد قاعدة بيانات WordPress والرموز المميزة وأي معلومات تكوين حساسة أخرى قمت بحفظها في هذا الملف.
ملفات مؤقتة
على غرار ملفات النسخ الاحتياطي ، قد تعرض الملفات المؤقتة الموجودة في الموقع الخطأ بيانات يحتمل أن تكون حساسة. أخذ ملف wp-config.php كمثال مرة أخرى. إذا اضطر مسؤول النظام إلى تحرير هذا الملف باستخدام محرر نصوص ، ولسبب ما لم يخرج البرنامج بشكل سليم ، فهناك فرصة جيدة أن يترك المحرر ملفات مؤقتة. على سبيل المثال ، يقوم محرر سطر الأوامر الشهير Vim بتخزين ملفات النسخ الاحتياطي بامتداد الملف * .ext ~ مع ملف * .ext.swp. يتم استخدام ملفات swp كملف قفل. تحتوي أيضًا على كل محفوظات التراجع / الإعادة والمعلومات الداخلية الأخرى التي يحتاجها Vim.
لذلك في حالة حدوث عطل ، يترك Vim خلفه ملف wp-config.php.ext ~ والذي يمكن الوصول إليه بنص عادي مثل ملفات النسخ الاحتياطي لأنه لا ينتهي بامتداد الملف * .php. الملفات المؤقتة من هذا النوع ليست حصرية لـ Vim - Emacs (محرر نصوص سطر أوامر آخر) يحفظ أيضًا ملفات مؤقتة مماثلة ، وهناك عدد لا يحصى من الأدوات الأخرى تفعل ذلك أيضًا.
تنبيه - استخدم مكونًا إضافيًا لمراقبة سلامة الملفات لموقعك على الويب لتنبيهك بجميع تغييرات الملفات ، بما في ذلك الملفات المؤقتة والنسخ الاحتياطي. إذا لم تكن معتادًا على هذه التقنية ، فاقرأ مقدمتنا حول مراقبة سلامة الملفات في WordPress.
مكشوف MySQL
إلى حد بعيد ، فإن أحد أكثر التكوينات الخاطئة خطورة التي قد يقوم بها مسؤول النظام هو ترك خادم قاعدة بيانات WordPress MySQL مفتوحًا على الإنترنت. لماذا قد يبدو هذا جنونًا ، فمن المحتمل أن يحدث أكثر مما تعتقد. يوجد أدناه لقطة شاشة من Shodan ، محرك بحث للأجهزة المتصلة بالإنترنت.
بالطبع ، فقط لأن MySQL مكشوفة عبر الإنترنت لا يعني أنه يمكن لأي شخص الاتصال بها والوصول إلى قاعدة بيانات WordPress. ومع ذلك ، خاصة إذا تم استخدامه مع هجمات أخرى ، مثل كلمة مرور مسربة عبر نسخة احتياطية من ملف wp-config.php ، أو تخمين كلمة مرور ضعيفة ، فقد يؤدي ذلك إلى حدوث سيناريو كارثي.
بمجرد التحكم في قاعدة بيانات WordPress ، تنتهي اللعبة لتثبيت WordPress. كل ما يحتاجه المهاجم هو إعادة تعيين كلمة مرور المسؤول. ثم يتحكمون إلى حد كبير في موقع WordPress الخاص بك ، وربما حتى الخادم الذي يعمل عليه عن طريق تثبيت المكونات الإضافية الضارة عن قصد.
تشغيل الخدمات غير الضرورية
هناك مشكلة أخرى شائعة في التكوين الخاطئ لخادم الويب وهي التكوين الافتراضي. يقوم العديد من المسؤولين بتشغيل التكوين الافتراضي ولا يقوموا بتعطيل الخدمات التي لا يحتاجونها. في معظم الحالات ، تحتوي التثبيتات الافتراضية على الكثير من الخدمات غير الضرورية قيد التشغيل ، ومعظمها ، إن لم يكن مؤمنًا ، يعرض خادم الويب للهجمات.
أدوات Pentesting لمختبري اختراق WordPress ومحترفي الأمن
يستخدم مختبرو الاختراق مجموعة متنوعة من الأدوات لأتمتة عملهم وتقنياتهم. تساعد الأتمتة في تقليل الوقت المستغرق لإجراء تقييم أمني / اختبار اختراق.
كالي لينكس
الأدوات التي يستخدمها المرء تختلف اختلافا كبيرا. يعتمد ذلك على التفضيل الشخصي والمشكلة المطروحة. ومع ذلك ، فإن أفضل مكان للبدء هو أن يكون لديك مجموعة متنوعة من الأدوات تحت تصرفك ومثبتة مسبقًا.
Kali Linux ، المعروفة سابقًا باسم BackTrack ، هي أداة اختراق مفتوحة المصدر لاختبار توزيع Linux. يأتي Kali Linux مرفقًا بمجموعة كاملة من الأدوات المثبتة مسبقًا والمهيأة مسبقًا. إنه مفيد للمستخدمين المبتدئين الذين يتطلعون إلى البدء بسرعة ، وكذلك لمختبري الاختراق ذوي الخبرة. يتوفر Kali Linux مجانًا ويمكن تشغيله على جهاز افتراضي.
Nmap
يعد هذا الماسح الضوئي المجاني أحد أكثر الماسحات الضوئية تأسيسًا وتنوعًا في ترسانة أسلحة pentester. Nmap هو في الأساس ماسح ضوئي للمنافذ. ومع ذلك ، يمكن تمديده للقيام بجميع أنواع المسح الضوئي المختلفة عبر لغة البرمجة النصية NSE الخاصة به.
WPScan
WPScan (تم تناوله سابقًا في هذه المقالة) هو ماسح أمان مفتوح المصدر لبرنامج WordPress. يقوم بالمسح بحثًا عن نقاط الضعف المعروفة في WordPress - سواء داخل نواة WordPress أو داخل مكونات WordPress الإضافية والقوالب.
يمكن لـ WPScan إجراء سلسلة من اختبارات الصندوق الأسود. هذا هو ، دون الوصول إلى شفرة المصدر. نتيجة لذلك ، يعد WPScan رائعًا للعثور على ثغرات WordPress منخفضة المعلقة بسرعة وبدقة.
OWASP ZAP
OWASP Zed Attack Proxy (ZAP) هو أداة مجانية لاختبار اختراق تطبيقات الويب ومفتوحة المصدر. يحافظ مشروع أمان تطبيق الويب المفتوح (OWASP) على هذه الأدوات. تم تصميم OWASP ZAP خصيصًا لاختبار تطبيقات الويب لمجموعة متنوعة من نقاط الضعف مثل البرمجة النصية عبر المواقع (XSS) و SQL Injection (SQLi). ZAP ، في جوهره هو وكيل. يقع بين متصفح pentester والموقع لاعتراض وفحص الطلبات المرسلة بين الاثنين.
بالإضافة إلى العمل كوكيل ، يمكن لـ ZAP أيضًا اختبار مجموعة متنوعة من الثغرات الأمنية تلقائيًا ، ويمكنه أيضًا تشويش مجموعة متنوعة من المدخلات. التشويش هو أسلوب اختبار أمان يتم فيه توفير مدخلات غير صالحة أو غير متوقعة لأحد التطبيقات بهدف الكشف عن الثغرات الأمنية.
اختبار الاختراق لـ WordPress - تقييم الوضع الأمني لموقعك على الويب
لا يعد أمان WordPress حلاً لمرة واحدة. إنها عملية مستمرة تستند إلى أربعة مبادئ: Harden> Monitor> Test> Enhancer. مع اختبار الاختراق أنت تتناول مبدأ الاختبار . أي أن تتحقق من الوضع الأمني لموقعك على الويب. ثم يمكنك اتخاذ الإجراءات اللازمة لتحسين الإعداد بناءً على النتائج التي توصلت إليها.
لذلك يجب أن يكون اختبار اختراق موقع WordPress المتكرر جزءًا من برنامج الأمان الخاص بك. أنت تحكم على مدى تكرار إجراء اختبارات الاختراق. إذا قمت بإجراء تغييرات متكررة على موقع الويب الخاص بك ، فيجب عليك إجراء اختبارات متكررة. ومع ذلك ، فإن اختبار الاختراق ربع السنوي يفي بالغرض إذا كان موقع الويب الخاص بك نادراً ما يحصل على تحديث.