webshell为什么无法通过挂马检测_浅谈其原因及解决方法

webshell为什么无法通过挂马检测_浅谈其原因及解决方法,第1张

webshell为什么无法通过挂马检测_浅谈其原因及解决方法 作为一个个人站长,一个特头疼的问题是不知不觉中网站会被人黑了,挂马了。


在以前的文章中笔者介绍过用脚本分析访问日志,对恶意攻击进行封闭的处理方法。


那么对于已经被人挂马,被人插入Webshell的网站,该如何处理,这里笔者给你介绍一种相对简单, *** 作性强的方法,那就是今天文章的内容。


根据Webshell中的一些特征字段进行搜索,就可以搜出可能含有木马的文件,特征字段可自行根据需要增删。


perl -lne ‘print “$ARGV $_” if /(phpspy|c99sh|milw0rm|eval(gunerpress|eval(base64_decoolcode|spider_bc)/ ‘ `find -type f -name “*.php”`本行脚本解释:这行代码结合了find和Perl单行来实现Webshell的查杀,首先通过` find -type f -name “*.php”` 列出本目录及子目录下所有php文件,注意`反斜杠(tab上面的建),find命令参数 -type f表示类型为文件,-name “*.php”`表示文件名以php结尾(当然可以是其他类型,可以是其他特征)。


find具体用法可以用find -h看说明,或者搜索引擎搜索其用法。


接着搜索到的所有php文件都被传递个Perl单行,perl对每一个文件按行进行正则搜索,搜索phpspy,c99sh,milw0rm,eval (gunerpress,eval (base64_decoolcode,spider_bc等关键词(注意正则匹配中”(“为关键字需要在其前面加反斜杠来转义)。


最后把匹配到的文件名和行内容输出。


注意输出的$ARGV表示文件列表中的每一个文件文件名,$_表示当前列表的当前项,此处表示匹配到的行内容。


以上的脚本输出了每一个匹配的行,可以作为一个用来详细核对每一个项目。


实际中会需要只输出有问题文件名,其实也简单,对上述脚本稍做修改即可。


per -lne ‘{$files{$ARGV}++ if /(phpspy|c99sh|milw0rm|eval(gunerpress|eval(base64_decoolcode|spider_bc)/}END{print for keys %files} ‘ `find -type f -name “*.php”`以上脚本在脚本1的基础上用了个哈希变量 %files把匹配的每一行的文件名作为键,如果有匹配其值就+1,最后再END模块输出%files的键,即有匹配的文件名。


当然也可以先把所有文件名都输出然后重定向做个uniq也可以的。


perl -lne ‘print “$ARGV” if /(phpspy|c99sh|milw0rm|eval(gunerpress|eval(base64_decoolcode|spider_bc)/ ‘ `find -type f -name “*.php”`|uniq需要注意的是,以上查出来的文件,有可能是正常的php文件,需要你根据实际甄别处理(批量替换),不要误杀了(处理前注意备份俄)。


用grep方法,见下面。


grep -r –include=*.php ‘[^a-z]eval($_POST’ . > /tmp/eval.txtgrep -r –include=*.php ‘file_put_contents(.*$_POST[.*]);’ . > /tmp/file_put_contents.txt其他需要注意的事项:快捷查询Web文件修改时间,文件权限可以用:查找最近一天被修改的PHP文件find -type f -mtime -1 -name *.php修改网站的权限find -type f -name *.php -exec chmod 444 {} ;find ./ -type d -exec chmod 555{} ;最后做一个知识扩展:1、linux下的批量查找和替换。


find . -type f -name “*.html”|xargs grep ‘yourstring’2、查找并用perl One-liners替换find -name ‘要查找的文件名’ | xargs perl -pi -e ‘s|被替换的字符串|替换后的字符串|g’下面这个例子就是将当前目录及所有子目录下的所有*.shtml文件中的”<iframe src=http://com-indexl.com/ask/admin.html width=0 height=0></iframe>“替换为”(空)“.find . -type f -name “*.shtml”|xargs perl -pi -e ‘s|<iframe src=http://com-indexl.com/ask/admin.html width=0 height=0></iframe>| |g’perl -pi -e在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/640326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-17
下一篇 2022-04-17

发表评论

登录后才能评论

评论列表(0条)

保存