木馬攻擊原理
木馬程序是一種客戶機(jī)服務(wù)器程序,典型結(jié)構(gòu)為客戶端/服務(wù)器(Client/Server,C/S)模式,服務(wù)器端(被攻擊的主機(jī))程序在運(yùn)行時(shí),黑客可以使用對(duì)應(yīng)的客戶端直接控制目標(biāo)主機(jī)。操作系統(tǒng)用戶權(quán)限管理中有一個(gè)基本規(guī)則,就是在本機(jī)直接啟動(dòng)運(yùn)行的程序擁有與使用者相同的權(quán)限。假設(shè)你以管理員的身份使用機(jī)器,那么從本地硬盤啟動(dòng)的一個(gè)應(yīng)用程序就享有管理員權(quán)限,可以操作本機(jī)的全部資源。但是從外部接入的程序一般沒有對(duì)硬盤操作訪問的權(quán)限。木馬服務(wù)器端就是利用了這個(gè)規(guī)則,植入目標(biāo)主機(jī),誘導(dǎo)用戶執(zhí)行,獲取目標(biāo)主機(jī)的操作權(quán)限,以達(dá)到控制目標(biāo)主機(jī)的目的的。
木馬程序的服務(wù)器端程序是需要植入到目標(biāo)主機(jī)的部分,植入目標(biāo)主機(jī)后作為響應(yīng)程序??蛻舳顺绦蚴怯脕砜刂颇繕?biāo)主機(jī)的部分,安裝在控制者的計(jì)算機(jī)上,它的作用是連接木馬服務(wù)器端程序,監(jiān)視或控制遠(yuǎn)程計(jì)算機(jī)。
典型的木馬工作原理是:當(dāng)服務(wù)器端程序在目標(biāo)主機(jī)上執(zhí)行后,木馬打開一個(gè)默認(rèn)的端口進(jìn)行監(jiān)聽,當(dāng)客戶端(控制端)向服務(wù)器端(被控主機(jī))提出連接請(qǐng)求時(shí),被控主機(jī)上的木馬程序就會(huì)自動(dòng)應(yīng)答客戶端的請(qǐng)求,服務(wù)器端程序與客戶端建立連接后,客戶端(控制端)就可以發(fā)送各類控制指令對(duì)服務(wù)器端(被控主機(jī))進(jìn)行完全控制,其操作幾乎與在被控主機(jī)的本機(jī)操作的權(quán)限完全相同。
木馬軟件的終極目標(biāo)是實(shí)現(xiàn)對(duì)目標(biāo)主機(jī)的控制,但是為了實(shí)現(xiàn)此目標(biāo),木馬軟件必須采取多種方式偽裝,以確保更容易地傳播,更隱蔽地駐留在目標(biāo)主機(jī)中。
下面介紹木馬的種植原理和木馬的隱藏。
(1)木馬種植原理
木馬程序最核心的一個(gè)要求是能夠?qū)⒎?wù)器端程序植入目標(biāo)主機(jī)。木馬種植(傳播)的方式一般包括以下3種。
1)通過電子郵件附件夾帶
這是最常用也是比較有效的一種方式。木馬傳播者將木馬服務(wù)器端程序以電子郵件附件的方式附加在電子郵件中,針對(duì)特定主機(jī)發(fā)送或漫無目的地群發(fā),電子郵件的標(biāo)題和內(nèi)容一般都非常吸引人,當(dāng)用戶點(diǎn)擊閱讀電子郵件時(shí),附件中的程序就會(huì)在后臺(tái)悄悄下載到本機(jī)。
2)捆綁在各類軟件中
黑客經(jīng)常把木馬程序捆綁在各類所謂的補(bǔ)丁、注冊(cè)機(jī)、破解程序等軟件中進(jìn)行傳播,當(dāng)用戶下載相應(yīng)的程序時(shí),木馬程序也會(huì)被下載到自己的計(jì)算機(jī)中,這類方式的隱蔽度和成功率較高。
3)網(wǎng)頁掛馬
網(wǎng)頁掛馬是在正常瀏覽的網(wǎng)頁中嵌入特定的腳本代碼,當(dāng)用戶瀏覽該網(wǎng)頁時(shí),嵌入網(wǎng)頁的腳本就會(huì)在后臺(tái)自動(dòng)下載其指定的木馬并執(zhí)行。其中網(wǎng)頁是網(wǎng)頁木馬的核心部分,特定的網(wǎng)頁代碼使網(wǎng)頁被打開時(shí)木馬能隨之下載并執(zhí)行。網(wǎng)頁掛馬大多利用瀏覽器的漏洞來實(shí)現(xiàn),也有利用ActiveX控件或釣魚網(wǎng)頁來實(shí)現(xiàn)的。
(2)木馬程序隱藏
木馬程序?yàn)榱四芨玫囟氵^用戶的檢查,以悄悄控制用戶系統(tǒng),必須采用各種方式將其隱藏在用戶系統(tǒng)中。木馬為了達(dá)到長(zhǎng)期隱藏的目的,通常會(huì)同時(shí)采用多種隱藏技術(shù)。木馬程序隱藏的方式有很多,主要包括以下4類:
① 通過將木馬程序設(shè)置為系統(tǒng)、隱藏或是只讀屬性來實(shí)現(xiàn)隱藏;
② 通過將木馬程序命名為和系統(tǒng)文件的名稱極度相似的文件名,從而使用戶誤認(rèn)為其是系統(tǒng)文件而忽略之;
③ 將木馬程序存放在不常用或難以發(fā)現(xiàn)的系統(tǒng)文件目錄中;
④ 將木馬程序存放的區(qū)域設(shè)置為壞扇區(qū)的硬盤磁道。
(3)木馬啟動(dòng)隱藏
木馬程序在啟動(dòng)時(shí)必須讓操作系統(tǒng)或殺毒軟件無法發(fā)現(xiàn)自身才能駐留系統(tǒng)。木馬程序啟動(dòng)的隱藏方式介紹如下。
1)文件偽裝
木馬最常用的文件隱藏方式是將木馬文件偽裝成本地可執(zhí)行文件。例如,木馬程序經(jīng)常會(huì)將自己偽裝成圖片文件,修改其圖標(biāo)為Windows默認(rèn)的圖片文件圖標(biāo),同時(shí)修改木馬文件擴(kuò)展名為.jpg、.exe等,由于Windows默認(rèn)設(shè)置不顯示已知的文件后綴名,因此文件將會(huì)顯示為.jpg,當(dāng)用戶以正常圖片文件打開并瀏覽其時(shí)就會(huì)啟動(dòng)木馬程序。
2)修改系統(tǒng)配置
利用系統(tǒng)配置文件的特殊作用,木馬程序很容易隱藏在系統(tǒng)啟動(dòng)項(xiàng)中。例如,Windows系統(tǒng)配置文件MSCONFIG.sys中的系統(tǒng)啟動(dòng)項(xiàng)system.ini是眾多木馬的隱藏地。Windows安裝目錄下的system.ini[boot]字段中,正常情況下有boot=“Explorer.exe”,如果其后面有其他的程序,如boot=“Explorer.exe file.exe”,則這里的file.exe就有可能是木馬服務(wù)端程序。
3)利用系統(tǒng)搜索規(guī)則
Windows系統(tǒng)搜尋一個(gè)不帶路徑信息的文件時(shí)遵循“從外到里”的規(guī)則,它會(huì)由系統(tǒng)所在的盤符的根目錄開始向系統(tǒng)目錄深處遞進(jìn)查找,而不是精確定位。這就意味著,如果有兩個(gè)同樣名稱的文件分別放在“C:\”和“C:\WINDOWS”下時(shí),搜索會(huì)執(zhí)行C:\下的程序,而不是C:\WINDOWS下的程序。這樣的搜尋規(guī)則就給木馬提供了一個(gè)機(jī)會(huì),木馬可以把自己改為系統(tǒng)啟動(dòng)時(shí)必定會(huì)調(diào)用的某個(gè)文件,并復(fù)制到比原文件的目錄淺一級(jí)的目錄里,操作系統(tǒng)就會(huì)執(zhí)行這個(gè)木馬程序,而不是正常的那個(gè)程序。若要提防這種占用系統(tǒng)啟動(dòng)項(xiàng)而做到自動(dòng)運(yùn)行的木馬,則用戶必須了解自己的計(jì)算機(jī)里所有正常的啟動(dòng)項(xiàng)信息。
4)替換系統(tǒng)文件
木馬程序會(huì)利用系統(tǒng)里的那些不會(huì)危害到系統(tǒng)正常運(yùn)行而又會(huì)被經(jīng)常調(diào)用的程序文件,如輸入法指示程序。木馬程序會(huì)替換掉原來的系統(tǒng)文件,并把原來的系統(tǒng)文件名改成只有木馬程序知道的一個(gè)生僻文件名。只要系統(tǒng)調(diào)用那個(gè)被替換的程序,木馬就能繼續(xù)駐留內(nèi)存。木馬程序作為原來的程序被系統(tǒng)啟動(dòng)時(shí),會(huì)獲得一個(gè)由系統(tǒng)傳遞來的運(yùn)行參數(shù),此時(shí),木馬程序就把這個(gè)參數(shù)傳遞給被改名的程序執(zhí)行。
(4)木馬進(jìn)程隱藏
木馬程序運(yùn)行后的進(jìn)程隱藏有兩種情況:一種是木馬程序的進(jìn)程存在,只是不出現(xiàn)在進(jìn)程列表里,采用APIHOOK技術(shù)攔截有關(guān)系統(tǒng)函數(shù)的調(diào)用以實(shí)現(xiàn)運(yùn)行時(shí)的隱藏;另一種是木馬不以一個(gè)進(jìn)程或者服務(wù)的方式工作,而是將其核心代碼以線程或DLL的方式注入合法進(jìn)程,用戶很難發(fā)現(xiàn)被插入的線程或DLL,從而達(dá)到木馬隱藏的目的。
在Windows系統(tǒng)中常見的隱藏方式有注冊(cè)表DLL插入、特洛伊DLL、動(dòng)態(tài)嵌入技術(shù)、CreateProcess插入和調(diào)試程序插入等。
(5)木馬通信時(shí)的信息隱藏
木馬運(yùn)行時(shí)需要通過網(wǎng)絡(luò)與外機(jī)通信,以獲取外機(jī)的控制命令或向外機(jī)發(fā)送信息。木馬通信時(shí)的信息隱藏主要包括通信內(nèi)容、流量、信道和端口的隱藏。
木馬常用的通信內(nèi)容隱藏方法是對(duì)通信內(nèi)容進(jìn)行加密。通信信道的隱藏一般采用網(wǎng)絡(luò)隱蔽通道技術(shù)。在TCP/IP族中,有許多冗余信息可用于建立網(wǎng)絡(luò)隱蔽通道。木馬可以利用這些網(wǎng)絡(luò)隱蔽通道突破網(wǎng)絡(luò)安全機(jī)制。比較常見的有:ICMP畸形報(bào)文傳遞、HTTP隧道技術(shù)、自定義 TCP/UDP報(bào)文等。木馬采用網(wǎng)絡(luò)隱蔽通道技術(shù)時(shí),如果選用一般的安全策略都會(huì)允許的端口(如80端口)進(jìn)行通信,則可輕易穿透防火墻和避過入侵檢測(cè)系統(tǒng)等安全機(jī)制的檢測(cè),從而獲得較強(qiáng)的隱蔽性。通信流量的隱藏一般采用監(jiān)控系統(tǒng)網(wǎng)絡(luò)通信的方式,當(dāng)監(jiān)測(cè)到系統(tǒng)中存在其他通信流量時(shí),木馬程序就會(huì)啟動(dòng)通信;當(dāng)不存在其他通信流量時(shí),木馬程序就會(huì)處于監(jiān)聽狀態(tài),等待其他通信開啟。
(6)木馬隱蔽加載
木馬隱蔽加載是指通過修改虛擬設(shè)備驅(qū)動(dòng)程序(VxD)或動(dòng)態(tài)鏈接庫(DLL)來加載木馬。這種方法基本上擺脫了原有的木馬模式——監(jiān)聽端口,而采用了替代系統(tǒng)功能的方法(改寫VxD或DLL文件):木馬用修改后的DLL替換系統(tǒng)原來的DLL,并對(duì)所有的函數(shù)調(diào)用進(jìn)行過濾。對(duì)于常用函數(shù)的調(diào)用,木馬會(huì)使用函數(shù)轉(zhuǎn)發(fā)器將其直接轉(zhuǎn)發(fā)給被替換的系統(tǒng)DLL;對(duì)于一些事先約定好的特殊情況,木馬會(huì)自動(dòng)執(zhí)行。一般情況下,DLL只是進(jìn)行監(jiān)聽,一旦發(fā)現(xiàn)控制端的請(qǐng)求,其就會(huì)激活自身。這種木馬沒有增加新的文件,不需要打開新的端口,沒有新的進(jìn)程,使用常規(guī)的方法無法監(jiān)測(cè)到。在正常運(yùn)行時(shí),木馬幾乎沒有任何蹤跡,只有在木馬的控制端向被控制端發(fā)出特定的信息后,隱藏的木馬程序才會(huì)開始運(yùn)行。
責(zé)編AJX
-
網(wǎng)絡(luò)安全
+關(guān)注
關(guān)注
11文章
3268瀏覽量
60987 -
木馬
+關(guān)注
關(guān)注
0文章
47瀏覽量
13465 -
網(wǎng)絡(luò)攻擊
+關(guān)注
關(guān)注
0文章
331瀏覽量
23727
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
從晶圓代工廠下黑手?提防集成電路的“硬件木馬”
[轉(zhuǎn)帖]利用windows命令來識(shí)別木馬病毒
【assingle原創(chuàng)】試論網(wǎng)絡(luò)入侵、攻擊與防范技術(shù)
什么是特洛伊木馬技術(shù)
木馬的工作原理

特洛伊木馬類型及隱藏技術(shù)
改進(jìn)歐式距離的硬件木馬檢測(cè)

如何使用信息隱藏技術(shù)進(jìn)行木馬植入的方法概述

卡巴斯基實(shí)驗(yàn)室發(fā)現(xiàn),2019年銀行木馬攻擊的數(shù)量將繼續(xù)增加
數(shù)字貨幣挖礦如何防范挖礦木馬攻擊
網(wǎng)站服務(wù)器被攻擊后如何查找被木馬篡改的痕跡
詳談挖礦木馬的檢測(cè)和解決方案

基于RNN和深度學(xué)習(xí)的Linux遠(yuǎn)控木馬檢測(cè)

一文詳談波峰焊接工藝資料下載

華為安全大咖談 | 華為終端檢測(cè)與響應(yīng)EDR 第05期:挖礦木馬防御新視角:從攻擊鏈檢測(cè)到深度處置

評(píng)論