2007年10月30日星期二

特洛伊木馬傳播方式及其危害

英文叫做“Trojan house”,其名稱取自希臘神話的特洛伊木馬記。 它是一種基于遠程控制的黑客工具,具有隱蔽性和非授權性的特點。 所謂隱蔽性是指木馬的設計者為了防止木馬被發現,會采用多種手段隱藏木馬,這樣服務端即使發現感染了木馬,由于不能確定其具體位置,往往只能望“馬”興 歎。 所謂非授權性是指一旦控制端與服務端連接後,控制端將享有服務端的大部分操作權限,包括修改文件,修改注冊表,控制鼠標,鍵盤等等,而這些權力並不是服務 端賦予的,而是通過木馬程序竊取的。
從木馬的發展來看,基本上可以分為兩個階段。 最初網絡還處于以UNIX平台為主的時期,木馬就産生了,當時的木馬程序的功能相對簡單,往往是將一段程序嵌入到系統文件中,用跳轉指令來執行一些木馬的 功能,在這個時期木馬的設計者和使用者大都是些技術人員,必須具備相當的網絡和編程知識。 而後隨著WINDOWS平台的日益普及,一些基于圖形操作的木馬程序出現了,用戶界面的改善,使使用者不用懂太多的專業知識就可以熟練的操作木馬,相對的 木馬入侵事件也頻繁出現,而且由于這個時期木馬的功能已日趨完善,因此對服務端的破壞也更大了。 所以所木馬發展到今天,已經無所不用其極,一旦被木馬控制,你的電腦將毫無秘密可言。

一個完整的木馬系統由硬件部分,軟件部分和具體連接部分組成------
(1)硬件部分:建立木馬連接所必須的硬件實體。 控制端:對服務端進行遠程控制的一方。 服務端:被控制端遠程控制的一方。 INTERNET:控制端對服務端進行遠程控制,數據傳輸的網絡載體。
(2)軟件部分:實現遠程控制所必須的軟件程序。 控制端程序:控制端用以遠程控制服務端的程序。 木馬程序:潛入服務端內部,獲取其操作權限的程序。 木馬配置程序:設置木馬程序的端口號,觸發條件,木馬名稱等,使其在服務端藏得更隱蔽的程序。
(3)具體連接部分: 通過INTERNET在服務端和控制端之間建立一條木馬通道所必須的元素。 控制端IP,服務端IP:即控制端,服務端的網絡地址,也是木馬進行數據傳輸的目的地。 控制端端口,木馬端口:即控制端,服務端的數據入口,通過這個入口,數據可直達控制端程序或木馬 程序。

用木馬這種黑客工具進行網絡入侵,從過程上看大致可分為六步,下面就按這六步來詳細闡述木馬的攻擊原理。

一.配置木馬
一般來說一個設計成熟的木馬都有木馬配置程序,從具體的配置內容看,主要是為了實現以下兩方面功能:
(1)木馬僞裝:木馬配置程序為了在服務端盡可能的好的隱藏木馬,會采用多種僞裝手段,如修改圖標 ,捆綁文件,定制端口,自我銷毀等,我們將在“傳播木馬”這一節中詳細介紹。
(2)信息反饋:木馬配置程序將就信息反饋的方式或地址進行設置,如設置信息反饋的郵件地址,IRC號 ,ICO號等等,具體的我們將在“信息反饋”這一節中詳細介紹。

二.傳播木馬
(1)傳播方式:
木馬的傳播方式主要有兩種:一種是通過E-MAIL,控制端將木馬程序以附件的形式夾在郵件中發送出 去, 收信人只要打開附件系統就會感染木馬;另一種是軟件下載,一些非正規的網站以提供軟件下載為 名義, 將木馬捆綁在軟件安裝程序上,下載後,只要一運行這些程序,木馬就會自動安裝。
(2)僞裝方式:
鑒于木馬的危害性,很多人對木馬知識還是有一定了解的,這對木馬的傳播起了一定的抑制作用,這 是木馬設計者所不願見到的,因此他們開發了多種功能來僞裝木馬,以達到降低用戶警覺,欺騙用戶的目的。
(a)修改圖標
當你在E-MAIL的附件中看到這個圖標時,是否會認為這是個文本文件呢?但是我不得不告 訴你,這也有可能是個木馬程序,現在 已經有木馬可以將木馬服務端程序的圖標改成HTML,TXT, ZIP等各種文件的圖標,這有相當大的迷 惑性,但是目前提供這種功能的木馬還不多見,並且這種 僞裝也不是無懈可擊的,所以不必整天提 心吊膽,疑神疑鬼的。
(b)捆綁文件
這種僞裝手段是將木馬捆綁到一個安裝程序上,當安裝程序運行時,木馬在用戶毫無察覺的 情況下 ,偷偷的進入了系統。至于被捆綁的文件一般是可執行文件(即EXE,COM一類的文件)。
(c)出錯顯示
有一定木馬知識的人都知道,如果打開一個文件,沒有任何反應,這很可能就是個木馬程序, 木馬的 設計者也意識到了這個缺陷,所以已經有木馬提供了一個叫做出錯顯示的功能。當服務 端用戶打開木 馬程序時,會彈出一個如下圖所示的錯誤提示框(這當然是假的),錯誤內容可自由 定義,大多會定制成 一些諸如“文件已破壞,無法打開的!”之類的信息,當服務端用戶信以 為真時,木馬卻悄悄侵入了 系統。
(d)定制端口
很多老式的木馬端口都是固定的,這給判斷是否感染了木馬帶來了方便,只要查一下特定的 端口就 知道感染了什麽木馬,所以現在很多新式的木馬都加入了定制端口的功能,控制端用戶可 以在1024---65535之間任選一個端口作為木馬端口(一般不選1024以下的端口),這樣就給判斷 所感染木馬類型帶 來了麻煩。
(e)自我銷毀
這項功能是為了彌補木馬的一個缺陷。我們知道當服務端用戶打開含有木馬的文件後,木馬 會將自己拷貝到WINDOWS的系統文件夾中(C:\WINDOWS或C:\WINDOWS\SYSTEM目錄下),一般來說 原木馬文件 和系統文件夾中的木馬文件的大小是一樣的(捆綁文件的木馬除外),那麽中了木馬 的朋友只要在近來 收到的信件和下載的軟件中找到原木馬文件,然後根據原木馬的大小去系統 文件夾找相同大小的文件, 判斷一下哪個是木馬就行了。而木馬的自我銷毀功能是指安裝完木 馬後,原木馬文件將自動銷毀,這 樣服務端用戶就很難找到木馬的來源,在沒有查殺木馬的工 具幫助下,就很難刪除木馬了。
(f)木馬更名
安裝到系統文件夾中的木馬的文件名一般是固定的,那麽只要根據一些查殺木馬的文章,按 圖索骥在系統文件夾查找特定的文件,就可以斷定中了什麽木馬。所以現在有很多木馬都允許控 制端用戶自由定制安裝後的木馬文件名,這樣很難判斷所感染的木馬類型了。

三.運行木馬

服務端用戶運行木馬或捆綁木馬的程序後,木馬就會自動進行安裝。首先將自身拷貝到WINDOWS的 系統文件夾中(C:\WINDOWS或C:\WINDOWS\SYSTEM目錄下),然後在注冊表,啓動組,非啓動組中設置好木馬 的觸發條件 ,這樣木馬的安裝就完成了。安裝後就可以啓動木馬了,具體過程見下圖:

(1)由觸發條件激活木馬

觸發條件是指啓動木馬的條件,大致出現在下面八個地方:
1.注冊表:打開HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\下的五個以Run 和RunServices主鍵,在其中尋找可能是啓動木馬的鍵值。
2.WIN.INI:C:\WINDOWS目錄下有一個配置文件win.ini,用文本方式打開,在[windows]字段中有啓動 命令 load=和run=,在一般情況下是空白的,如果有啓動程序,可能是木馬。

3.SYSTEM.INI:C:\WINDOWS目錄下有個配置文件system.ini,用文本方式打開,在[386Enh],[mic], [drivers32]中有命令行,在其中尋找木馬的啓動命令。
4.Autoexec.bat和Config.sys:在C盤根目錄下的這兩個文件也可以啓動木馬。但這種加載方式一般都 需要控制端用戶與服務端建立連接後,將已添加木馬啓動命令的同名 文件上傳 到服務端覆蓋這兩個文件才行。
5.*.INI:即應用程序的啓動配置文件,控制端利用這些文件能啓動程序的特點,將制作好的帶有木馬 啓動命令的同名文件上傳到服務端覆蓋這同名文件,這樣就可以達到啓動木馬的目的了。
6.注冊表:打開HKEY_CLASSES_ROOT\文件類型\shell\open\command主鍵,查看其鍵值。舉個例子,國産 木馬“冰河”就是修改HKEY_CLASSES_ROOT\txtfile\shell\open\command下的鍵值,將“C :\WINDOWS \NOTEPAD.EXE %1”該為“C:\WINDOWS\SYSTEM\SYXXXPLR.EXE %1”,這時你雙 擊一個TXT文件 後,原本應用NOTEPAD打開文件的,現在卻變成啓動木馬程序了。還要說明 的是不光是TXT文件 ,通過修改HTML,EXE,ZIP等文件的啓動命令的鍵值都可以啓動木馬 ,不同之處只在于“文件類型”這個主鍵的差別,TXT是txtfile,ZIP是WINZIP,大家可以 試著去找一下。
7.捆綁文件:實現這種觸發條件首先要控制端和服務端已通過木馬建立連接,然後控制端用戶用工具 軟件將木馬文件和某一應用程序捆綁在一起,然後上傳到服務端覆蓋原文件,這樣即使 木馬被刪 除了,只要運行捆綁了木馬的應用程序,木馬又會被安裝上去了。
8.啓動菜單:在“開始---程序---啓動”選項下也可能有木馬的觸發條件。

(2)木馬運行過程

木馬被激活後,進入內存,並開啓事先定義的木馬端口,准備與控制端建立連接。這時服務端用 戶可以在MS-DOS方式下,鍵入NETSTAT -AN查看端口狀態,一般個人電腦在脫機狀態下是不會有端口 開放的,如果有端口開放,你就要注意是否感染木馬了。下面是電腦感染木馬後,用NETSTAT命令查 看端口的兩個實例: 其中①是服務端與控制端建立連接時的顯示狀態,②是服務端與控制端還未建立連接時的顯示狀態。

在上網過程中要下載軟件,發送信件,網上聊天等必然打開一些端口,下面是一些常用的端口:
(1)1---1024之間的端口:這些端口叫保留端口,是專給一些對外通訊的程序用的,如FTP使用21, SMTP使用25,POP3使用110等。只有很少木馬會用保留端口作為木馬端口 的。
(2)1025以上的連續端口:在上網浏覽網站時,浏覽器會打開多個連續的端口下載文字,圖片到本地 硬盤上,這些端口都是1025以上的連續端口。
(3)4000端口:這是OICQ的通訊端口。
(4)6667端口:這是IRC的通訊端口。 除上述的端口基本可以排除在外,如發現還有其它端口打開,尤其是數值比較大的端口,那就要懷疑 是否感染了木馬,當然如果木馬有定制端口的功能,那任何端口都有可能是木馬端口。

四.信息泄露:

一般來說,設計成熟的木馬都有一個信息反饋機制。所謂信息反饋機制是指木馬成功安裝後會收集 一些服務端的軟硬件信息,並通過E-MAIL,IRC或ICO的方式告知控制端用戶。

五.建立連接:

一個木馬連接的建立首先必須滿足兩個條件:一是 服務端已安裝了木馬程序;二是控制端,服務端都要在線 。在此基礎上控制端可以通過木馬端口與服 務端建立連接。A 機為控制端,B機為服務端,對于A機來說要與B機建立連接必須知道B機的木馬端口和IP地 址,由于木馬端口是A機事先設定的,為已知項,所以最重要的是如何獲得B機的IP地址。獲得B機的IP 地址的方法主要有兩種:信息反饋和IP掃描。對于前一種已在上一節中已經介紹過了,不再贅述,我們 重點來介紹IP掃描,因為B機裝有木馬程序,所以它的木馬端口7626是處于開放狀態的,所以現在A機只 要掃描IP地址段中7626端口開放的主機就行了,例如圖中B機的IP地址是202.102.47.56,當A機掃描到 這個IP時發現它的7626端口是開放的,那麽這個IP就會被添加到列表中,這時A機就可以通過木馬的控 制端程序向B機發出連接信號,B機中的木馬程序收到信號後立即作出響應,當A機收到響應的信號後, 開啓一個隨即端口1031與B機的木馬端口7626建立連接,到這時一個木馬連接才算真正建立。值得一提 的要掃描整個IP地址段顯然費時費力,一般來說控制端都是先通過信息反饋獲得服務端的IP地址,由于 撥號上網的IP是動態的,即用戶每次上網的IP都是不同的,但是這個IP是在一定範圍內變動的,如圖中 B機的IP是202.102.47.56,那麽B機上網IP的變動範圍是在202.102.000.000---202.102.255.255,所以 每次控制端只要搜索這個IP地址段就可以找到B機了。

六.遠程控制:

木馬連接建立後,控制端端口和木馬端口之間將會出現一條通道.控制端上的控制端程序可藉這條通道與服務端上的木馬程序取得聯系,並通過木馬程序對服務端進行遠 程控制。下面我們就介紹一下控制端具體能享有哪些控制權限,這遠比你想象的要大。
(1)竊取密碼:一切以明文的形式,*形式或緩存在CACHE中的密碼都能被木馬偵測到,此外很多木馬還 提供有擊鍵記錄功能,它將會記錄服務端每次敲擊鍵盤的動作,所以一旦有木馬入侵, 密碼將很容易被竊取。
(2)文件操作:控制端可藉由遠程控制對服務端上的文件進行刪除,新建,修改,上傳,下載,運行,更改屬 性等一系列操作,基本涵蓋了WINDOWS平台上所有的文件操作功能。
(3)修改注冊表:控制端可任意修改服務端注冊表,包括刪除,新建或修改主鍵,子鍵,鍵值。有了這 項功能控制端就可以禁止服務端軟驅,光驅的使用,鎖住服務端的注冊表,將服務端 上木馬的觸發條件設置得更隱蔽的一系列高級操作。
(4)系統操作:這項內容包括重啓或關閉服務端操作系統,斷開服務端網絡連接,控制服務端的鼠標, 鍵盤,監視服務端桌面操作,查看服務端進程等,控制端甚至可以隨時給服務端發送信息.

沒有留言: