作为个人站长,一个特别头疼的问题就是网站会在不知不觉中被黑,被挂。在上一篇文章中,作者介绍了使用脚本分析访问日志和密封恶意攻击的方法。那么,如何处理已经被挂马插入Webshe
作为个人站长,一个特别头疼的问题就是网站会在不知不觉中被黑,被挂。在上一篇文章中,作者介绍了使用脚本分析访问日志和密封恶意攻击的方法。
那么,如何处理已经被挂马插入Webshell的网站呢?在这里,笔者给大家介绍一种相对简单,操作性强的方法,这就是今天文章的内容。
根据Webshell中的一些特征字段,可以搜索出可能含有木马的文件,特征字段可以根据需要进行添加或删除。
perl-lne ‘打印“$ ARGV $ _ & # 8221if/(PHP spy | c99sh | milw 0 RM | eval(guner press | eval(base64 _ decoolcode | spider _ BC)/‘`查找类型f-name “*.php & # 8221`
这行代码的脚本解释:这行代码结合了find和Perl杀死Webshell。第一,通过‘寻找型f-name “*.php & # 8221`列出这个目录和子目录中的所有php文件,注意`反斜杠(建立在tab之上)。find命令参数-type f表示该类型是一个文件,-name “*.php & # 8221`表示文件名以php结尾(当然也可以是其他类型和其他特性)。
find的具体用法可以用find -h解释,也可以用搜索引擎搜索它的用法。
然后,所有搜索到的php文件都被传递给一个perl单行。Perl逐行对每个文件进行常规搜索,搜索phpspy、c99sh、milw0rm、eval (gunerpress、eval (base64_decoolcode、spider_bc等关键字。(注意,在常规匹配中”(“For关键字需要在前面加一个反斜杠进行转义)。最后输出匹配的文件名和行内容。
注意,输出$ARGV表示文件列表中每个文件的文件名,$ _表示当前列表中的当前项,这里表示匹配行的内容。
上面的脚本输出了每一个匹配行,可以用来对每一项进行详细的检查。实际上,您只需要输出有问题的文件名,这其实很简单。只需对上面的脚本稍加修改。
佩尔-讷‘{ $ files { $ ARGV } ++ if/(PHP spy | c99sh | milw0rm | eval(guner press | eval(base64 _ decoolcode | spider _ BC)/} END { print for keys % files } ‘`查找类型f-name “*.php & # 8221`
上面的脚本在脚本1的基础上使用了一个哈希变量%files作为键。如果有匹配,就+1。最后END模块会输出%files的key,也就是有匹配的文件名。当然,您也可以首先输出所有文件名,然后将它们重定向到一个uniq。
perl-lne ‘打印“$ ARGV & # 8221if/(PHP spy | c99sh | milw 0 RM | eval(guner press | eval(base64 _ decoolcode | spider _ BC)/‘`查找类型f-name “*.php & # 8221` |唯一的
需要注意的是,上面查出的文件可能是正常的php文件,需要根据实际情况进行处理(批量替换),不要误杀(处理前请备份)。
使用grep方法,见下文。
grep-r–include = *。php '[^a-z]eval($_POST'。& gt/tmp/eval.txt
grep-r–include = *。php 'file_put_contents(。*$_POST[。*]);'。& gt/tmp/file _ put _内容. txt
其他注意事项:
快速查询Web文件的修改时间,可以使用文件权限:
查找最近一天修改过的PHP文件。
查找-类型f -mtime -1 -name *。服务器端编程语言(Professional Hypertext Preprocessor的缩写)
允许修改网站
查找-类型f -name *。PHP-exec chmod 444 { };
找到。/-类型d-exec chmod 555 { };
做最后一次知识延伸:
1.linux下的批量搜索和替换。
找到。-键入f -name "*。html“| xargs grep ' your string '
2.找到并用perl一行程序替换它
“Find-name”用于查找“| xargs perl-pi-e的|替换字符串|替换字符串|g”的文件名
下面的例子是将“<>http://com-indexl . com/ask/admin . html width = 0 height = 0 >& lt/iframe >替换为“(空)”。
找到。-键入f -name "*。shtml"|xargs perl -pi -e的| & ltiframe src = http://com-indexl . com/ask/admin . html width = 0 height = 0 >& lt/iframe >| |g '
perl -pi -e
将-e选项添加到Perl命令中,后跟一行代码,它将像普通的Perl脚本一样运行代码。