廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 7856 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
becy125
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x98
分享: 轉寄此文章 Facebook Plurk Twitter 版主評分 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[資訊教學] 特洛伊木馬程式之原理
來源: http://www.ns-bbs.com/te...sp?id=189

一、 引言

 

特洛伊木馬是 Trojan Horse 的中譯,是借自"木馬屠城記"中那只木馬的名稱。古希臘有大軍圍攻特洛伊城,逾年無法攻下。有人獻計製造一隻高二丈的大木馬假裝作戰馬神,攻擊數天後仍然無功,遂留下木馬拔營而去。城中得到解圍的消息,及得到"木馬"這個奇異的戰利品,全城飲酒狂歡。到午夜時份,全城軍民盡入夢鄉,匿於木馬中的將士開暗門垂繩而下,開啟城門及四處縱火,城外伏兵湧入,焚屠特洛伊城。後世稱這只木馬為"特洛伊木馬",現今電腦術語借用其名,意思是"一經進入,後患無窮"。 特洛伊木馬原則上它和 Laplink 、 PCanywhere 等程式一樣,只是一種遠端管理工具。而且本身不帶傷害性,也沒有感染力,所以不能稱之為病毒(也有人稱之為第二代病毒);但卻常常被視之為病毒。原因是如果有人不當的使用,破壞力可以比病毒更強。

二、木馬攻擊原理

 

特洛伊木馬是一個程式,它駐留在目標電腦裡,可以隨電腦自動啟動並在某一連接進行偵聽,在對接收的資料識別後,對目標電腦執行特定的****作。 木馬,其實只是一個使用連接進行通訊的網路客戶/伺服器程式。

 

基本概念:網路客戶/伺服器模式的原理是一台主機提供伺服器(伺服端),另一台主機接受伺服器(客戶端)。作為伺服端的主機一般會開啟一個預設的連接埠並進行監聽(Listen),如果有客戶端向伺服端的這一連接埠提出連接請求(Connect Request),伺服端上的相對應程式就會自動執行,來回覆客戶端的請求。對於特洛伊木馬,被控制端就成為一台伺服器。

三、特洛伊木馬隱身方法

 

木馬程式會想盡一切辦法隱藏自己,主要途徑有:在工作程序中隱形:將程式設為「系統伺服器」可以偽裝自己。當然它也會悄無聲息地啟動,木馬會在每次使用者啟動時自動載入伺服器端,Windows 系統啟動時自動載入應用程式的方法,「木馬」都會用上,如:win.ini、system.ini、註冊表等等都是「木馬」藏身的好地方。

 

在 win.ini 檔案中,在[WINDOWS]下面,「run=」和「load=」是可能載入「木馬」程式的途徑,一般情況下,它們的等號後面什麼都沒有,如果發現後面跟有路徑與檔案名稱不是您熟悉的啟動檔案,電腦就可能中「木馬」了。當然也得看清楚,因為好多「木馬」,如「AOL Trojan木馬」,它把自身偽裝成 command.exe 檔案,如果不注意可能不會發現它不是真正的系統啟動檔案。

 

在 system.ini 檔案中,在[BOOT]下面有個「shell=檔案名稱」。正確的檔案名稱應該是「explorer.exe」,如果不是「explorer.exe」,而是「shell= explorer.exe 程式名」,那麼後面跟著的那個程式就是「木馬」程式,就是說已經中「木馬」了。

 

在註冊表中的情況最複雜,使用 regedit 指令開啟註冊表編輯器,在點擊至:「HKEY-LOCAL-MACHINE \Software \Microsoft \Windows \Current Version \Run」目錄下,檢視鍵值中有沒有自己不熟悉的自動啟動檔案,副檔名為 EXE,這裡切記:有的「木馬」程式產生的檔案很像系統自身檔案,想使用偽裝矇混過關,如「Acid Battery v1.0木馬」,它將註冊表「HKEY-LOCAL-MACHINE \SOFTWARE \Microsoft\Windows\CurrentVersion\Run」下的 Explorer 鍵值改為 Explorer =「C:\WINDOWS\expiorer.exe」,「木馬」程式與真正的 Explorer 之間只有「i」與「l」的差別。當然在註冊表中還有很多地方都可以隱藏「木馬」程式,如:

 

「HKEY -CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run」、「HKEY-USERS \Software\Microsoft\Windows\CurrentVersion\Run」的目錄下都有可能,最好的辦法就是在「HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\ CurrentVersion\Run」 下找到「木馬」程式的檔案名稱,再在整個註冊表中搜尋即可。

 

目前,除了上面介紹的隱身技術外,更新、更隱蔽的方法已經出現,那就是-驅動程式及動態連結技術。 驅動程式及動態連結技術和一般的木馬不同,它基本上擺脫了原有的木馬模式-監聽連接,而採用替代系統功能的方法(覆寫驅動程式或動態連結)。

 

這樣做的結果是:系統中沒有增加新的檔案(所以不能用掃瞄的方法搜尋)、不需要間@在 system.ini 檔案中,在[BOOT]下面有個「shell=檔案名稱」。正確的檔案名稱應該是「explorer.exe」,如果不是「explorer.exe」,而是「shell= explorer.exe 程式名」,那麼後面跟著的那個程式就是「木馬」程式,就是說已經中「木馬」了。

目前,除了上面介紹的隱身技術外,更新、更隱蔽的方法已經出現,那就是-驅動程式及動態連結技術。 驅動程式及動態連結技術和一般的木馬不同,它基本上擺脫了原有的木馬模式-監聽連接,而採用替代系統功能的方法(覆寫驅動程式或動態連結)。

 

這樣做的結果是:系統中沒有增加新的檔案(所以不能用掃瞄的方法搜尋)、不需要開啟新的連接(所以不能用連接監視的方法搜尋)、沒有新的程序(所以使用程序檢視的方法發現不了它,也不能用 kill 程序的方法終止它的執行)。在正常執行時木馬幾乎沒有任何的症狀,而一旦木馬的控制端向被控端發出特定的訊息後,隱藏的程式就立即開始運作。

 

四、 特洛伊木馬防禦原理

 

知道了木馬的攻擊原理和隱身方法,我們就可以採取措施進行防禦了。

連接埠掃瞄

 

連接埠掃瞄是檢查遠端機器有無木馬的最好辦法,連接埠掃瞄的原理非常簡單,掃瞄程式嘗試連接某個連接埠,如果成功,則說明連接埠開放,如果失敗或超過某個特定的時間(逾時),則說明連接埠關閉。但對於驅動程式/動態連結木馬,掃瞄連接是不起作用的。

 

檢視連接

 

檢視連接埠和連接掃瞄的原理基本相同,不過是在本地電腦上使用 netstat -a 檢視所有的 TCP/UDP 連接,檢視連接要比連接埠掃瞄快,但同樣是無法查出驅動程式/動態連結木馬,而且僅能在本地電腦使用。

 

檢查註冊表

 

上面在討論木馬的啟動方式時已經提到,木馬可以使用註冊表啟動(現在大部分的木馬都是使用註冊表啟動的,至少也把註冊表作為一個自我保護的方式),那麼,我們同樣可以使用檢查註冊表來發現木馬在註冊表裡留下的痕跡。

 

尋找檔案

 

尋找木馬特定的檔案也是一個常用的方法,木馬的一個特徵檔案是 kernl32.exe,另一個是 sysexlpr.exe,只要刪除了這兩個檔案,木馬就已經不起作用了。


[ 此文章被becy125在2006-10-24 17:10重新編輯 ]

此文章被評分,最近評分記錄
財富:50 (by upside) | 理由: 感謝您的參與 讓本板區能更加豐富




獻花 x1 回到頂端 [樓 主] From:局域網對方和您在同一內部網 | Posted:2006-10-24 17:03 |
sang 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x49 鮮花 x4916
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

shell= explorer.exe 程式名,這像是強制出現很多畫面型的病毒都是如此的.,因為會一直用explorer.exe 來開啟病毒程式,或是連結 xxx.dll之類的寄生程式.


獻花 x0 回到頂端 [1 樓] From:台灣數位聯合 | Posted:2006-10-24 20:21 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.024648 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言