改良网页木马篇:
用户浏览该网页时,浏览器自动下载Http://m2126.com/web/exe/data/1.exe,保存到windows目录然后执行。杀毒软件会查杀它,是因为杀毒软件在这段代码中找到了“特征码”,既然有源代码。我们也来找找,看看是它哪点写的太过分惹火了我的瑞星。找起来很简单,打开杀毒软件,删除某行,然后保存就好了,如果删除的地方不是特征码,杀毒软件会报告病毒。
这就是引起瑞星不满的代码,看名字就能想到,这段代码要执行下载的木马。分析这段代码有两点不好的地方:
1、在x.open()这里,最后一个参数是“0”(false),使用了非异步传输,就是说代码执行到某个地方需要等待服务器返回结果才能继续执行。很明显不符合“感觉不到的它的执行”原则。
2、因为代码想做到下载完成后立刻执行,所以刚下载了文件就去执行。
对于第一点,为什么没有用异步传输呢?因为代码并不是Ajax,没有判断服务器返回的状态,使用了“传统的网页木马的模式”。如果这里强行把“0”改成“1”,会造成木马还没有下载完成,就执行,结果当然出错。代码的作者可能没有想到Ajax,所以只好使用了传统模式。然而现在网站都“web2.0”了,网页木马为什么不紧随潮流呢? 对于第二点,考虑到杀毒软件猛如虎,我们要“敌进我退”,不立刻执行木马,等用户下次重新启动电脑时再执行。要知道个人机器和服务器最大的差别就是,个人机器可能一天重新启动N次,服务器可能N年重新启动1次。
可能已经有些读者会想到修改注册表。那么恭喜你,答错了!因为杀毒软件会监控注册表,这样做不是虎口拔牙么?我们的原则是要“悄悄的”。推荐的想法是:在windows系统里有些特殊文件夹,启动系统时会自动执行目录下的文件,比如“C:\Documents and Settings\All Users\「开始」菜单\程序\启动”目录。这样,我们的思路就清晰了,首先使用Ajax技术默默的下载木马,然后悄悄的复制到这个目录里,如果你够狠还可以顺便弹出消息框“对不起!您的操作系统产生严重错误,为您带来不便,为了避免重要文件丢失,请立刻手动重新启动系统!”。 下面是我更改后的代码,使用了Ajax技术:
注意,在保存文件路径那里,路径最前面“\\..\\”是不能少,因为木马默认下载的位置是windows,或winnt。
在我的虚拟机(windows xp sp2)中访问这个页面,可以看到执行成功了。
注意启动项以及目标文件夹。大家可以根据自己的需求更改代码,本篇只是一个简单应用的例子,把一个网页木马使用Ajax技术进行了改良。推荐大家以后编写的网页木马,在下载木马的过程中,使用Ajax技术下载木马,这样的好处显而易见。