病毒分析之Virut病毒感染樣本分析(setup.exe)
樣本概況
文件: C:\Users\Hades-win7\Desktop\setup_mima666\setup.exe
大小: 369664 bytes
文件版本:8.0.50727.42 (RTM.050727-4200)
修改時間: 2014年4月21日, 11:18:00
MD5: E29DAE6188A0B0BB797C42F68D8DFA41
SHA1: 16B5B2BBEFD499AAE7B3B6111ABB2409AC76FAB1
CRC32: 43952BC7
該樣本爲正常程序被病毒感染後的樣本,運行效果如圖:
惡意行爲
2.1創建內存映射,注入進程2.2修改註冊表,添加防火牆信任列表
2.3掛鉤系統函數,過濾消息感染進程
2.4連接惡意網址,發送數據,接收數據,接受遠程控制(服務器ilo.brenz.pl ant.trenz.pl)
2.5感染移動磁盤,複製病毒並創建autorun.inf文件,寫入啓動信息爲病毒
2.6感染可執行文件
分析記錄
執行完病毒代碼後,調用原程序執行.
創建病毒文件到臨時目錄
通過Hash值來動態獲取函數地址.
使用GetTickCount函數與rdtsc指令獲取代碼執行時間,判斷是否處於調試狀態,驗證通過恢復代碼繼續執行.
申請內存拷貝惡意代碼並執行
加載advapi32.dll獲取函數並提權
創建進程快照,遍歷進程,前四個進程不做操作,之後的進程對第一個可打開的進程HookAPI,創建共享內存,創建遠程線程.剩餘其他進程全部做inlineHook,但不執行遠程線程
開始Hook幾個內核
API(ZwDeviceIoControlFile,ZwOpenFile,ZwCreateProcess,ZwCreateProcessEx,ZwCreateUserProcess,ZwQueryInformationProcess)
掛鉤內核函數
創建內存映射之後,創建遠程線程,執行惡意代碼.
修改註冊表,添加防火牆信任列表
連接惡意網址線程
判斷移動磁盤,複製病毒文件到移動磁盤,並創建autorun.inf文件
創建socket連接,連接服務器受控
可連接網址現在的狀態
發送數據
感染文件會分成幾種類型,讀取要被感染的文件,通過判斷入口附近是否有API調用等確定感染方式
如果有kernel32中的函數調用,更改其代碼: call dword ptr [ api ] 改成 jmp virut
沒有的話直接修改其入口等.
Virut類型病毒其感染方式多種,多態解密運行.是一個很有意思的樣本.感染文件部分詳細分析後能很大的增長自己的功力
過濾數據包,含有以下字符的udp包全部攔截
執行流程
參考文章: virut詳細分析 https://www.cnblogs.com/Mikhail/p/5615286.html