代 銓
?
木馬隱藏技術(shù)分析
代 銓
中國(guó)石油大學(xué),山東 青島 264000
首先介紹了木馬的原理和特征,然后對(duì)木馬所實(shí)現(xiàn)的功能做了簡(jiǎn)單的介紹,最后從木馬的文件隱藏,進(jìn)程隱藏和通信隱藏三個(gè)方面著重進(jìn)行了分析。
木馬;木馬隱藏;通信隱藏
木馬,是一種通過(guò)潛入對(duì)方電腦進(jìn)非法操作的計(jì)算機(jī)成程序,是目前黑客慣用的一種攻擊手段,和一般的惡意軟件不同,木馬不主動(dòng)進(jìn)行自我復(fù)制和傳播,破壞其他程序,然而,木馬的潛伏性是超前的,為了看起來(lái)和正常程序一樣,在進(jìn)入系統(tǒng)之前,對(duì)自身的程序進(jìn)行了偽裝,使被感染的系統(tǒng)看起來(lái)一切正常,從而嚴(yán)重威脅計(jì)算機(jī)網(wǎng)絡(luò)安全[1]。
一個(gè)完整的木馬程序包含兩部分內(nèi)容,服務(wù)端和控制端,服務(wù)端程序是通過(guò)遠(yuǎn)程計(jì)算機(jī)網(wǎng)絡(luò)植入對(duì)方電腦,而黑客通過(guò)客戶端進(jìn)入運(yùn)行了服務(wù)端的受控電腦,通常運(yùn)行了服務(wù)端的計(jì)算機(jī)會(huì)生成一個(gè)類似于系統(tǒng)文件的進(jìn)程,此時(shí)端口被暗中打開,電腦中保存的各類數(shù)據(jù)(比如QQ密碼,網(wǎng)絡(luò)游戲密碼等)會(huì)向控制端進(jìn)行發(fā)送,黑客也可以通過(guò)這些暗中打開的端口進(jìn)入目標(biāo)電腦,此時(shí),電腦中更多的隱私將會(huì)遭受更大的泄露。
木馬一般具有以下特征:
(1)隱藏性,隱藏性是木馬的最顯著特征,比如,改寫進(jìn)程名稱使其和系統(tǒng)文件高度相似,隱藏在任務(wù)管理器中的進(jìn)程,減少程序大小,減少暗中打開端口的流量。
(2)自動(dòng)運(yùn)行性,可以隨電腦啟動(dòng)而啟動(dòng),比如潛入啟動(dòng)配置文件win.ini,winstart。Bat等,有的也可嵌入正常軟件,隨軟件的運(yùn)行而啟動(dòng)。
(3)欺騙性:木馬為了防止被發(fā)現(xiàn),通常偽裝成為系統(tǒng)中本身存在的文件,比武將文件名中的“O”改為“0”,“1改為I”等容易混淆是非的字符,或者有的系統(tǒng)中本身的文件名也可被木馬直接套用,只不過(guò)是保存在不同的系統(tǒng)路徑下,另外,有的木馬將自己改裝成為ZIP壓縮文件,當(dāng)用戶解壓時(shí),直接運(yùn)行。四、自我恢復(fù)性。目前大多數(shù)木馬程序的功能模塊已不是單一的組件構(gòu)成,而是自動(dòng)復(fù)制到電腦其他路徑做備份,在子木馬或者主木馬被刪除時(shí),都可以再自動(dòng)生成[2]。
木馬的作用不僅限于竊取密碼,對(duì)文件進(jìn)行操作。一個(gè)功能強(qiáng)大的木馬程序,一旦潛入計(jì)算機(jī)系統(tǒng),黑客對(duì)于受控計(jì)算機(jī)的操作就如同和自己自己的一樣。木馬的功能主要分為以下幾個(gè)方面:
竊取密碼。這是早期木馬最根本的一個(gè)功能,大多數(shù)木馬具有鍵盤按鍵記錄功能,一旦木馬植入計(jì)算機(jī),任何輸入鍵盤的密碼將很容易被竊取,然而并沒有鼠標(biāo)記錄功能,所以,通過(guò)鼠標(biāo)適當(dāng)?shù)脑熳鱽?lái)改變擊鍵順序可以有效的防止密碼泄露。此外,木馬程序也可以記錄其他的明文以及緩存Cache記錄。
遠(yuǎn)程監(jiān)控。攻擊者可以對(duì)目標(biāo)電腦進(jìn)行屏幕圖像截取,從而監(jiān)控目標(biāo)系統(tǒng)的操作,當(dāng)需要時(shí),還能通過(guò)輸入指令,對(duì)受控計(jì)算機(jī)的鼠標(biāo)和鍵盤進(jìn)行操作。早年的“灰鴿子”就有遠(yuǎn)程視頻監(jiān)控的功能,并且還可以對(duì)語(yǔ)音進(jìn)行監(jiān)聽和發(fā)送[3]。
修改注冊(cè)表。被植入服務(wù)端的電腦,其注冊(cè)表的信息,主鍵、子鍵等可以被控制端任意的修改,刪除,新建等,就像操作自己的電腦一樣。
系統(tǒng)操作。這項(xiàng)功能不但可以控制服務(wù)端的鍵盤、鼠標(biāo)等基本操作,還可以斷開服務(wù)端的網(wǎng)絡(luò)連接,關(guān)閉或者重啟操作系統(tǒng),甚至發(fā)送信息,以此來(lái)達(dá)到控制目的。
木馬為了規(guī)避殺毒軟件,防止被發(fā)現(xiàn),增加生命周期,通常在進(jìn)入系統(tǒng)后會(huì)以各種方法隱藏其行蹤,木馬的隱藏能力直接決定了木馬的攻擊效果。主要分為三種方式:文件隱藏、進(jìn)程隱藏、通信隱藏。
3.1 文件隱藏
文件隱藏是指木馬程序通過(guò)偽裝目標(biāo)磁盤文件,讓用戶在表面上難以辨別出木馬程序,通常的文件隱藏方法如下:
(1)嵌入宿主文件。采用此方法的木馬主要是嵌入到系統(tǒng)文件中,當(dāng)啟動(dòng)系統(tǒng)時(shí),木馬隨即啟動(dòng),有的也是捆綁到某個(gè)應(yīng)用程序中,當(dāng)此程序被用戶使用時(shí),木馬也跟隨啟動(dòng)。除此之外,目前嵌入在壓縮文件ZIP中的木馬也比較常見,解壓文件的同時(shí),木馬程序也被釋放運(yùn)行了[4]。
(2)修改文件屬性。木馬程序一般會(huì)把自身的文件類型設(shè)置為隱藏,并且只讀。這樣做的目的主要是防止用戶發(fā)現(xiàn),并且保證自身的文件內(nèi)容不會(huì)被修改。很多木馬會(huì)把文件釋放到windows或者windowssystem32等系統(tǒng)目錄下,而且會(huì)修改此文件的生成日期,以此來(lái)迷惑用戶。
(3)文件替換。也叫DLL技術(shù),是木馬程序發(fā)展的一種比較新的技術(shù)產(chǎn)物。這種技術(shù)的精髓所在是將系統(tǒng)原來(lái)的DLL替換為木馬DLL,將原來(lái)的DLL修改并保存為其他名稱,并且過(guò)濾進(jìn)程對(duì)此系統(tǒng)DLL函數(shù)的調(diào)用,對(duì)于正常的調(diào)用,木馬DLL直接轉(zhuǎn)發(fā)給原來(lái)的系統(tǒng)DLL,當(dāng)接到特殊的調(diào)用時(shí),木馬DLL就行行相關(guān)的操作。如圖1-1所示。這種木馬既沒有增加新的系統(tǒng)文件,沒有創(chuàng)建新的進(jìn)程,也沒有打開新的端口,因此其隱蔽性是極強(qiáng)的,為長(zhǎng)期隱藏在電腦中奠定了很好基礎(chǔ)。
圖1-1 特洛伊DLL示意圖
3.2 進(jìn)程隱藏
打開任務(wù)管理器,查看是否有可疑的進(jìn)程,這是檢查木馬程序最簡(jiǎn)單直接的方法,木馬程序經(jīng)過(guò)更新?lián)Q代,此種方法已經(jīng)不能有效的阻止木馬入侵了,進(jìn)程隱藏就是防止用戶通過(guò)這種軟件發(fā)現(xiàn)木馬的存在,增加了木馬的生存周期。
最簡(jiǎn)單的進(jìn)程隱藏方式就是把木馬程序的文件名改為和系統(tǒng)高度相似的名稱,比如Exp1orer.exe,利用數(shù)字“1”和字母“I”和特別相像,SVCH0ST.EXE,利用數(shù)字 “0”和字母“o”的相似性,來(lái)迷惑用戶。在計(jì)算機(jī)系統(tǒng)內(nèi),由于存在很多個(gè)SVCHOST.EXE進(jìn)程,因此這種改寫也增加了迷惑性。然而,對(duì)經(jīng)驗(yàn)豐富的用戶使用此種招式就很難發(fā)揮其功效了,當(dāng)前主流的更高一級(jí)的技術(shù)主要分為以下兩種:API鉤子技術(shù)和DLL技術(shù)。
(1)API鉤子(HOOK)技術(shù)。API鉤子,也稱API HOOK技術(shù),此技術(shù)可以讓任務(wù)管理器等進(jìn)程軟件不顯示木馬程序的進(jìn)程列表,然而木馬程序卻真實(shí)存在于系統(tǒng)之中。所以它所實(shí)現(xiàn)的進(jìn)程隱藏屬于偽隱藏。API(application programming interface)是Windows提供的應(yīng)用編程接口,其作用是應(yīng)用程序可以對(duì)系統(tǒng)進(jìn)行操控。鉤子(hook)實(shí)際上是處理消息的一段程序,當(dāng)被HOOK的某一事件(比如API函數(shù)調(diào)用),一旦接受到特定的指令,那么進(jìn)行HOOK的程序就會(huì)取得此條指令的控制權(quán),可以任意修改,轉(zhuǎn)發(fā),或者結(jié)束指令。一般而言,鉤子服務(wù)器(負(fù)責(zé)鉤子鉤子驅(qū)動(dòng)器的植入和卸載,一般為EXE文件)和鉤子驅(qū)動(dòng)器(負(fù)責(zé)具體的API調(diào)用攔截和操作,一般為DLL文件)組成了API HOOK[5]。
(2)DLL嵌入技術(shù)。如果,木馬程序直接不產(chǎn)生進(jìn)程,那么用戶想要找出破綻就非常困難了,DLL技術(shù)正是采用了這種手段,并且達(dá)到了真正的進(jìn)程隱藏, DLL不獨(dú)立運(yùn)行,而是加載在某個(gè)進(jìn)程的線程當(dāng)中,所以在進(jìn)程列表中,并不會(huì)發(fā)現(xiàn)木馬DLL,而是顯示那個(gè)進(jìn)程,通過(guò)Rundll32.exe來(lái)運(yùn)行DLL是最簡(jiǎn)單的方法,但是很容易被發(fā)現(xiàn)。更高端一點(diǎn)的則是利用木馬DLL替換系統(tǒng)本來(lái)的DLL,當(dāng)函數(shù)轉(zhuǎn)發(fā)器收到正常的調(diào)用時(shí),依然會(huì)轉(zhuǎn)發(fā)給原來(lái)的DLL,當(dāng)只有收到特定消息時(shí),才會(huì)進(jìn)行攔截。DLL嵌入技術(shù)脫離了木馬監(jiān)聽端口的老舊模式,最大的優(yōu)點(diǎn)在于,通過(guò)端口監(jiān)視的方法進(jìn)行查殺,因?yàn)樾碌亩丝诓]有被打開。并且通過(guò)一般的殺毒軟件掃描文件的形式也并不能有效的清除,因?yàn)椴]有產(chǎn)生新的文件。這種方法幾乎沒有征兆,所以其隱蔽性是極高的。
3.3 通信隱藏
木馬的通信隱藏方法有以下2種:
(1)端口隱藏。一般來(lái)講,木馬植入主機(jī)后,會(huì)選擇1024等高端口上駐留,也有部分木馬采用端口復(fù)用技術(shù),選擇常用端口,比如80端口來(lái)進(jìn)行通信,并不打開新的端口,當(dāng)收到正常的HTTP請(qǐng)求時(shí),仍然交于web服務(wù)器處理,只有當(dāng)收到約定的數(shù)據(jù)包時(shí),才調(diào)用木馬。(2)反向連接技術(shù)。這種技術(shù)的突破點(diǎn)在于利用了防火墻的一個(gè)破綻,防火墻主要是對(duì)于進(jìn)入主機(jī)的文件或者鏈接進(jìn)行嚴(yán)格的過(guò)濾,但是對(duì)于主機(jī)主動(dòng)向外界的鏈接卻幾乎不進(jìn)行過(guò)濾,和普通的木馬不同,反彈端口型木馬采用的采用的是反向鏈接的編程方法,即:服務(wù)器端(被控制端)采用主動(dòng)端口,客戶端(控制端)采用的是被動(dòng)端口,被植入反彈木馬服務(wù)器端的計(jì)算機(jī)定時(shí)檢測(cè)控制端的上線情況,一旦發(fā)現(xiàn)控制端上線,立即彈出端口連接控制端打開的端口,這種連接還能突破內(nèi)網(wǎng)與外部建立連接。
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)安全已經(jīng)成為人們不得不考慮的一個(gè)因素,木馬植入手段多樣化以及比較強(qiáng)的隱蔽性,對(duì)計(jì)算機(jī)系統(tǒng)的危害性隨之提升,在此背景下,本文對(duì)木馬的隱藏技術(shù)進(jìn)行了深入分析,將有助于采用有效的方式來(lái)減少木馬的危害。
[1]藺聰,黑麗霞.木馬的植入與隱藏技術(shù)分析[J].信息安全與通信保密,2008(7):53-55.
[2]王曉燕.計(jì)算機(jī)病毒傳播模型及檢測(cè)研究[D].武漢:華中師范大學(xué),2011.
[3]蔡洪民等.特洛伊木馬攻擊分析與檢測(cè)技術(shù)研究[J].計(jì)算機(jī)安全,2007(4):53-56.
[4]蓋凌云等.木馬隱蔽技術(shù)分析及檢測(cè)[J].中國(guó)現(xiàn)代教育裝備,2007(5):77-79.
[5]周宇曉.網(wǎng)絡(luò)木馬病毒的防范探討[J].科技信息,2008(35):12-15.
Analysis of Trojan horse hiding technology
Dai Quan
China University of Petroleum,Shandong Qingdao 264000
The Principles and features of Trojans is discussed first in the text,and the function of Trojans is also descrbed,F(xiàn)inally Trojan file hiding, process hiding and communications hiding are focused on this three aspects of the hidden analyzed.
Trojans;Trojan hiding;Communication Hiding
TP393.08
A
1009-6434(2016)09-0037-03
代銓(1990—),男,漢族,籍貫為山東省青島市,當(dāng)前職務(wù)為集團(tuán)客戶中心,當(dāng)前職稱為助理工程師,學(xué)歷本科,研究方向?yàn)殡娮优c通信工程。