利用win消息機制的木馬
作者丨黑蛋
一、木馬簡述
文件名稱
9dfd124ca235aa3d8434afbb0167581ff2f35ad0ab142ee5bdff0ff29b64d542
文件類型(Magic)
PE32?executable (GUI) Intel 80386, for MS Windows
文件大小
271.00KB
SHA256
9dfd124ca235aa3d8434afbb0167581ff2f35ad0ab142ee5bdff0ff29b64d542
SHA1
65daf6d722b71ff56ef0f01b4aa734e898ad45ae
MD5
b86bae39ddf878d71b0e66e4c5c261cf
CRC32
F4C3B4C7
SSDEEP
6144:NFsvQdbzv31yLFytJNTBq2O6mFeTeM/onN6b:NFskvkRyXNTs22JMAnN6b
ImpHash
df2445056bd741fc6eaccc3bc5cb3437
Tags
PE32,pdb_path,resource_embedded_pe,lang_chinese,encrypt_algorithm
二、環(huán)境準(zhǔn)備
沒有配置win10環(huán)境,我這里就用win7了。
操作系統(tǒng)
win7x86
三、行為分析
打開火絨劍,打開監(jiān)視,然后打開木馬:
運行一會,木馬本體就消失了。簡單進行一下動作過濾:
首先可以看見創(chuàng)建了倆個文件,hao123網(wǎng)址導(dǎo)航和一個delselt.bat文件,然后就是一些注冊表操作,修改了瀏覽器首頁網(wǎng)址;接下來靜態(tài)看一下,找到winmain函數(shù):
并沒有看到什么惡意代碼,全是一些有關(guān)于Windows消息機制的函數(shù)。
四、動態(tài)調(diào)試
細節(jié)不再贅述,因為創(chuàng)建hao123網(wǎng)址導(dǎo)航是前期行為,我們根據(jù)生成導(dǎo)航圖標(biāo)為現(xiàn)象追蹤主要函數(shù):
刪除這個圖標(biāo),根據(jù)在哪個函數(shù)生成這個圖標(biāo)為標(biāo)準(zhǔn):
主函數(shù):
對應(yīng)靜態(tài)分析winmain中的幾個函數(shù):
最后跟到CreateWindowExW函數(shù),這里下斷點:
看參數(shù),是一個隱形窗口:
WS_EX_TOOLWINDOW
0x00000080L
該窗口旨在用作浮動工具欄。?工具窗口具有短于普通標(biāo)題欄的標(biāo)題欄和使用較小的字體繪制的窗口標(biāo)題。?工具窗口不會顯示在任務(wù)欄中,也不會顯示在用戶按下?Alt+TAB?時出現(xiàn)的對話框中。?如果工具窗口有系統(tǒng)菜單,則其圖標(biāo)不會顯示在標(biāo)題欄上。?但是,可以通過右鍵單擊或鍵入?Alt+SPACE?來顯示系統(tǒng)菜單。
走過這個call CreateWindowExW函數(shù),圖標(biāo)就顯示出來了,但是這個函數(shù)并沒有這個功能,考慮到了靜態(tài)分析中出現(xiàn)好多關(guān)于Windows消息的函數(shù),這里可能與消息處理有關(guān)。查找資料,我們可以得知CreateWindow會給窗口發(fā)送四個消息:
// CreateWindow函數(shù)觸發(fā)了這四個消息
[2010-05-24?23:35:38]WM_NCCREATE->129 ?//?非客戶區(qū)創(chuàng)建
[2010-05-24?23:35:38]WM_NCCALCSIZE->131 ?//?非客戶區(qū)計算尺寸
[2010-05-24?23:35:38]WM_CREATE->1 //??窗口創(chuàng)建
AfterCreateWindow!
[2010-05-24?23:35:38]WM_SHOWWINDOW->24???????????
接下來我們再看倆個函數(shù):
這樣就可以捋一捋,程序自己接收消息自行處理,而處理的代碼處于WNDCLASSEX結(jié)構(gòu)體中,而這個結(jié)構(gòu)體是RegisterClass函數(shù)參數(shù),函數(shù)返回值是一個class參數(shù),用于CreateWindows函數(shù)第二個參數(shù),因為CreateWindows需要RegisterClass對窗口類進行注冊,我們對RegisterClass函數(shù)下斷點:
然后重新運行程序,每次斷在這個函數(shù),我們單步出去觀察返回值,直到走到CreateWindows函數(shù),觀察class參數(shù):
最終確定是這里的RegisterClass:
具體流程有點麻煩不在贅述。與時俱進,不寫流程圖,接下來我們查看參數(shù)結(jié)構(gòu)體第三位:
在這里下斷點,這里應(yīng)該就是處理消息的地方,F(xiàn)9走到CreateWindowExW,然后F8,成功斷在了剛才下斷點的地方:
而此時圖標(biāo)還沒生成,從這里調(diào)試,下面是關(guān)鍵call:
這里就是惡意行為地址了,這里是一個Switch函數(shù),通過比較消息碼,做出不同行為,在這里下斷點,F(xiàn)9,第三次的時候就走入第一個call,跟進去:
可以看到這里是對注冊表設(shè)置,修改瀏覽器首頁操作,生成文件夾,生成hao123.exe,生成快捷方式的操作
之后就是通過不同消息調(diào)用不同call,生成一個bat文件,內(nèi)容如下:
:Repeat
del?"C:\Users\rkvir\Desktop\UExplorerTran.exe"
if?exist?"C:\Users\rkvir\Desktop\UExplorerTran.exe"?goto Repeat
del?"C:\Users\rkvir\Desktop\\delselt.bat"
在窗口關(guān)閉的時候,調(diào)用bat文件刪除自身以及bat文件。這就是這個木馬的主要功能。