木馬全稱為特洛伊木馬,英文叫做“Trojan house”,原指古希臘士兵藏在木馬內進入敵方城市從而占領敵方城市的故事。在計算機安全領域,特洛伊木馬是指附著在應用程序中或者單獨存在的一些惡意程序,它可以利用網絡遠程響應網絡另一端的控制程序的控制命令,實現對感染木馬程序的計算機的控制,或者竊取感染木馬程序的計算機上的機密資料。
一般的木馬都有客戶端和服務器端兩個執行程序,其中客戶端是用于攻擊者遠程控制植入木馬的機器,服務器端程序即是特洛伊木馬程序。由于特洛伊木馬程序能夠在計算機管理員未發覺的情況下開放系統權限、泄漏用戶信息、甚至竊取整個計算機管理使用權限,使得它成為了黑客們最為常用的工具之一。
發展沿革
名稱來源
“ 特洛伊木馬 ” 簡稱 “ 木馬 ”,英文名為trojan horse,名稱來源于《荷馬史詩》中的一個故事,希臘大軍圍攻特洛伊城,久久無法攻下,后讓士兵藏匿于巨大的木馬中,混于城中,最后焚屠特洛伊城。后世稱這只大木馬為“特洛伊木馬”。人們之所以用特洛伊木馬來命名這種遠程控制軟件,是因為它攻擊的欺騙性和希臘人的手法相同。黑客們往往把木馬的服務端程序偽裝成美麗的事物,然后誘使你上當受騙,從而控制你的機器。
木馬誕生
1971年11月3日的第一版《UNIX程序員手冊》的System calls, part 1部分,已經提出了關于“Trojan horse”的字樣。在系統呼叫-第一部分中關于更改文件所有者是這樣描述的,在設置-用戶-ID位打開的情況下,不得更改文件的所有者,否則可能會創建能夠濫用其他文件的特洛伊木馬。
世界上第一個被廣泛承認的計算機木馬是出現在1986年的PC-Write木馬。它偽裝成共享軟件PC-Write的2.72版本(事實上,編寫PC-Write的Quicksoft公司從未發行過2.72版本),一旦用戶信以為真運行該木馬程序,那么后果就是文件分配表(FAT)被抹掉,HDD被格式化,所有的數據被刪除。
發展階段
木馬程序產生初期,當時的計算機使用者多為技術人員,使用的系統則多為unix,因此當時的木馬以內核級木馬為主。隨著科技的發展和應用,WIBNDOWS系統和傳輸控制協議/網際協議網絡逐步成熟并獲取到更大市場,因此木馬也呈現出向應用級過渡特征,主要寄端口通信的客戶端/服務器程序中。但是隨著反病毒各種技術的逐步成熟,木馬病毒也呈現出越來越隱蔽的特征,典型的客戶端/服務器結構明顯已經不能滿足入侵要求,現在的入侵過程中,客戶端通常不再與服務端直接通信,而是借由代理控制服務端進行數據的發送和接受。木馬發送端為確保自身的安全并且實現反跟蹤和更為隱蔽的攻擊,由代理將把控命令按照約定的格式寫入到指定的公共服務器上,并且由服務端自動將該服務器上的命令進行讀取執行,同樣服務端也會按約定把竊取的數據自動上傳到指定的某個公共服務器上,代理定期查詢該服務器上的數據并接收,最終實現攻擊。
木馬在網絡技術和編程技術快速發展的同時,也在不斷完善和提高自身的隱蔽性等功能,已經經歷了5個發展階段。
第1階段:木馬在互聯網初期出現,以竊取網絡密碼為主要任務。
第2階段:木馬開始利用C/S架構,進行遠程控制和監視。但是由于植入木馬的目標計算機會打開某些端口,所以能夠被輕易發現。
第3階段:木馬在網絡連接上進行了改變,它的特征是利用ICMP通信協議偽裝自己,部分還利用欺騙技術達到被動連接的目的,這樣就可以防止被安全軟件查殺。
第4階段:木馬利用嵌入內核的方法,例如通過插入DLL線程、掛接PSAPI、偽裝線程等。
第5階段:木馬充分利用了病毒相關技術,針對互聯網和計算機操作系統的缺點和不足,滲透到目標計算機或網絡中,以達到控制目標的目的,而且可以實現自動激活的目的,使用戶和安全軟件更難發現。
工作原理
技術基礎
在計算機領域中木馬程序是一種未經授權的程序,它包含在一段正常的程序中,這個未經授權的程序提供了一些用戶不知道的功能,其目的是不需要管理員的準許就可獲得系統使用權。木馬利用自身所具有的植入功能,依附其他具有傳播能力的病毒之上,或者通過入侵后植入等多種途徑,進駐目標機器,搜集其中的各種敏感信息,并通過網絡與外界通信,發回所搜集到的各種敏感信息,接受植入者指令,完成其他各種操作,如修改指定文件、格式化HDD等。
工作原理
特洛伊木馬本質上就是一種客戶/服務器模式的網絡程序,其工作原理是一臺主機提供服務器(服務器端),另一臺主機接受服務 (客戶端)。當服務器端在目標計算機上被執行后,木馬打開一個默認的端口進行監聽,當客戶機向服務端提出連接請求,服務器上的相應程序就會自動運行來應答客戶機的請求,服務器端程序與客戶端建立連接后,由客戶端發出指令,服務器在計算機中執行這些指令,并將數據傳送到客戶端,以達到控制主機的目的。
關鍵技術
木馬程序的工作過程包含了木馬程序的偽裝、隱藏、啟動、通信以及攻擊等。
偽裝技術:木馬程序的偽裝技術主要有以下幾種方法:修改圖標、捆綁于正常文件中、顯示出錯信息、自我銷毀、更改文件名。
隱藏技術:木馬會采用各種手段來偽裝隱藏以使被感染的系統表現正常。木馬的隱藏技術主要分為三類:本地隱藏、通信隱藏和協同隱藏。
通信技術:木馬有很多通信方法,最常見的是使用TCP、UDP協議,為了增強隱蔽性,可采用HTTP隧道技術、反彈端口技術、 ICMP協議通信,端口復用等技術進行通信。
啟動技術:木馬是隨計算機或Windows的啟動而啟動并掌握一定的控制權的,主要有以下幾種啟動方式:隨正常的程序啟動而啟動、隱藏在配置文件中、潛伏在Win.ini中、在System.ini中藏身、偽裝成普通文件、內置到注冊表中、隱形于啟動組中、隱蔽在Winstart.bat中、設置在超級鏈接中。
結構組成
一個完整的木馬系統由硬件部分,軟件部分和連接部分組成。硬件部分主要由控制端、服務端和INTERNET組成。而軟件部分則由控制端程序、木馬程序和木馬配置程序組成。連接部分則由控制端及服務端IP和控制端及木馬端端口,組成。其中客戶端是攻擊者遠程控制終端的程序,服務端程序則是木馬程序。 當木馬的服務端程序成功入侵到目標計算機系統上并運行以后,攻擊者就可以使用客戶端程序與服務端建立連接,并進一步控制被入侵的計算機系統。
連接方式
攻擊者利用木馬對目標主機(攻擊者)的控制,需要通過控制端和服務器端的連接來實現。常見的木馬連接方式有正向端口連接、反彈端口連接和“反彈+代理”連接三種方式。
正向端口連接:正向連接方式是由控制端主動連接服務器端,即由控制端向服務器端發出建立連接請求,從而建立雙方的連接。為了內網的安全,通常防火墻會對進入系統內部的數據過濾,允許內網連接外網,屏蔽外網向內網的連接請求。這種安全策略下,正向連接方式會被防火墻屏蔽,不能實現“控制器”和“服務器”的連通。面對防火墻的阻斷,為了保障連通,木馬技術又出現了新的連接方式,由木馬的“服務器”主動連接“控制器”,即端口反彈連接方式。
端口反彈連接:端口反彈連接方式是由“服務器”主動向“控制器”發出連接請求。這種方式可以有效的繞過防護墻,例如有名的中國木馬:灰鴿子。然而,反彈連接方式,要在配置“服務器”時,提前設置好“服務器”要連接的IP地址和端口號,也就是“控制器”所在電腦的Ip地址和等待連接的端口。一旦“控制器”所在電腦IP地址發生變化,“服務器”和“控制器”的連接就會失敗,因此,這種端口反彈連接方式的木馬想要種植成功,要求攻擊方的要有固定的IP地址和待連接端口。
“反彈+代理”連接:為了解決動態IP的問題,又出現了新的木馬連接技術,利用“反彈+代理”方式實現“控制器”和“服務器”的連接。代理的主要作用是保持并實時更新“控制器”的IP地址和端口號,如圖3,“服務器”在發起連接請求時,通過詢問代理服務器,獲得“控制器”的IP地址和端口號,然后與“控制器”建立連接。這里的代理服務器通常是已經被攻擊者控制的電腦。這種連接方式利用代理服務器,一方面解決了控制端IP動態變化的無法連接的問題,另一方面有效的隱藏了攻擊者的IP的地址,減小了攻擊者被發現的幾率。
傳播方式
網站掛馬:網站“掛馬”是計算機用戶感染木馬最常見的途徑之一,黑客通過在網站上“掛馬”使網頁瀏覽者感染“網頁木馬”。網絡惡意者利用瀏覽器或瀏覽器的外掛程序(目標通常是IE瀏覽器和ActiveX程序)的漏洞,在網頁中夾帶木馬程序,制作出惡意的木馬網頁,或者利用系統漏洞,通過構造出特殊代碼的網頁,發布到網站上;網絡用戶在瀏覽該網頁時,木馬程序、病毒、密碼盜取等惡意程序會隨網頁一并下載到用戶機器,并在后臺運行木馬程序,造成系統溢出并打開某個端口,被網絡惡意者連接控制整臺機器。可見網頁木馬的實質并不是木馬程序或病毒本身,而應該稱為網頁木馬“種植器”。
郵件附件:控制端將木馬程序偽裝后以附件的形式夾在郵件中發送出去,收信人只要打開附件系統就會感染木馬。
軟件下載:一些非正式的網站以提供軟件下載的名義,將木馬捆綁在軟件安裝程序上,程序下載后只要一運行,木馬就會自動安裝。
即時通訊軟件:例如通過QQ的“文件傳送”功能,發送一張名為“我的照片”的帶毒圖片,用戶在不知情的狀況下打開圖片就會感染木馬。
基本特征
隱蔽性:隱蔽性是木馬最主要的基本特性,是木馬這種攻擊手段得以生存和發揮作用的必備條件。木馬程序只有在攻擊目標系統中存在下來而不被發現,木馬才能發揮其強大的攻擊力。
自動運行性:木馬必須是自動啟動和運行的程序,采取的方法可能是嵌入在啟動配置文件或者注冊表中。
欺騙性:木馬常常將自己偽裝成一般的文件或系統和程序的ICON(例如win,dll,sys等),防止被用戶或安全軟件發現和查殺。
頑固性:當木馬被發現后,是否容易被清除代表了木馬的頑固性程度。很多QQ惡龍被發現后,盡管采取了不同措施仍然不能完全將其清除,一定條件下仍然能夠完成一些操作,這種木馬就具有很強的頑固性。
易植入性:木馬實現其控制或監視目的的前提是能滲透進入目標,所以特洛伊木馬必須具備神不知鬼不覺地進入目標計算機的能力。
類型分類
密碼發送型:密碼發送型木馬通過對目標機器的植入,能對目標主體所保存的密碼進行搜索,然后發送給攻擊者。該木馬對密碼的搜索一是通過對目標機器主體以文件形式保存的密碼進行;二是對Windows提供的密碼記憶功能進行。由于密碼發送型的木馬在制作上較為簡單,成為了木馬中較為流行的一種。
鍵盤記錄型:鍵盤記錄型木馬主要的目的是記錄目標計算機的鍵盤活動并將記錄存儲在文件中發送至目的地。這類木馬通常情況下是隨著系統的運行而啟動的,且對用戶鍵盤使用記錄分為在線和離線兩種方式。
遠程訪問型 :最廣泛的是遠程訪問型木馬,只需有人運行了服務端程序 ,如果客戶知道了服務端的IP地址,就可以實現遠程控制。
Dos攻擊型:Dos攻擊型木馬最突出的特征就是傳染性。它的攻擊性不是表現在對一臺目標機器的攻擊上,而是攻擊者能利用Dos攻擊來形成傳染攻擊,從而對網絡構成威脅。
代理型:代理型木馬是通過給被控制的肉雞種上代理木馬,讓其變成攻擊者發動攻擊的跳板。通過代理木馬,攻擊者可以在匿名的情況下使用 lnet、ICQ、IRC等程序 ,從而隱蔽自己的蹤跡。
FTP型和反彈端口型:FTP型木馬主要的目的是控制FTP主機,獲取管理員權限,竊取信息。反彈端口木馬則是利用反彈端口原理逃過防火墻攔截的木馬,如Hack、Huigezi。
多媒體型:多媒體型木馬的功能有截取屏幕,捕捉攝像頭數據等。木馬獲取多媒體信息后,實時的傳送給控制者,“情人2000”就是這種木馬。
木馬應用
木馬以高權限安裝或運行的方式與惡意控制器進行交互,以實現其目的。木馬程序會掃描網絡上的計算機,找到安裝木馬的任何用戶,然后進行控制。有些木馬利用老版本的Internet Explorer和Google Chrome Frame的安全漏洞,使用主機的計算機作為一個匿名代理有效地隱藏互聯網使用。木馬的第一代往往在主機的網頁瀏覽歷史留下痕跡,而木馬的后代可以更有效地“掩蓋”行蹤。Sub7幾個版本已廣泛流傳于美國和歐洲,成為這類木馬分布最廣泛的例子。
在德語國家,間諜軟件有時也被稱為govware。govware通常是用來從目標計算機攔截通信的木馬軟件。由于黑客僵尸網絡的普及和允許作者違反用戶隱私的廣告服務的可用性,木馬變得越來越普遍。據BitDefender2009年1~6月的一項調查顯示,“木馬型流氓軟件正在上升,占全球惡意軟件的83%。”而且,特洛伊木馬與植物病原線蟲有密切的關系,因為它們隨著蠕蟲的傳播而傳播。
防范措施
及時查殺
用戶通過專業的殺毒軟件或者下載一些專門的木馬查殺工具,定期查殺。用戶要及時更新殺毒軟件的查殺引擎和病毒庫,及時獲知新流行木馬的信息,掌握其預防和查殺方法。
及時檢測
查系統自啟動:系統自啟動的有三種方式:一是系統啟動配置文件,如ini系統配置文件和程序啟動組等。二是注冊表,木馬常常在系統注冊表的啟動項中增加鍵值,以實現其自動加載的目的。三是系統服務,木馬還會將自己偽裝成windows服務添加到系統中,有的還直接偽裝成系統正常的進程服務。
查系統開放端口:用戶可以通過一些命令程序查看電腦開放端口,如系統自帶的Netstat命令,FPORT程序等。還可以通過現在的安全防護軟件,這些軟件一般都集成了端口查看功能,如騰訊電腦管家,360安全衛士等。
查網絡通訊:有一些木馬是利用ICMP協議來與遠程控制端進行通訊的,可以通過監聽網絡通訊來發現。
提高安全意識
對于企業用戶,應加強網絡管理,關閉不必要的端口和應用。加強用戶安全意識教育,如不要執行任何來歷不明的軟件;不要輕易打開不熟悉的郵件;不要隨便下載軟件、視頻文件等。
參考資料 >
可氣復無奈 從《特洛伊》談木馬病毒的由來.新浪科技.2024-01-11
Unix Programmer's Manual November 3, 1971.UNIX程序員手冊.2024-01-17