歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Backdoor.Zegost木馬病毒分析(一)

一、樣本信息

樣本名稱:rt55.exe

樣本大小: 159288 字節

文件類型:EXE文件

病毒名稱:Win32.Backdoor.Zegost

樣本MD5:C176AF21AECB30C2DF3B8B8D8AA27510

樣本SHA1:16E951925E9C92BC8EFDF21C2FBAF46B6FFD13BC

二、行為具體分析

1.獲取當前運行模塊的命令行參數,根據當前命令行參數是否包含字符串"NewUpdatExe"進行判斷,決定下面提到的內存解密PE文件是調用導出函數NewUpdatExe還是導出函數xDllMain。

\

\

2.解密當前病毒進程內存地址為0x408070處,文件大小為0x17C00的被加密隱藏的PE文件。

\

\

3. 加載內存解密的PE格式的Dll文件,進行惡意病毒行為的操作;具體的加載過程後面會具體分析。

\

\

\

4.將解密內存PE文件的每個區節塊的數據從文件映射到申請的內存空間中。

\

\

5. 對內存解密PE文件的重定位表Base RelocationTable進行重定位的修復。

\

\

6. 獲取解密內存PE文件的導入表中的INT表中的函數的調用地址填充IAT表。

\

\

\

7. 循環修改解密內存PE文件的各區節塊數據段的內存數據屬性。

\

\

\

\

8.運行的病毒進行將PE文件(dll文件)的加載已經基本完成了,因此這個被病毒進行內存加載的PE的動態庫文件是有效可以執行的;因此以該內存PE動態庫的OEP為函數指針執行惡意的代碼。

\

\

9. 獲取導出函數名稱字符串"NewUpdatExe"或"xDllMain",用以獲取解密內存PE文件的導出函數"NewUpdatExe"或"xDllMain"的調用地址。

\

\

遍歷內存解密PE文件的導出表,獲取需要的導出函數"NewUpdatExe"或"xDllMain"的調用地址。

\

\

10.根據步驟1中的傳入的函數的名稱"NewUpdatExe"或者"xDllMain",根據上面的步驟獲取需要的導出函數"NewUpdatExe"或者"xDllMain"的地址,然後調用內存解密PE動態庫文件的導出函數"NewUpdatExe"或者"xDllMain",執行惡意的代碼;然後再次以內存解密PE文件的OEP為函數指針,執行內存PE文件的代碼,執行惡意行為。

\

三、 病毒分析總結

總體來說,上面的詳細的分析,基本可以使用一句話總結,那就是:宿主樣本程序通過LoadPE的方式加載解密的PE動態庫dll文件,然後有加載的PE動態庫dll文件來執行具體惡意的病毒行為,從而達到逃過殺軟的查殺的目的。關於Backdoor.Zegost木馬病毒的具體行為也就是內存解密PE動態dll文件的惡意行為後面會詳細的分析。

宿主樣本程序加載PE動態庫文件的步驟

1

在宿主程序內存中解密出加密的PE動態庫dll文件

2

將內存解密的PE動態庫dll文件的數據進行PE文件鏡像的內存映射

3

對內存解密PE文件的重定位表Base RelocationTable進行重定位的修復

4

獲取解密內存PE文件的導入表中的INT表中的函數的地址填充IAT表

5

修改解密內存PE文件的各個區節塊數據段的內存數據屬性

6

內存解密的PE動態庫dll文件的加載完成,可以像正常dll一樣執行自己的代碼


\
:真的好煩,筆記本屏幕顯示發白導致截圖不清晰;本來想好好的記錄下這個有意思的木馬病毒,但是由於截圖的效果不好,心情頓時就不好了。
Copyright © Linux教程網 All Rights Reserved