摘要:定義了“特洛伊木馬”并闡述了其由來,實現了使用VC的Winsock控件編寫網絡客戶/服務模式程序,論述了“特洛伊木馬”實現原理和控制原理,分析了其主要特征,并就手動檢測和軟件查殺雙層防護“特洛伊木馬”方法做了探討,提出要維護用戶信息和網絡安全就必須重視“特洛伊木馬”的危害從而加強防護。
關鍵詞:機理;網絡安全;特洛伊木馬;端口
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)23-911-02
The Attack and Protection of TrojanHorse
WANG Fu-qiang1, CHEN Yan2, REN Zhi-kao1
(1.Qingdao University of Science and Technology, the College of Information Science and Technology, Qingdao 266061, China ;2.The 2nd Vocational Middle School of Baoding City of Hebei Province, Baoding 071000, China)
Abstract: Have defined TrojanHorse and have set forth whose reason, have come true using the VC Winsock control to compile and compose the network customer/ serving pattern procedure, the mechanism having discussed the TrojanHorse job, has analysed whose principal character , has moved and detecting and the software while you're at it checking the method weakening bilayer protecting damage must take TrojanHorse seriously as TrojanHorse method having made investigation and discussion , having suggested that need to defend the consumer information and the network safety reinforcing protection thereby.
Key words: Mechanism; Network Security; TrojanHorse; Port
1 引言
“特洛伊木馬”也稱trojanHorse,原指古希臘士兵藏在木馬內進入敵方城市從而占領敵方城市的故事。在Internet上,“特洛伊木馬”指一些程序設計人員(或居心不良的馬夫)在其可從網絡上下載(Download)的應用程序或游戲外掛或網頁中,包含了可以控制用戶的計算機系統或通過郵件盜取用戶信息的惡意程序,可能造成用戶系統被破壞、信息丟失甚至系統癱瘓。
“特洛伊木馬”的本質是一個程序,自動獲取計算機相關系統信息和安全信息的程序,隨計算機自動啟動而啟動,附在某一端口偵聽目標計算機。其實質只是一個通過端口進行通信的網絡客戶/服務程序。
2 實現原理與控制原理
網絡客戶/服務模式的原理是一臺主機提供服務(服務器),另一臺主機接受服務(客戶機)。作為服務器的主機一般會打開一個默認的端口并進行監聽(Listen), 如果有客戶機向服務器的這一端口提出連接請求(Connect Request), 服務器上的相應程序就會自動運行,來應答客戶機的請求,這個程序稱為守護進程。對于“特洛伊木馬”,被控制端是一臺服務器,控制端則是一臺客戶機,G_server.exe是守護進程, G_cliet.exe是客戶端應用程序。
2.1 實現原理
可以VC的Winsock控件來編寫網絡客戶/服務程序, 實現如下:
服務器端: G_Server.LocalPort=7626(冰河的默認端口,可修改);G_Server.Listen(等待連接)
客戶端:
G_Client.RemoteHost=ServerIP(設遠端地址為服務器地址)
G_Client.RemotePort=7626(設遠程端口為冰河的默認端口)
(在這里分配一個本地端口給G_Client,也可讓計算機自動分配)
G_Client.Connect(調用Winsock控件的連接方法)
一旦服務端接到客戶端的連接請求ConnectionRequest,就接受連接
Private Sub G_Server_ConnectionRequest(ByVal requestID As Long)
G_Server.Accept requestID
End Sub
客戶端用G_Client.SendData發送命令,而服務器在G_Server_DateArrive事件中接受并執行命令(幾乎所有的木馬功能都在這個事件處理程序中實現)
如果客戶斷開連接,則關閉連接并重新監聽端口
Private Sub G_Server_Close()
G_Server.Close(關閉連接)
G_Server.Listen (再次監聽)
End Sub
客戶端上傳一個命令,服務端解釋并執行命令。
2.2 控制原理
以用戶權限運行的木馬程序主要功能進行簡單的概述, 主要使用Windows API函數。
1)遠程監控(控制對方鼠標、鍵盤,并監視對方屏幕)
keybd_event模擬一個鍵盤動作;mouse_event模擬一次鼠標事件 ;mouse_event(dwFlags,dx,dy,cButtons,dwExtraInfo)dwFlags; MOUSEEVENTF_ABSOLUTE 指定鼠標坐標系統中的一個絕對位置 ……
2)記錄各種口令信息
keylog begin:將擊鍵記錄在一個文本文件里,同時還記錄執行輸入的窗口名
3)獲取系統信息
(a) 取得計算機名 GetComputerName ;(b) 更改計算機名 SetComputerName
(c) 當前用戶 GetUserName ;(d) 系統路徑
Set FileSystem0bject = CreateObject(\"Scripting。FileSystemObject\")(建立文件系統對象)
Set SystemDir = FileSystem0bject。getspecialfolder(1)(取系統目錄) ……
4)限制系統功能
(a) 遠程關機或重啟計算機,使用WinAPI中的如下函數可以實現:
ExitWindowsEx(UINT uFlags,DWORD dwReserved)
當uFlags=EWX_LOGOFF 中止進程,然后注銷
=EWX_SHUTDOWN 關掉系統但不關電源
=EWX_REBOOT 重新引導系統
=EWX_FORCE強迫中止沒有響應的進程
=EWX_POWERDOWN 關掉系統及關閉電源
(b) 讓對方掉線 RasHangUp
(c) 終止進程 ExitProcess
5)遠程文件操作 :刪除文件(File delete);拷貝文件(File copy);共享文件:Export list(列出當前共享的驅動器、目錄、權限及共享密碼)
6)注冊表操作:
在VB中設置Set RegEdit=CreateObject (\"WScript.Shell\"),開放以下的注冊表功能:
刪除鍵值:RegEdit.RegDelete RegKey
增加鍵值:RegEdit.Write RegKey,RegValue
獲取鍵值:RegEdit.RegRead (Value)
TrojanHorse控制某些端口或鏈接某個端口,如20端口,21端口和80端口……,TrojanHorse通過遠程控制、發送密碼、記錄鍵盤甚至發動Dos攻擊等對源機實施泄漏、盜取賬號和密碼等破壞行為,故要引起高度重視,有效預防。
3 危害與基本特征
“特洛伊木馬”程序一般分為服務器端程序和客戶端程序兩個部分,以尋找后門、竊取密碼為主。 “特洛伊木馬”通過跟蹤擊鍵輸入等方式,竊取密碼、信用卡號碼等機密資料,還可以對電腦進行跟蹤監視、控制、查看、修改資料等操作。
隱蔽性:“特洛伊木馬”隱藏在系統中,通過修改注冊表和ini文件依附在其他程序中,下一次啟動后仍能載入木馬程序(或者有把服務器端和正常程序通過exe-binder綁定程式完成入侵,甚至把自身的.exe文件和服務器端的圖片文件綁定)等等。
自動運行性:當系統啟動時即自動運行,潛入在相關系統啟動文件中如win.ini、system.ini、winstart.bat以及啟動組等。
欺騙性:“特洛伊木馬”借助系統中已有文件或常見文件名或擴展名,如“dll\\win\\sys\\explorer等字樣,仿制一些不易被人區別的文件名,甚者借用系統文件中已有的文件名,另行保存或者設置ZIP文件式圖標等等實現對機器和管理員的欺騙。
具備自動恢復功能:“特洛伊木馬”功能模塊不再是由單一的文件組成,而是具有多重備份,可相互恢復。
能自動打開特別的端口:“特洛伊木馬”的目的是為了獲取系統中有用的信息,一旦與遠端客戶通訊,“特洛伊木馬”就會記錄關鍵信息造成外泄。
功能的特殊性:“特洛伊木馬”具有搜索cache中的口令、設置口令、掃描目標機器人的IP地址、進行鍵盤記錄、遠程注冊表的操作、以及鎖定鼠標等功能特殊性。
如今為了防備被跟蹤追查,“特洛伊木馬”一般采用只有服務器端的“小”木馬:把系統關鍵信息如密碼等發到一個郵箱里,通過后續步驟完成對系統的控制,為此需要手動和軟件查殺雙層防護。
4 防護方法
1)軟件查殺:現在對病毒的查殺,習慣于軟件查殺,常用的反“特洛伊木馬”軟件有瑞星殺毒軟件、木馬克星、360安全衛士等它們對“特洛伊木馬”都有一定的防護功能和查殺功能。建議:在使用殺毒軟件查殺“特洛伊木馬”時,一要保持殺毒軟件的及時升級和更新,二要在斷開網絡在安全模式下完成查殺。
2)手動檢測:根據“特洛伊木馬”的特征,在注冊表,文件名和端口以及進程等方面可以進行手動檢測:
查找“特洛伊木馬”特定文件 : “特洛伊木馬”的一個特征文件是kernl32.exe,另一個是sysexlpr.exe,刪除了這兩個文件,就等于關閉了“特洛伊木馬”。
檢查注冊表 :“特洛伊木馬”可以通過注冊表啟動(大部分的“特洛伊木馬”都是通過注冊表啟動的),故通過檢查注冊表搜索注冊表的蛛絲馬跡。
端口掃描與查看連接: 掃描程序嘗試連接某個端口或某個連接, 如果成功, 則說明端口(連接)開放;如果失敗或超過某個特定的時間(超時), 則說明端口(連接)關閉。
Windows的“系統文件檢查器”:對于驅動程序/動態鏈接庫木馬,通過Windows的“系統文件檢查器”,“開始”→“程序”→“附件”→“系統工具”→“系統信息”→“工具”→“運行”→“系統文件檢查器”檢測操作系統文件的完整性。如果這些文件損壞,檢查器將其還原,甚至完成從安裝盤中解壓縮已壓縮的文件(如驅動程序等)。如果驅動程序或動態鏈接庫在沒有升級的情況下被改動了,就有可能是“特洛伊木馬” (或者損壞了),提取改動過的文件可以保證你的系統安全和穩定。
任務管理器:通過查看空閑下性能狀態:CPU和內存的使用率以及進程的開放量,檢測是否多占用或超運作,完成檢測。
5 結束語
隨著信息技術的發展,“特洛伊木馬”的變種也在日新月異,對系統造成的危害也在進一步加大,需要防患于未然。但只要在使用系統過程中,訪問安全網站,對不信任的ActiveX控件不做連接嘗試,并升級殺毒軟件,使用正確的軟件查殺,并定期進行手動檢測,相信“特洛伊木馬”必將無所遁形,用戶信息的安全必將得到維護,系統的穩定性也必將得到保證。
參考文獻:
[1] 閆峰,劉淑芬.基于逃避行為檢測的特洛伊木馬技術研究[J].吉林大學學報(信息科學版),2007,25(6):641-645.
[2] 匡立人,楊宇.“木馬”原理及其VB簡單實現分析[J].現代商貿工業,2007,(12):259-260.
[3] 張新宇,卿斯漢,馬恒太,等.特洛伊木馬隱藏技術研究[J].通信學報,2004,25(7):153-159.
[4] 林小進,錢江.特洛伊木馬隱藏技術研究[J].微計算機信息,2007,(33):59-60.
[5] 張穎卓.特洛伊木馬分析與防范[J].現代計算機(下半月版),2007,(11):79-80.
[6] 孟蕾.特洛伊木馬隱蔽性研究[J].電腦學習,2007,(5):4-5.
[7] 吳小博.木馬的實現原理、分類和實例分析[J].網絡安全技術與應用,2007,(10):56-57.