安裝“萬(wàn)能解碼器”還原真實(shí)“解碼”
一、前言
最近新出一部很火的電視劇,每天晚上更新兩集,看完之后總覺(jué)得不過(guò)癮,就去網(wǎng)上找后面的視頻,還真被筆者找到。毫不猶豫點(diǎn)擊播放,發(fā)現(xiàn)提示需要安裝某某解碼器。對(duì)于這類提示一點(diǎn)都不新鮮,嘗試下載并運(yùn)行解碼器后,往往并沒(méi)有達(dá)到預(yù)期效果,還會(huì)再次提醒下載,并沒(méi)有網(wǎng)站上描述的那么管用。筆者很好奇既然沒(méi)用,那運(yùn)行的軟件具體功能是什么。筆者便下載了一個(gè)“解碼器”,果真不出所料,沒(méi)有任何解碼的功能,但是一個(gè)流氓推廣軟件。表面上看不出問(wèn)題,只在后臺(tái)搞鬼,筆者便花了點(diǎn)心思詳細(xì)看了下該軟件的實(shí)現(xiàn),發(fā)現(xiàn)該軟件作者在免殺和隱藏上下足了功夫。雖然功能老套但是思路不錯(cuò),下面就請(qǐng)跟隨筆者一起來(lái)看看這個(gè)所謂的“萬(wàn)能解碼器”,還原真實(shí)“解碼”。
二、技術(shù)特點(diǎn)
下載之后,沒(méi)有圖標(biāo),運(yùn)行沒(méi)有任何界面,并且多次運(yùn)行效果相同。最后通過(guò)詳細(xì)分析,總結(jié)該程序有如下特點(diǎn):
1. 程序?qū)χ匾址M(jìn)行了加密處理,且有多個(gè)加密算法。
2. 釋放的功能模塊文件在本地經(jīng)過(guò)RC算法加密,非正常的PE文件。
3. 無(wú)主進(jìn)程運(yùn)行,核心模塊為內(nèi)核驅(qū)動(dòng),找不到可疑進(jìn)程。
4. 敏感操作放置在shellcode中,并進(jìn)行加密,防止被第一時(shí)間殺掉。
5. 使用了內(nèi)核技術(shù),內(nèi)核HOOK,設(shè)備HOOK。
6. 雙驅(qū)動(dòng)相互保護(hù)隱藏,并且通用32位和64位系統(tǒng)平臺(tái)。
從對(duì)抗手法來(lái)看,該程序開(kāi)發(fā)者無(wú)論在靜態(tài)還是動(dòng)態(tài)對(duì)抗上面都花了大量功夫,以達(dá)到免殺和隱藏行為的效果。
三、程序具體分析
下圖是該程序的簽名信息,從表面上看沒(méi)有任何問(wèn)題。
1. 加載器功能
該程序?qū)嶋H上是一個(gè)加載器,第一次運(yùn)行后,后期都不再依靠該加載器運(yùn)行。加載器通用于32位 和64位多個(gè)操作系統(tǒng)平臺(tái),根據(jù)不同系統(tǒng)平臺(tái)釋放不同文件。數(shù)據(jù)解密之后釋放到系統(tǒng)目錄下(PassProtect.sys和2.dat)。
解密shellcode并運(yùn)行代碼。
Shellcode中加載“PassProtect.sys”驅(qū)動(dòng)文件,驅(qū)動(dòng)加載狀態(tài)為自動(dòng)啟動(dòng)(開(kāi)機(jī)自動(dòng)加載)。
2. “PassProtect.sys”功能
首先清理“ntfs”和“fastfat”內(nèi)核的所有設(shè)備,阻止自身被外部訪問(wèn),執(zhí)行完操作后會(huì)對(duì)其還原。
對(duì)“2.dat”文件解密,使用RC算法,解密和加密是同一個(gè)函數(shù),解密后回寫到文件。
通過(guò)內(nèi)核函數(shù)ZwSetSystemInfomation加載“2.dat”驅(qū)動(dòng)。
驅(qū)動(dòng)加載之后再次通過(guò)RC加密回寫數(shù)據(jù)“2.dat”,并還原“ntfs”和“fastfat”的設(shè)備棧,隱藏第二個(gè)驅(qū)動(dòng)代碼。
3. “2.dat”功能
通過(guò)設(shè)置線程創(chuàng)建回調(diào),并主動(dòng)觸發(fā)回調(diào)來(lái)找到“ExCallBackBlockRoutineProc”函數(shù)地址。
掛鉤“ExCallBackBlockRoutineProc”函數(shù),通過(guò)過(guò)濾系統(tǒng)模塊和自身模塊,把其余所有模塊的回調(diào)函數(shù)修改入口直接返回,達(dá)到反進(jìn)程創(chuàng)建監(jiān)視的作用。
設(shè)置模塊加載回調(diào)和進(jìn)程創(chuàng)建回調(diào)。
通過(guò)檢查加載的模塊是否是”kernel32.dll”判斷創(chuàng)建進(jìn)程,并且修改瀏覽器進(jìn)程的命令行參數(shù)。
檢查父進(jìn)程為“explorer.exe”(用戶打開(kāi)運(yùn)行),并且添加事件修改命令行參數(shù)。
修改進(jìn)程命令行參數(shù),改變?yōu)g覽器主頁(yè)。
創(chuàng)建系統(tǒng)線程,掛鉤NTfs的create回調(diào)。
在Create回調(diào)中,保護(hù)第一個(gè)驅(qū)動(dòng)文件“PassProtect.sys”不被任何程序訪問(wèn)。
四、總結(jié)
從上面分析看出,程序開(kāi)發(fā)者通過(guò)各種技術(shù)手段,費(fèi)勁心思,最終達(dá)到鎖主頁(yè)的目的。隨著目前各大殺軟對(duì)流氓推廣軟件的封殺,常規(guī)的推廣手法已不在適用,升級(jí)后的對(duì)抗已經(jīng)不在簡(jiǎn)單的修改注冊(cè)表。更為猥瑣和流氓的推廣方式紛紛出現(xiàn),各顯神通,一不留神便被乘虛而入。當(dāng)用戶放行這個(gè)程序,流氓推廣已經(jīng)勢(shì)不可擋,直搗黃龍。假如作者狠一點(diǎn),后果將是不可不堪設(shè)想。所以筆者在這里提醒各位讀者,對(duì)這類所謂解碼器最好從正規(guī)網(wǎng)站下載。由于程序經(jīng)過(guò)免殺處理,能夠查殺的殺毒軟件并不多(見(jiàn)下圖VT掃描結(jié)果)。如果系統(tǒng)中曾經(jīng)運(yùn)行過(guò)該類解碼器或播放器,可以安裝下列可查殺的殺毒軟件進(jìn)行查殺。最后祝愿各位免受“流氓”困擾,金龍索玉柱,百毒不沾身。