这里我选择了海阳顶端网ASP木马2006版。由于并不知道杀软是怎样定义脚本文件的特征码,所以我的操作与定位PE文件相同。杀软仍用大名鼎鼎Kaspersky。先查一下吧,卡巴报警发现Backdoor.ASP.Ace.aw。注意末尾的aw,这是杀软对同一个文件不同版本的特征码定义,

这里我选择了海阳顶端网ASP木马2006版。由于并不知道杀软是怎样定义脚本文件的特征码,所以我的操作与定位PE文件相同。杀软仍用大名鼎鼎Kaspersky。先查一下吧,卡巴报警发现Backdoor.ASP.Ace.aw。注意末尾的aw,这是杀软对同一个文件不同版本的特征码定义,有时我们需要运用定位过程中版本号的变化来确定特征码的位置。
    
首先假设将特征码定位器CCL设置成手动定位,生成文件200个,打开海洋的木马主文件2006.asp。这时弹出了定位范围选择窗口,由于脚本文件不是PE文件,因此没有分段,整个文件就是一个整体。如图1所示,段名为整个文件,段大小就是整个文件的大小。

 



    
直接点确定,对整个文件进行定位。生成文件完毕后对目标进行查杀,结果,只剩下一个文件没有被杀,OUT_00000000_000001C3,这说明当从偏移0开始1C3个字节的数据被填0时,该文件免杀。我们看一下这里是什么。 
代码:


    
脚本文件我不太熟,但总比改汇编指令简单,试着修改一下吧,原则还是不能破坏原文件功能。我们知道,asp中代码是在之间的,于是我们在每一个前插入一个,就像汇编插入nop空指令一样。保存修改,再用卡巴查一下。还是报警,但是这次显示的是Backdoor.ASP.Ace.w。这就说明:我们刚才修改是特征码中的一处,但不是全部,也就是说我们把aw中的a代表的特征码改掉了,但是w仍然在。
    
我们再用CCL打开修改过的2006.asp,设置保持不变,再重复上述步骤。经过查杀后,200个文件剩下了6个。看一下结果
        -------------
定位结果------------
      
序号    起始偏移     大小     结束偏移
    0001    00000000    000001C3    000001C3    
      0002    000140A2    000008CF    00014971    

    
1段仍是在文件头部。我分析是卡巴在对脚本文件检测前会分析文件的完整性,而1号结果正好将“<%”给替换掉,这样的脚本代码是没法运行的,因此卡巴就不认为它有毒。(卡巴对PE操作也存在同样问题,这也是很多人用CCL定位卡巴总是遇到结果定位在PE文件头部的原因。)我们看2段处是什么,该段结果范围较大,我们找有特色的改。最终目标定在如下语句:

代码:





    
我们将文件上传成功改为上传成功,保存后再检测。OK,免杀成功了。运行一下试试,海洋的各项功能正常。当然,文件上传成功后的提示已经变了。如图2
 



    
总结一下:卡巴对恶意脚本的定义仍是沿用特征码的方式,且明显没有PE文件的特征码定义那样复杂。希望杀软早日在检测方式上产生根本性的改变!