« 服务器中招,所有PHP程序被加上eval(base64_decodeWIN2003服务器安全配置笔记 »

eval(base64_decode 木马 清除

eval(base64_decode 木马 清除

在找资料解决这个问题。待续

 

2、nginx和php的安全
(1)对discuz/attachments,uchome/attachment,ucenter/data/tmp等用户上传的目录,限制php程序。centos+nginx本身应该比较安全的,一般的黑客都是利用webshell来入侵。
在nginx的配置文件里面添加
location ~ .*\.(php|php5)?$ {
.......
#------------------------------------------
rewrite ^/(uc\_client|templates|include|plugins|admin|attachments|images|
forumdata)/.*\.(php|php5)?$ /50x.php last;
#-------------------------------------------
}
(2)修改php.ini
查找:disable_functions
找到后在=后面添加
exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,symlink,link,leak,fsockopen,proc_open,
popepassthru,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,popen
这里都是禁止在php里面执行的函数
 

 

--------------------------------------------------------------------------------- 

一句话查找PHP木马

# find ./ -name “*.php” |xargs egrep “phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decode|spider_bc”> /tmp/php.txt

# grep -r –include=*.php  ’[^a-z]eval($_POST’ . > /tmp/eval.txt

# grep -r –include=*.php  ’file_put_contents(.*$_POST\[.*\]);’ . > /tmp/file_put_contents.txt

# find ./ -name “*.php” -type f -print0 | xargs -0 egrep “(phpspy|c99sh|milw0rm|eval\(gzuncompress\(base64_decode|eval\(base64_decode|spider_bc|gzinflate)” | awk -F: ‘{print $1}’ | sort | uniq

查找最近一天被修改的PHP文件

#   find -mtime -1 -type f -name \*.php

修改网站的权限

# find -type f -name \*.php -exec chmod 444 {} \;

# find ./ -type d -exec chmod 555{} \;

--------------------------------------------------------------------------------- 

大部分php中了木马,会插入一段php代码。
类似如下:
eval(base64_decode('xxxxxxxxxxxxxxxxxxxxx'));

这里我写了一个简单的shell脚本用于清除此类木马。

#!/bin/bash
until [ $# -eq 0 ]
do
sed 's/eval(base.*;//g' $1>/tmp/t
if [ $? = 0 ]; then
        cp /tmp/t $1
        echo $1
fi
shift
done

用法,把这个脚本存为clean.sh文件。
find |grep "\.php$"|xargs ./clean.sh
即可清除

--------------------------------------------------------------------------------- 

 

php木马的最显明特点是使用了eval 与base64_decode 这函数,这样就很好去检测了,当然有些cms的畸形文件也可能呈现这货色,差别是cms的文件打开是正常一行一行的,而木马通常是:
eval(base64_decode(..............));
?
这样的代码,而且基础都是如斯,下面是检测程序:
function parallfiles($d)
{
$dh = dir($d);
while($filename = $dh-read() )
{
if($filename=='.' || $filename=='..') continue;
$tfile = $d.'/'.$filename;
if(is_dir($tfile))
{
//echo 检讨到:$tfile
;
parallfiles($tfile);
}
else
{
if(!ereg(\.php, $tfile)) continue;
$bd = file_get_contents($tfile);
if(eregi(eval\(, $bd))
{
echo $tfile
\r\n;
}
}
}
}
parallfiles(dirname(__file__));
?
使用这个检测程序会把所有带eval的文件作为可疑文件,翻开来看一下,如果代码像前者那样的,确定是木马了。www.2cto.com
对有应用服务器的用户,记住设置网站权限的一个准则:寄存html、附件的文件不给予履行脚本权限,执行脚本的文件夹不给予写入的权限。
2、mysql提权漏洞的处置
mysql提权漏洞在windows服务器简直是致命的,如果你把web木马都清算后,发现heike还能挂马,很可能是这个问题所致的,这要作下面多少方面处理:
(1) 网站的用户千万不要用root用户,假如树立一个没权限的用户,而后指定它有操作某数据库的权限;
(2) 检查网站或windows文件,看是否有udf.dll 或xudf.dll (x通常是数字1、2、3等),如果有,阐明你的服务器已经中招了,这种木马是致命的,肃清方式是先用net stop mysql结束mysql,然后删除这些dll文件,然后用net start mysql 从新启动mysql。