پیدا و حذف فایلهای آلوده بعد از هک وردپرس
پیدا و حذف فایلهای آلوده بعد از هک وردپرس: روشهای شناسایی، مقایسه با نسخه اصلی، تحلیل کد مخرب و پاکسازی امن.
پیدا و حذف فایلهای آلوده بعد از هک وردپرس، یکی از حساسترین مراحل پاکسازی است که بدون رویکردی دقیق، به بازگشت آلودگی یا از دست رفتن داده منجر میشود.
فایلهای آلوده، معمولاً در چند محل مشخص پنهان میشوند و شناسایی آنها نیازمند ابزارهای تخصصی و مقایسه با نسخههای اصلی است.
در این مقاله، چارچوبی عملی برای پیدا و حذف فایلهای آلوده ارائه میشود.
در پروژههای متعدد پاکسازی، دیدهام که فایلهای آلوده در پوشههای غیرمنتظره پنهان میشوند و شناسایی دقیق آنها، کلید ریشهکن کردن آلودگی است.
چرا فایلهای آلوده باقی میمانند؟
- پاکسازی سطحی بدون اسکن کامل.
- نبود مقایسه با نسخه اصلی.
- نادیده گرفتن فایلهای مخفی.
- نبود بررسی
wp-content. - نادیده گرفتن پوشه
uploads. - عدم بررسی cron jobs.
- عدم بررسی دیتابیس.
محلهای رایج فایلهای آلوده
| محل | نوع آلودگی |
|---|---|
| ریشه سایت | فایل PHP ناشناخته |
| wp-content/themes | کد مخرب در functions.php |
| wp-content/plugins | افزونه آلوده |
| wp-content/uploads | فایل PHP مخفی |
| wp-includes | کد مخرب در فایل هسته |
| wp-admin | کد مخرب در فایل مدیریت |
| .htaccess | ریدایرکت مخرب |
| wp-config.php | کد اضافی |
| index.php | کد مخرب |
| wp-content/mu-plugins | افزونه مخفی |
شناسایی فایلهای آلوده
روشهای شناسایی
- اسکن با Wordfence یا MalCare.
- مقایسه فایلهای هسته با نسخه اصلی.
- جستجوی الگوهای کد مخرب.
- بررسی تاریخ تغییر فایلها.
- بررسی فایلهای ناشناخته در پوشههای اصلی.
مقایسه با نسخه اصلی وردپرس
- دانلود نسخه جدید وردپرس از
wordpress.org. - استخراج در پوشه جداگانه.
- مقایسه با
diffیا ابزارهای تخصصی. - شناسایی فایلهای تغییریافته.
diff -r /original-wp/ /public_html/ --exclude=wp-content --exclude=wp-config.php
الگوهای کد مخرب
eval()base64_decode()gzinflate()str_rot13()shell_exec()exec()system()passthru()preg_replace()با/efile_get_contents()با URL ناشناخته- کد مخرب مبهمشده با
\xیاchr()
جستجوی خط فرمان
grep -r "eval(" /public_html --include="*.php" -l
grep -r "base64_decode" /public_html --include="*.php" -l
grep -r "shell_exec" /public_html --include="*.php" -l
بررسی تاریخ تغییر فایل
فایلهای هسته وردپرس، بهطور طبیعی در تاریخ نصب تغییر میکنند. اگر فایلهای هسته در تاریخ اخیر تغییر کرده باشند، احتمال آلودگی وجود دارد.
find /public_html -type f -mtime -7 -exec ls -la {} \;
ابزارهای تخصصی
- Wordfence: اسکن و شناسایی.
- MalCare: اسکن و پاکسازی سریع.
- Sucuri: اسکن حرفهای.
- Quttera: اسکن دقیق.
- VirusTotal: بررسی فایل مشکوک.
- ClamAV: اسکن سرور.
تحلیل دستی فایلها
- بررسی فایلهای جدید در پوشههای اصلی.
- بررسی تغییرات اخیر در فایلهای هسته.
- بررسی فایلهای ناشناخته در uploads.
- بررسی
.htaccessوwp-config.php. - بررسی
mu-plugins.
حذف امن فایلها
- بکاپ از فایل مورد نظر.
- تأیید آلودگی فایل.
- حذف فایل یا جایگزینی با نسخه اصلی.
- بررسی عملکرد سایت پس از حذف.
- پایش برای بازگشت.
بکاپ پیش از حذف
بکاپ از فایلهای آلوده، بهعنوان شاهد برای تحلیل آینده و برای بازگشت در صورت خطا ضروری است.
بازسازی فایلهای هسته
- دانلود نسخه اصلی وردپرس.
- حذف
wp-adminوwp-includes. - بارگذاری نسخه اصلی.
- حفظ
wp-config.php،wp-content،.htaccessوrobots.txt.
بررسی افزونهها و قالب
- مقایسه با نسخه رسمی.
- حذف و نصب مجدد افزونههای مشکوک.
- بررسی
functions.php. - بررسی
header.phpوfooter.php.
بررسی پوشه uploads
- جستجوی فایلهای PHP در uploads.
- جستجوی فایلهای مشکوک با پسوند غیرمعمول.
- حذف فایلهای ناشناخته.
- محدودسازی اجرای PHP در uploads.
پس از پاکسازی
- تغییر همه رمزها.
- تولید کلیدهای جدید در wp-config.php.
- فعالسازی 2FA.
- نصب فایروال.
- پایش مستمر.
رویکردهای توصیهشده
- اسکن کامل پیش از حذف.
- بکاپ از فایلهای آلوده.
- مقایسه با نسخه اصلی.
- پاکسازی چندلایه.
- سختسازی پس از پاکسازی.
- پایش مستمر.
«پیدا کردن فایل آلوده، تنها بخشی از کار است؛ حذف امن و سختسازی پس از آن، بخش مهمتر است.»
اشتباهات رایج
| اشتباه | اثر عملیاتی |
|---|---|
| حذف بدون بکاپ | از دست رفتن داده |
| پاکسازی سطحی | بازگشت آلودگی |
| نادیده گرفتن uploads | باقیماندن فایل مخرب |
| نادیده گرفتن mu-plugins | فایل مخفی |
| عدم بررسی دیتابیس | باقیماندن کد مخرب |
| نبود سختسازی | آلودگی مجدد |
| نبود پایش | عدم تشخیص سریع |
| عدم تغییر رمزها | بازگشت دسترسی مهاجم |
| نبود مستندسازی | سردرگمی |
| عدم آموزش تیم | تکرار خطا |
پرسشهای پرتکرار
چگونه فایل آلوده در وردپرس را پیدا کنم؟
با Wordfence، MalCare، مقایسه با نسخه اصلی، جستجوی الگوهای کد مخرب و بررسی تاریخ تغییر فایلها.
فایلهای آلوده معمولاً کجا پنهان میشوند؟
در ریشه، wp-content/themes، wp-content/plugins، wp-content/uploads، wp-includes، wp-admin و mu-plugins.
چگونه فایل آلوده را حذف کنم؟
با بکاپ از فایل، تأیید آلودگی، حذف یا جایگزینی با نسخه اصلی، و پایش پس از حذف.
آیا میتوانم فایل هسته را دستی جایگزین کنم؟
بله، با دانلود نسخه اصلی از wordpress.org و جایگزینی فایلهای هسته.
چه الگوهای کد مخرب هستند؟
eval، base64_decode، gzinflate، shell_exec، exec و کدهای مبهمشده.
چگونه از بازگشت آلودگی جلوگیری کنم؟
با سختسازی، 2FA، فایروال، بروزرسانی منظم و پایش مستمر.
آیا فایلهای PHP در uploads طبیعی هستند؟
خیر. اگر در uploads فایل PHP دیده شود، احتمال آلودگی بالاست.
چند وقت یکبار اسکن کنم؟
هفتگی برای سایتهای فعال، ماهانه برای سایتهای کمفعالیت.
پایانبندی
پیدا و حذف فایلهای آلوده، یکی از حساسترین مراحل پاکسازی هک وردپرس است. با شناسایی دقیق، مقایسه با نسخه اصلی، حذف امن و سختسازی، میتوان آلودگی را بهطور کامل ریشهکن کرد.
از منظر مهندسی سطح ارشد، سه اصل در این فرآیند تعیینکننده است: اسکن کامل پیش از حذف، بکاپ از فایلهای آلوده، و سختسازی چندلایه پس از پاکسازی.
برای درک عمیقتر، مقاله پاک کردن ویروس و کد مخرب از وردپرس و مقاله چگونه سایت وردپرسی را در برابر هک محافظت کنیم؟ را مطالعه کنید.
اگر در پروژههای خود تجربهای از پاکسازی فایلهای آلوده داشتهاید، تجربهتان را در دیدگاهها بنویسید. 🛡️