瑞星:Stuxnet病毒技術分析報告
2010-09-27 16:01:34Worm.Win32.Stuxnet病毒分析
病毒名稱:
Worm.Win32.Stuxnet
病毒概述:
這是一個可以通過微軟MS10-046漏洞(lnk文件漏洞),MS10-061(打印服務漏洞),MS08-067等多種漏洞傳播的惡性蠕蟲病毒。另外該病毒還可以專門針對西門子的SCADA軟件進行特定攻擊,以獲取其需要的信息。
技術細節:
傳播方式:
1.?通過MS10-046漏洞傳播
病毒運行后會拷貝自身到移動存儲上并命名為~WTR數字.Tmp(動態庫)和一個注入下列文件名的lnk文件組成:
Copy of ShortCut to .lnk
Copy of Copy of ShortCut to .lnk
Copy of Copy of Copy of ShortCut to .lnk…
?在存在MS10-046漏洞的機器上,只需瀏覽這些lnk,Explorer.exe就會將~WTR數字.Tmp加載起來。
2.?通過MS10-061漏洞傳播
該病毒還會利用打印機或打印機共享漏洞MS10-061漏洞傳播。病毒會將自身拷貝到存在該漏洞的遠程機器的%system%目錄下,并利用WMI將其執行起來。
3.?通過共享文件夾傳播
該病毒還會試圖將自身拷貝到局域網共享文件夾下,并命名為類似DEFRAG(隨機數字).tmp的名稱。
4.?通過MS08-067漏洞傳播
該病毒還會利用MS08-067漏洞傳播。
病毒的主要功能以及大致流程:
當用戶瀏覽可移動存儲上的Copy of ShortCut to .lnk文件后,Explorer.exe會加載~WTR數字.Tmp,然后病毒會加載自身的另一個名為~WTR數字.Tmp的動態庫。在加載該惡意dll時,病毒并沒有通過普通的LoadLibrary函數加載,為了隱藏自身模塊,同時為了達到不釋放文件來加載病毒模塊的目的,它采取了一個特殊方式。病毒會首先hook ntdll的一些導出函數,然后,它會構造一個特殊的并不存在的文件名如Kernel32.dll.aslr,然后以此為參數調用LoadLibrary,正常情況下,該調用會失敗因為該文件并不存在,但是因為病毒已經提前Hook了Ntdll,hook函數會監控對此類特殊文件名的打開操作。如果發現是自身構造的虛假文件名,則會重定向到其他位置,比如另一個文件或者通常情況下是一塊已經被病毒解密過的內存,這樣,外界看到的是一個常見的模塊名比如Kernel32,而實際上是病毒模塊。這樣病毒就達到了隱藏自身的目的。


