- UID
- 2
- 帖子
- 8351
- 積分
- 13740
- 威望
- 30
- 金錢
- 527
- 貢獻
- 694
- 魅力
- 2041
- 閱讀權限
- 255
- 性別
- 男
- 在線時間
- 2106 小時
- 註冊時間
- 2005-10-4
- 最後登錄
- 2024-11-9
|
1#
發表於 2007-7-5 17:11
| 只看該作者
特洛伊木馬程式原理
作者: wen 日期: 2007-7-5 17:11 閱讀: 1171 人
打印
收藏
大 中
小
1. 特洛伊木馬程式原理
一、 引言
特洛伊木馬是 Trojan Horse 的中譯,是借自"木馬屠城記"中那只木馬的名稱。古希臘有大軍圍攻特洛伊城,逾年無法攻下。 有人獻計製造一隻高二丈的大木馬假裝作戰馬神,攻擊數天後仍然無功,遂留下木馬拔營而去。城中得到解圍的消息,及得到"木馬"這個奇異的戰利品,全城飲酒狂歡。 到午夜時份,全城軍民盡入夢鄉,匿於木馬中的將士開暗門垂繩而下,開啟城門及四處縱火,城外伏兵湧入,焚屠特洛伊城。後世稱這只木馬為"特洛伊木馬",現今電腦術語借用其名,意思是"一經進入,後患無窮"。 特洛伊木馬原則上它和Laplink 、 PCanywhere 等程式一樣,只是一種遠端管理工具。 而且本身不帶傷害性,也沒有感染力,所以不能稱之為病毒(也有人稱之為第二代病毒);但卻常常被視之為病毒。原因是如果有人不當的使用,破壞力可以比病毒更強。
二、木馬攻擊原理
特洛伊木馬是一個程式,它駐留在目標電腦裡,可以隨電腦自動啟動並在某一連接進行偵聽,在對接收的資料識別後,對目標電腦執行特定的****作。 木馬,其實只是一個使用連接進行通訊的網路客戶/伺服器程式。
基本概念:網路客戶/伺服器模式的原理是一台主機提供伺服器(伺服端),另一台主機接受伺服器(客戶端)。 作為伺服端的主機一般會開啟一個預設的連接埠並進行監聽(Listen),如果有客戶端向伺服端的這一連接埠提出連接請求(Connect Request),伺服端上的相對應程式就會自動執行,來回覆客戶端的請求。對於特洛伊木馬,被控制端就成為一台伺服器。
三、特洛伊木馬隱身方法
木馬程式會想盡一切辦法隱藏自己,主要途徑有:在工作程序中隱形:將程式設為「系統伺服器」可以偽裝自己。 當然它也會悄無聲息地啟動,木馬會在每次使用者啟動時自動載入伺服器端,Windows系統啟動時自動載入應用程式的方法,「木馬」都會用上,如:win.ini、system.ini、註冊表等等都是「木馬」藏身的好地方。
在win.ini檔案中,在[WINDOWS]下面,「run=」和「load=」是可能載入「木馬」程式的途徑,一般情況下,它們的等號後面什麼都沒有,如果發現後面跟有路徑與檔案名稱不是您熟悉的啟動檔案,電腦就可能中「木馬」了。當然也得看清楚,因為好多「木馬」,如「AOL Trojan木馬」,它把自身偽裝成command.exe檔案,如果不注意可能不會發現它不是真正的系統啟動檔案。
MLaplink 、 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 程式名」,那麼後面跟著的那個程式就是「木馬」程式,就是說已經中「木馬」了。
在註冊表中的情況最複雜,使用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」
下找到「木馬」程式的檔案名稱,再在整個註冊表中搜尋即可。
目前,除了上面介紹的隱身技術外,更新、更隱蔽的方法已經出現,那就是-驅動程式及動態連結技術。 驅動程式及動態連結技術和一般的木馬不同,它基本上擺脫了原有的木馬模式-監聽連接,而採用替代系統功能的方法(覆寫驅動程式或動態連結)。 這樣做的結果是:系統中沒有增加新的檔案(所以不能用掃瞄的方法搜尋)、不需要開啟新的連接(所以不能用連接監視的方法搜尋)、沒有新的程序(所以使用程序檢視的方法發現不了它,也不能用kill程序的方法終止它的執行)。 在正常執行時木馬幾乎沒有任何的症狀,而一旦木馬的控制端向被控端發出特定的訊息後,隱藏的程式就立即開始運作。
四、 特洛伊木馬防禦原理
知道了木馬的攻擊原理和隱身方法,我們就可以採取措施進行防禦了。
1.連接埠掃瞄
連接埠掃瞄是檢查遠端機器有無木馬的最好辦法,連接埠掃瞄的原理非常簡單,掃瞄程式嘗試連接某個連接埠,如果成功,則說明連接埠開放,如果失敗或超過某個特定的時間(逾時),則說明連接埠關閉。但對於驅動程式/動態連結木馬,掃瞄連接是不起作用的。
2.檢視連接
檢視連接埠和連接掃瞄的原理基本相同,不過是在本地電腦上使用netstat -a檢視所有的TCP/UDP連接,檢視連接要比連接埠掃瞄快,但同樣是無法查出驅動程式/動態連結木馬,而且僅能在本地電腦使用。
3.檢查註冊表
上面在討論木馬的啟動方式時已經提到,木馬可以使用註冊表啟動(現在大部分的木馬都是使用註冊表啟動的,至少也把註冊表作為一個自我保護的方式),那麼,我們同樣可以使用檢查註冊表來發現木馬在註冊表裡留下的痕跡。
4.尋找檔案
尋找木馬特定的檔案也是一個常用的方法,木馬的一個特徵檔案是kernl32.exe,另一個是sysexlpr.exe,只要刪除了這兩個檔案,木馬就已經不起作用了。
2. 冰河木馬所包含的二支程式:
G_Server.exe伺服端程式。
G_Client.exe客戶漂啟新的連接(所以不能用連接監視的方法搜尋)、沒有新的程序(所以使用程序檢視的方法發現不了它,也不能用kill程序的方法終止它的執行)。 在正常執行時木馬幾乎沒有任何的症狀,而一旦木馬的控制端向被控端發出特定的訊息後,隱藏的程式就立即開始運作。
四、 特洛伊木馬防禦原理
知道了木馬的攻擊原理和隱身方法,我們就可以採取措施進行防禦了。
1.連接埠掃瞄
連接埠掃瞄是檢查遠端機器有無木馬的最好辦法,連接埠掃瞄的原理非常簡單,掃瞄程式嘗試連接某個連接埠,如果成功,則說明連接埠開放,如果失敗或超過某個特定的時間(逾時),則說明連接埠關閉。但對於驅動程式/動態連結木馬,掃瞄連接是不起作用的。
2.檢視連接
檢視連接埠和連接掃瞄的原理基本相同,不過是在本地電腦上使用netstat -a檢視所有的TCP/UDP連接,檢視連接要比連接埠掃瞄快,但同樣是無法查出驅動程式/動態連結木馬,而且僅能在本地電腦使用。
3.檢查註冊表
上面在討論木馬的啟動方式時已經提到,木馬可以使用註冊表啟動(現在大部分的木馬都是使用註冊表啟動的,至少也把註冊表作為一個自我保護的方式),那麼,我們同樣可以使用檢查註冊表來發現木馬在註冊表裡留下的痕跡。
4.尋找檔案
尋找木馬特定的檔案也是一個常用的方法,木馬的一個特徵檔案是kernl32.exe,另一個是sysexlpr.exe,只要刪除了這兩個檔案,木馬就已經不起作用了。
2. 冰河木馬所包含的二支程式:
G_Server.exe伺服端程式。
G_Client.exe客戶端程式。
2002年元旦,大陸推出了冰河8.0正式版。作者聲明本軟體主要用途是配合網管進行遠程監控,凡使用本軟件惡意入侵他人電腦或網路者,後果自行負責。我們將伺服端程式植入210.x.x.x電腦內,利用168.192.0.2電腦執行客戶端程式呼叫。 |
2005.12.04不預期遇見什麼、才可能什麼都能遇見。
如果你是會員,有任何使用上的問題,請發短訊給我(wen)
如果你是訪客的話,註冊之後可以得到完整的瀏覽權限
|
|