مهاجمان به طور مرتب از افزونه های آسیب پذیر برای به خطر انداختن وب سایت های وردپرسی، هدایت بازدیدکنندگان به وب سایت های مخرب و کلاهبرداری استفاده می کنند. این اقدامات، در سال های اخیر بسیار افزایش پیدا کرده است و طیف وسیعی از کاربران با آن درگیر هستند.
دامنههای Payload یا همان آدرس های آلوده به کد های مخرب، مرتباً تغییر یافته و بروزرسانی میشوند اما هدف آن ها تا حد زیادی ثابت است:
- فریب کاربران ناآگاه برای کلیک کردن روی لینک های مخرب
- انتشار ابزارهای تبلیغاتی و ارسال تبلیغات جعلی به سیستم کاربر قربانی.
اگر وب سایت شما بازدیدکنندگان را به صفحاتی شبیه به تصویر زیر هدایت می کند، احتمالاً به خطر افتاده است.
تصویر(1)
در این مقاله، نحوه حذف ویروس ریدایرکت وردپرس ملقب به بدافزار specialadves که تبلیغات جعلی در وب سایت نمایش می دهد بررسی خواهد شد. چند روش برای رفع مشکل وجود دارد و سعی شده تا آنجا که امکان پذیر است به تمامی آن ها اشاره شود.
نکته: همیشه قبل از اعمال تغییرات دستی، از وب سایت خود یک نسخه پشتیبان کامل تهیه کنید که شامل فایل ها و پایگاه داده باشد. به این ترتیب، اگر بخشی دچار اختلال شد یا بدافزار به درستی حذف نگردید، اطلاعات تان از دست نخواهد رفت.
جهت تهیه پشتیبان از طریق هاست، می توانید طبق آموزش های زیر اقدام نمایید:
آموزش تهیه بکاپ در سرویس سی پنل
آموزش تهیه بکاپ در سرویس دایرکت ادمین
Backdoor های موجود در Webroot (مسیر نصب وردپرس) و آپلودها
به طور خاص، در مسیر نصب وردپرس چند فایل وجود دارد که باید به دنبال آنها باشید، به عنوان مثال:
./wp-blog-post.php
./wp-blockdown.php
./wp-content/uploads/wp-blockdown.php
./_a
حفره امنیتی wp-blockdown.php چیزی شبیه به کدهای موجود در تصویر زیر است:
تصویر(2)
و فایل _a جعلی باید محتویات زیر را داشته باشد:
تصویر(3)
فایل های آلوده را پاکسازی یا از وب سایت حذف کنید. اسکریپت wp-blog-post مسئول افزودن محتوای اسپم جاوا اسکریپت به دیتابیس خواهد بود:
تصویر(4)
پس حتما آن ها را حذف کنید. اگر یک افزونه امنیتی در وب سایت خود دارید که تغییرات فایل های هسته وردپرس را بررسی و ثبت می کند، به منظور شناسایی ویروس ریدایرکت وردپرس، وجود فایل های اضافی یا اصلاحشده را در گزارش آن، بررسی کنید.
اصلاح فایل index.php
در برخی از وبسایتها، جاوا اسکریپت به ابتدای فایل اصلی index.php وردپرس تزریق شده است:
تصویر(5)
این قطعه کدها به جاوا اسکریپت های مبهم یا کد شده در سایت جعلی، اشاره می کنند:
تصویر(6)
می توانید مقادیر hex موجود در انتهای تصویر بالا را تبدیل کنید تا نحوه عملکرد آن را مشاهده نمایید.
توجه: برای تبدیل مقادیر hex به متن، می توانید از سرویس های آنلاینی مانند duplichecker.com و unit-conversion.info استفاده نمایید.
تصویر(7)
همانطور که مشاهده می کنید، به همان دامنه جعلی ارجاع داده می شود، با این تفاوت که این بار payload موجود در s.php را روی سرور مربوط به هکر اجرا نموده و ریدایرکت را انجام می دهد. کدهای جاوا اسکریپت تزریق شده را از ابتدای فایل index.php حذف نمایید تا از ریدایرکت جلوگیری شود.
کدهای مخرب موجود در فایل هسته وردپرس
علاوه بر این، برخی از کدهای مخرب تزریق شده، هسته اصلی وردپرس را هدف قرار می دهند:
./wp-blog-header.php
تصویر(8)
به فاصله زیاد در خط 13 توجه کنید. این اقدام برای جلوگیری از دیده شدن کدهای مخرب در زمان غیرفعال بودن wrapping ویرایشگرهای متن است که کدها را در یک ستون نمایش می دهد. بنابراین مطمئن شوید که آن را فعال کرده اید تا بتوانید کدهای مخرب را مشاهده و حذف نمایید. فایل wp-template.txt نیز حاوی کد ریدایرکت به همان دامنه جعلی است:
تصویر(9)
فایل txt. باید از دایرکتوری tmp حذف شود اما حذف ارجاع به آن از فایل های اصلی، برای توقف ریدایرکت کافی است. نسخههای جدیدتر این نوع هک، گونهای متفاوت از فایل ذکر شده را دارند:
تصویر(10)
میتوانید این فایل را با نسخهای جدیدتر که از مخزن وردپرس دریافت نموده اید، جایگزین کنید یا به سادگی کدهای مخرب را به صورت دستی حذف نمایید.
جاوا اسکریپت مبهم
برخی از این حفره های امنیتی نیز روی فایل زیر تأثیر می گذارند:
./wp-includes/js/wp-emoji-release.min.js
تصویر(11)
این حفره، از یک روش مبهم سازی بسیار رایج برای تبدیل اعداد به یک رشته متن استفاده می کند:
eval(String.fromCharCode(
تصویر(12)
این بار کدهای جدید، سایت شما را به دامنه ای متفاوت (اما مرتبط) ارجاع می دهد.
newexample[ . ]com
اما همچنان ریدایرکت مشابهی انجام می شود. محتوای مبهم موجود در انتهای فایل، باید حذف شده یا فایل به طور کامل با نسخه اصلی آن جایگزین گردد.
تزریق به پایگاه داده
جاوا اسکریپت های جعلی مشابهی نیز اغلب به پایگاه داده تزریق می شوند. معمولاً تعداد آنها زیاد است، بنابراین سادهترین راه برای حذف آن، اجرای یک دستور search/replace ساده SQL با استفاده از PHPMyAdmin یا Adminer می باشد:
UPDATE wp_posts SET post_content = REPLACE ( post_content, '<script src=\'https://https://ads[.]example[.]com/ping/?ton.js\' type=\'text/javascript\'></script>', '');
همچنین لازم است مطمئن شوید که براکت های [] را که در دستور فوق قرار دارند، قبل از اجرا حذف کنید:
تصویر(13)
اگر وبسایت شما از پیشوند پایگاه داده دیگری غیر از wp_ استفاده میکند یا اگر جاوا اسکریپت تزریق شده کمی متفاوت است، میتوانید دستور SQL خود را بر اساس آن تنظیم کنید. صرفا دقت نمایید که تمامی آپوستروف ها با قرار دادن یک بک اسلش قبل از آنها، مشابه مثال بالا، جداسازی شود.
تزریق از طریق Backdoor یا درب پشتی
ممکن است تزریق کدها به بالای فایل header.php قالب شما انجام شود:
تصویر(14)
این فایل آلوده شده است و اگر پارامترهای صحیح به آن داده شود، وب سایت را دوباره آلوده می کند. بنابراین مطمئن شوید که کد تزریق شده به بالای فایل (بین اولین تگ PHP) را حذف کرده اید. دقت نمایید که محتوای سالم فایل قالب تغییر نکند.
ایجاد کننده ادمین جعلی
در برخی از وبسایتهای آسیبدیده، یک مدیریت جعلی به فایل functions.php آنها تزریق شده است. کدهایی که مشابه تصویر زیر می باشد:
تصویر(15)
خط مبهم یا کد شده حاوی base64_decode را حذف نموده و لیست مدیریت سایت (کاربران با دسترسی مدیر سایت) خود را بررسی کنید. گاهی اوقات مهاجمان میتوانند حسابهای مدیریت را از دید شما پنهان کنند. بنابراین به صورت دستی جدول wp_users را با استفاده از PHPMyAdmin یا Adminer بررسی نمایید.
نتیجه گیری
خلاصه آنچه که در این مقاله جهت حذف ویروس ریدایرکت وردپرس انجام شده است:
- فایل های هسته وردپرسی که تغییر کرده اند را با فایل های سالم جایگزین کنید.
- فایل header و functions قالب یا هر محتوای دیگری که اخیراً تغییر کرده است را با یک نسخه پشتیبان مقایسه نمایید.
- جاوا اسکریپت های تزریق شده به پایگاه داده را حذف کنید.
- حساب های مدیریتی جعلی که در وردپرس تان ایجاد شده را حذف نمایید.
و البته مطمئن شوید که تمام نرم افزارهای وب سایت شما بروز شده اند. همچنین باید دسترسی به داشبورد مدیریت وردپرس خود را دشوارتر کنید تا از هک مجدد وب سایت جلوگیری شود. فراموش نکنید که رمز عبور مدیر و سایر رمزهای مهم وبسایت را نیز بروزرسانی نمایید.