1.樣本概況
1.1 樣本信息
病毒名稱:3601.exe
MD5值:96043b8dcc7a977b16a2892c4b38d87f
病毒行為:
自刪除,感染壓縮包(zip、rar)、釋放lpk.dll文件
1.2 測(cè)試環(huán)境及工具
操作系統(tǒng):win7 32位
操作工具火絨劍、OD、IDA、MD5工具
1.3 分析目標(biāo)
分析此病毒的惡意行為和生成相關(guān)文件。
2.具體行為分析
2.1 主要行為
病毒首先使用RegOpenKeyExW函數(shù)讀取注冊(cè)表中【HKEY_LOCAL_MACHINE\system\\CurrentControlset\\services\\Ghijkl Nopqrstu Wxy】
這個(gè)鍵項(xiàng);如果鍵項(xiàng)不存在,則創(chuàng)建病毒的系統(tǒng)服務(wù),流程圖大體如下:
有【Ghijkl Nopqrstu Wxy】這個(gè)鍵項(xiàng)的時(shí)候,病毒的行為流程圖如下:
如果鍵項(xiàng)存在則進(jìn)入一個(gè)創(chuàng)建服務(wù)的函數(shù),做了以下4個(gè)步驟:
1、檢查互斥體,防止多開(kāi);
2、釋放、加載資源文件C:\windows\system32\hra33.dll;
3、開(kāi)啟四個(gè)線程(IPC$破解、收集主機(jī)操作系統(tǒng)與網(wǎng)絡(luò)信息、CPU字符串和主頻率描述)其中線程A是用于IPC$密碼破解,感染同局域網(wǎng)內(nèi)其他主機(jī)。線程B、線程C、線程D功能一致,連接的域名不一樣。
感染模塊操作
2.1.1 惡意程序?qū)τ脩粼斐傻奈:?圖)
在rar、zip、exe中釋放一個(gè)lpk.dll的文件,運(yùn)行exe后加載病毒程序
圖1感染壓縮包
圖2 有exe的目錄下釋放lpk.dll
2.1.2 惡意程序在系統(tǒng)中生成的文件
(1)權(quán)限相關(guān)()
1.創(chuàng)建服務(wù)
圖3 創(chuàng)建的服務(wù)名
2.生成文件
圖4 生成的病毒exe
圖5 生成的病毒DLL
3.創(chuàng)建注冊(cè)表
圖6 注冊(cè)表所增加的注冊(cè)表鍵值
(2)服務(wù)/廣播
連接域名 |
1
|
sbcq.f3322.org |
2 |
www.520123.xyz |
3 |
(加密)www.520520520.org:9426 |
2.2 惡意代碼分析
2.2.1 加固后的惡意代碼樹(shù)結(jié)構(gòu)圖
1.使用PEID檢查出病毒程序采用upx殼壓縮
圖7 PEID查殼為upx
2.連接域名使用base64加密
圖8 連接域名為base64加密
2.2.2 惡意程序的代碼分析片段
病毒首先使用RegOpenKeyExW函數(shù)讀取注冊(cè)表中有沒(méi)有【HKEY_LOCAL_MACHINE\system\\CurrentControlset\\services\\ GhijklNopqrstu Wxy】這個(gè)鍵項(xiàng);
圖9 判斷鍵項(xiàng)-OD反匯編代碼注釋
如果沒(méi)有這個(gè)鍵項(xiàng)的時(shí)候則進(jìn)入一個(gè)創(chuàng)建服務(wù)的函數(shù),做了以下4個(gè)步驟:
1、復(fù)制自身到C:\\windows;
2、將【C:\\windows\\隨機(jī)文件名.exe】注冊(cè)服務(wù);
3、創(chuàng)建注冊(cè)表鍵項(xiàng);
4、刪除自身處理;獲取當(dāng)前exe運(yùn)行路徑隨機(jī)生成一個(gè)隨機(jī)文件名,復(fù)制自身到C:\\windows目錄下,如:"C:\Windows\jkfukc.exe",代碼片段如下:
圖10 IDA-復(fù)制自身到C:\\windows
圖11 OD反匯編-堆棧窗口-隨機(jī)生成文件名
將生成的文件作為系統(tǒng)服務(wù)對(duì)象創(chuàng)建,系統(tǒng)服務(wù)名為【GhijklmnPqrstuvwx Abcdefg Ijklmnop Rst】,代碼片段如下:
圖12 IDA偽C代碼-創(chuàng)建系統(tǒng)服務(wù)
檢查病毒是否已經(jīng)在機(jī)器上運(yùn)行過(guò),創(chuàng)建注冊(cè)表鍵項(xiàng):【HKEY_LOCAL_MACHINE\system\\CurrentControlset\\services\\GhijklNopqrstu Wxy】
圖13 IDA偽C代碼-創(chuàng)建注冊(cè)表鍵項(xiàng)
病毒運(yùn)行后會(huì)做刪除自身的處理,首先獲取當(dāng)前進(jìn)程路徑、文件短路徑、CMD.exe路徑。用shellexecute()函數(shù)刪除自身。然后設(shè)置進(jìn)程的執(zhí)行級(jí)別使自身有足夠的時(shí)間從內(nèi)存中退出。
圖14 IDA偽C代碼-刪除自身
如果鍵項(xiàng)存在則進(jìn)入一個(gè)創(chuàng)建服務(wù)的函數(shù),做了以下步驟:
1、檢查互斥體,防止多開(kāi);
2、釋放、加載資源文件C:\windows\system32\hra33.dll;
3、開(kāi)啟三個(gè)線程(IPC$破解、收集主機(jī)操作系統(tǒng)與網(wǎng)絡(luò)信息、CPU字符串和主頻率描述) 檢查互斥體Ghijkl Nopqrstu Wxy是否存在,如果已經(jīng)存在時(shí)退出程序;183對(duì)應(yīng)著宏定義ERROR_ALREADY_EXISTX。然后釋放自定義資源,將自定義資源命名為hra33.dll。
圖15 檢查互斥體與釋放自定義資源
釋放自定義資源文件hra33.dll 到C:\windows\system32\hra33.dll,改寫(xiě)文件的PE頭,讓其成為PE文件。代碼片段如下:
圖16 釋放自定義資源,改寫(xiě)PE頭為MZ
創(chuàng)建了四個(gè)線程,分別命名為線程A、線程B、線程C、線程D。代碼片段如下:
圖17 創(chuàng)建四個(gè)線程
線程A通過(guò)IPC$共享用內(nèi)置的弱口令字典破解感染同局域網(wǎng)內(nèi)其他主機(jī)。將自身復(fù)制到其他主機(jī)的共享后,使用at(定制計(jì)劃任務(wù))的方式執(zhí)行。
圖18 IPC$破解
線程B、線程C、線程D功能大體一致,連接的域名不一樣。獲取操作系統(tǒng)版本號(hào)、 CPU字符串和主頻描述、內(nèi)存、網(wǎng)絡(luò)流量信息創(chuàng)建套接字發(fā)送給控制端,然后等待接收控制端發(fā)過(guò)來(lái)的指令,執(zhí)行相關(guān)的操作。
主要功能 |
1)連接域名 |
2)獲取操作系統(tǒng)版本號(hào)、 CPU字符串和主頻描述 |
3)實(shí)現(xiàn)功能-(下載文件、更新服務(wù)端、打開(kāi)網(wǎng)頁(yè)) |
線程B 進(jìn)入回調(diào)函數(shù)后,首先進(jìn)入連接域名函數(shù),創(chuàng)建網(wǎng)絡(luò)套接字后所連接的域名為:sbcq.f3322.org,代碼片段如下:
圖19 IDA偽c代碼-創(chuàng)建網(wǎng)絡(luò)套接字連接sbcq.f3322.org
當(dāng)連接域名成功,代碼向下執(zhí)行會(huì)調(diào)用搜集操作系統(tǒng)信息的函數(shù),加載hra33.dll。
圖20 OD反匯編代碼-調(diào)用搜集操作系統(tǒng)信息函數(shù)
使用GetVersionExA()函數(shù)獲取操作系統(tǒng)版本號(hào)、 CPU字符串和主頻描述的代碼片段如下:
圖21 IDA偽C代碼-獲取操作系統(tǒng)版本號(hào)
圖22 IDA偽C代碼-獲取CPU字符串和主頻描述
利用Send()函數(shù)發(fā)送消息通知控制端已經(jīng)加載hra33.dll成功,代碼片段如下:
圖23 IDA偽C代碼-加載hra33.dll后發(fā)送0XB0給控制端
根據(jù)控制端傳送過(guò)來(lái)的命令執(zhí)行相關(guān)的操作。定義了URLDownloadToFileA()、winexec()函數(shù),會(huì)下載指定url的文件保存到本地中。實(shí)現(xiàn)了下載自定義文件的功能。代碼片段如下:
圖24 定義UrlDownloadToFileA函數(shù)
當(dāng)接收的參數(shù)大于6個(gè)字節(jié)時(shí),接收到的值等于0x10,從接收到的URL地址處下載文件保存到本地的臨時(shí)目錄,文件名由GetTickCount()函數(shù)隨機(jī)生成,代碼片段如下:
圖25 接收命令執(zhí)行下載文件
接收到的值等于0x12時(shí)候,創(chuàng)建互斥體【Ghijkl Nopqrstu Wxy】,隨機(jī)生成文件名。把控制端發(fā)送過(guò)來(lái)的url地址下載保持成本地文件,關(guān)閉病毒創(chuàng)建的名稱為【Ghijkl Nopqrstu Wxy】服務(wù),刪除注冊(cè)表【HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ghijkl Nopqrstu Wxy 】鍵項(xiàng),刪除病毒進(jìn)程的文件自身。將新的文件重新注冊(cè)成為系統(tǒng)服務(wù)。初步判斷這是一個(gè)更新自身服務(wù)端的功能。代碼片段如下:
圖26 下載新的病毒文件
圖 27 刪除原有的服務(wù)和注冊(cè)表
接收到0x14的命令時(shí)調(diào)用ShellExecute函數(shù)將控制端發(fā)送過(guò)來(lái)的控制數(shù)據(jù)作為IE程序的指定啟動(dòng)參數(shù),打開(kāi)iexplore.exe進(jìn)程。
圖28 IDA偽C代碼-自帶IE打開(kāi)網(wǎng)頁(yè)
其他參數(shù)還接收了0x2、0x3、0x4、0x5,其中0x2/0x4/0x5未發(fā)現(xiàn)有實(shí)質(zhì)的操作,接收到0x3的控制指令后,線程的作用是利用文件路徑C:\WINDOWS\system32\ProgramFiles\Internet Explorer\iexplore.exe下的iexplore.exe程序向網(wǎng)址發(fā)送GET形式的Http數(shù)據(jù)請(qǐng)求包。代碼片段如下:
圖29 接收命令參數(shù)
圖30 發(fā)送GET形式的Http數(shù)據(jù)請(qǐng)求包
線程C的功能與線程B大體一致,連接的域名為:
圖31 連接域名www.520123.xyz
線程D的連接域名使用了加密函數(shù)。
圖32 IDA偽C代碼-線程D加密函數(shù)
在OD載入后動(dòng)態(tài)執(zhí)行時(shí)結(jié)果被解密出來(lái)。
圖33 OD反匯編代碼-連接域名www.520520520.org:9426
Hra33.dll功能是通過(guò)加載lpk.dll對(duì)其他exe和壓縮包進(jìn)行感染。代碼片段如下:
圖34 hra33.dll入口點(diǎn)函數(shù)
遍歷文件目錄,如果找到.exe的目錄就把lpk.dll放到該目錄下。代碼片段如下:
圖35 感染函數(shù)
感染zip/rar的方式主要還是利用winrar.rar的rar.exe(命令行工具),首先搜索壓縮包內(nèi)有沒(méi)有l(wèi)pk.dll這個(gè)文件,然后如果有.exe,就將壓縮包重新解壓添加lpk.dll文件再壓縮。代碼片段如下:
圖36 感染壓縮文件
3.解決方案
3.1 提取病毒的特征,利用殺毒軟件查殺
【Ghijkl Nopqrstu Wxy】對(duì)應(yīng)hex 【4768696A6B6C204E6F70717273747520577879】
3.2 手工查殺步驟或是工具查殺步驟或是查殺思路等。
1、停止【Ghijkl Nopqrstu Wxy】名稱的服務(wù)
2、刪除【Ghijkl Nopqrstu Wxy】鍵項(xiàng)的注冊(cè)表
3、刪除【C:\windows\system32\hra33.dll】文件
4、清空除了C:\windows\system32\lpk.dll外,所有zip、rar、exe下的lpk.dll文件
黑客交流通常用IDA就夠了。。
這是IDA的分析文件和OD注釋文件,還有提取出來(lái)的hra33.dll
 3601_unpack_(52pojie).rar (273.03 KB, 下載次數(shù): 2)
|