瑞星“超級火焰”病毒(Worm.Win32.Flame)技術分析報告
2012-06-05 13:28:33三、技術細節(jié)
“超級火焰”病毒的注入方法
“超級火焰”病毒注入DLL的方式是采用常規(guī)的遠程線程的方法。首先通過OpenProcess獲取目標進程句柄,然后通過WrietProcessMemory向目標注入代碼,最后通過CreateRemoteThread創(chuàng)建遠程線程實現(xiàn)DLL的加載。
步驟
1.?在目標進程中注入模擬DLL卸載的ShellCode
2.?在目標進程中注入模擬DLL加載的ShellCode
3.?在目標進程中注入遠程線程所要用到的數(shù)據(jù)
4.?創(chuàng)建遠程線程,線程地址為模擬加載DLL的ShellCode起始地址,線程參數(shù)為注入到目標中的數(shù)據(jù)的起始地址
特點
1.?Shellcode構造得很精妙
2.?隱藏DLL模塊,通用性好
3.?內存加載,不會產生文件
4.?手動模擬DLL加載,而且還模擬DLL卸載
注入詳細分析
經(jīng)過分析,“超級火焰”病毒中注入DLL功能模塊有兩套,功能基本相同,只是在代碼上有少許不一樣,猜測應該是在編譯的過程中有些地方?jīng)]有使用最新的注入模塊所造成的。

模塊(一)

模塊(二)
模擬系統(tǒng)DLL加載的功能代碼分析
該功能代碼在“超級火焰”病毒中發(fā)現(xiàn)有兩個版本,一個大小為0x70C字節(jié),另一個版本是0x603字節(jié),經(jīng)分析發(fā)現(xiàn)兩個版本的代碼實現(xiàn)的步驟功能相似,只是在代碼上有所差別。實現(xiàn)功能如下:
1)?通過參數(shù)指定的配置數(shù)據(jù)中找到是否要借用系統(tǒng)的shell32.dll映像名來隱藏自己,如果指定,則映射shell32.dll,并將其內存數(shù)據(jù)全部清零,將要加載的PE文件按內存粒度對齊后拷貝到shell32.dll所處的那塊內存中。

2)?解析PE結構,處理導入表,處理重定位表,調用新映射的病毒代碼的入口點(從PE頭中取得)。

3)?加載msvcrt.dll,取得當前進程的PEB,通過基地址從LDR鏈表中找到msvcrt.dll所在的鏈表入口,修改掉該鏈表中標記的DLL入口地址指向病毒代碼,病毒線程退出后,Hook DLL入口的代碼會獲得執(zhí)行權,實現(xiàn)病毒DLL的卸載。

四、 總結
從目前分析的情況看,“超級火焰”是一款從事間諜活動的病毒。它盜取的信息包羅萬象,包括各種文檔、截屏、錄音、按鍵信息等,其復雜度大大超過目前已知的所有病毒。
5/5 首頁 上一頁 3 4 5



