對木馬程式應有的認識
一:何為木馬
“木馬”程式是目前比較流行的病毒檔案,與一般的病毒不同,它不會自我繁殖,也並不“刻意”地去感染其他檔案,它通過將自身偽裝吸引用戶下載執行,向施種木馬者提供打開被種者電腦的門戶,使施種者可以任意毀壞、竊取被種者的檔案,甚至遠端*控被種者的電腦。“木馬”與電腦網路中常常要用到的遠端控制軟體有些相似,但由於遠端控制軟體是“善意”的控制,因此通常不具有隱蔽性;“木馬”則完全相反,木馬要達到的是“偷竊”性的遠端控制,如果沒有很強的隱蔽性的話,那就是“毫無價值”的。
一個完整的“木馬”套裝程式含了兩部分:“服務器”和“控制器”。植入被種者電腦的是“服務器”部分,而所謂的“駭客”正是利用“控制器”進入執行了“服務器”的電腦。執行了木馬程式的“服務器”程式
二:木馬的功能
“木馬”的全稱叫做特洛伊木馬(Trojan horse),來源於希臘故事:特洛伊木馬,傳說中的中空的木馬。據說希臘人藏身在木馬內進入了特洛伊城,後來為希臘軍隊打開了城門。在電腦領域裏面,又被解釋為非法命令,病毒一套隱藏在合法程式中的命令,指示電腦進行不合法的運作。換句話說就是指採用在不知不覺方法潛入到對方內部實施某種破壞(盜竊)行為。木馬程式的本質就是一個遠端控制軟體:遠程控制軟體是在遠方機器知道,允許的情況下,對遠方機器進行遠端控制的軟體。其結構是一個標準的C/S(client/server)程式。大多數的木馬的功能都是進行遠端控制,呵呵,這麼說大家應該比較瞭解木馬的作用了吧?
三:木馬的特性
1.隱蔽性。
很多人的對木馬和遠程控制軟體有點分不清,實際上他們兩者的最大區別就是在於其隱蔽性。木馬類的軟體的server端在執行的時候應用各種手段隱藏自己,例如,修改註冊表和ini檔案以便機器在下一次啟動後仍能載入木馬程式。有些把server端和正常程式綁定成一個程式的軟體,叫做exe-binder綁定程式,可以讓人在使用trojan化的程式時,木馬也入侵了系統,甚至我聽說有個程式能把exe檔案和圖片檔案綁定,在你看圖片的時候,木馬也侵入了你的系統。還有些木馬可以自行定義通訊埠,當然這樣可以是木馬更加隱秘。更改server端的圖示,讓它看起來象個zip或圖片檔案,如果你一不當心,那麼就糟了。 2.功能特殊性。
通常的木馬的功能都是十分特殊的,除了普通的檔案*作以外,還有些木馬具有搜索cache中的口令,設置口令,掃描ip發現中招的機器,鍵盤記錄,遠端註冊表的*作,以及顛倒螢幕,鎖定滑鼠等功能比較特殊的*作,而遠端控制軟體的功能當然不會有這麼多的特殊功能,畢竟遠端控制軟體是用來幹正事的,而非搞破壞。
四:木馬的分類
1、破壞型
此類唯一的功能就是破壞並且刪除檔案,可以自動的刪除電腦上的DLL、INI、EXE文件。
2、密碼發送型
此類可以找到隱藏密碼並把它們發送到指定的信箱。有人喜歡把自己的各種密碼以檔案的形式存放在電腦中,認為這樣方便;還有人喜歡用WINDOWS提供的密碼記憶功能,這樣就可以不必每次都輸入密碼了。許多駭客軟體可以尋找到這些檔案,把它們送到駭客手中。也有些駭客軟體長期潛伏,記錄*作者的鍵盤*作,從中尋找有用的密碼。
在這裏提醒一下,不要認為自己在文檔案中加了密碼而把重要的保密文件存在公用電腦中,那你就大錯特錯了。別有用心的人完全可以用窮舉法暴力破譯你的密碼。利用WINDOWS API函數EnumWindows和EnumChildWindows對當前執行的所有程式的所有視窗(包括控制項)進行遍曆,通過視窗標題查找密碼輸入和出確認重新輸入視窗,通過按鈕標題查找我們應該單擊的按鈕,通過ES_PASSWORD查找我們需要鍵入的密碼窗口。向密碼輸入視窗發送WM_SETTEXT消息類比輸入密碼,向按鈕視窗發送WM_COMMAND消息類比單擊。在破解過程中,把密碼保存在一個檔案中,以便在下一個序列的密碼再次進行窮舉或多部機器同時進行分工窮舉,直到找到密碼為止。此類程式在駭客網站上唾手可得,精通程式設計的人,完全可以自編一個。
3、遠端存取型
此類最廣泛的就是特洛伊馬,只需有人執行了服務端程式,如果客戶知道了服務端的IP位址,就可以實現遠端控制。以下的程式可以實現觀察"受害者"正在幹什麼,當然這個程式完全可以用在正道上的,比如監視學生機的*作。
程式中用的UDP(User Datagram Protocol,用戶報文協議)是網際網路上廣泛採用的通信協議之一。與TCP協議不同,它是一種非連接的傳輸協議,沒有確認機制,可靠性不如TCP,但它的效率卻比TCP高,用於遠端螢幕監視還是比較適合的。它不區分服務器端和用戶端,只區分發送端和接收端,編程上較為簡單,故選用了UDP協議。本程式中用了DELPHI提供的TNMUDP控制項。
4.鍵盤記錄木馬
這種特洛伊木馬是非常簡單的。它們只做一件事情,就是記錄受害者的鍵盤敲擊並且在LOG檔案裏查找密碼。據筆者經驗,這種特洛伊木馬隨著Windows的啟動而啟動。它們有線上和離線記錄這樣的選項,顧名思義,它們分別記錄你線上和離線狀態下敲擊鍵盤時的按鍵情況。也就是說你按過什麼按鍵,下木馬的人都知道,從這些按鍵中他很容易就會得到你的密碼等有用資訊,甚至是你的信用卡帳號哦!當然,對於這種類型的木馬,郵件發送功能也是必不可少的。
5.DoS攻擊木馬
隨著DoS攻擊越來越廣泛的應用,被用作DoS攻擊的木馬也越來越流行起來。當你入侵了一台機器,給他種上DoS攻擊木馬,那麼日後這台電腦就成為你DoS攻擊的最得力助手了。你控制的肉雞數量越多,你發動DoS攻擊取得成功的機率就越大。所以,這種木馬的危害不是顯現在被感染電腦上,而是顯現在攻擊者可以利用它來攻擊一台又一台電腦,給網路造成很大的傷害和帶來損失。還有一種類似DoS的木馬叫做郵件炸彈木馬,一旦機器被感染,木馬就會隨機生成各種各樣主題的信件,對特定的郵箱不停地發送郵件,一直到對方癱瘓、不能接受郵件為止。
6.代理木馬
駭客在入侵的同時掩蓋自己的足跡,謹防別人發現自己的身份是非常重要的,因此,給被控制的肉雞種上代理木馬,讓其變成攻擊者發動攻擊的跳板就是代理木馬最重要的任務。通過代理木馬,攻擊者可以在匿名的情況下使用Telnet,ICQ,IRC等程式,從而隱蔽自己的蹤跡。
7.FTP木馬
這種木馬可能是最簡單和古老的木馬了,它的惟一功能就是打開21埠,等待用戶連接。現在新FTP木馬還加上了密碼功能,這樣,只有攻擊者本人才知道正確的密碼,從而進人對方電腦。
8.程式殺手木馬
上面的木馬功能雖然形形色色,不過到了對方機器上要發揮自己的作用,還要過防木馬軟體這一關才行。常見的防木馬軟體有ZoneAlarm,Norton Anti-Virus等。程式殺手木馬的功能就是關閉對方機器上執行的這類程式,讓其他的木馬更好地發揮作用。
9.反彈埠型木馬
木馬是木馬開發者在分析了防火牆的特性後發現,防火牆對於連入的鏈結往往會進行非常嚴格的過濾,但是對於連出的鏈結卻疏於防範。於是,與一般的木馬相反,反彈埠型木馬的服務端 (被控制端)使用主動埠,用戶端 (控制端)使用被動埠。木馬定時監測控制端的存在,發現控制端上線立即彈出埠主動連結控制端打開的主動埠;為了隱蔽起見,控制端的被動埠一般開在80,即使用戶使用掃描軟體檢查自己的埠,發現類似TCP UserIP:1026 ControllerIP:80ESTABLISHED的情況,稍微疏忽一點,你就會以為是自己在流覽網頁。這類的木馬最早的就是網路神偷。
五:木馬的實現技術
1.木馬的常用啟動方式
對於一般的應用程式來說通常有下面的幾種自啟動方式:
a.把程式放入系統的啟動目錄中,注意在windows中有兩個自啟動目錄!
b.把程式的自啟動設置到系統配置檔案中,如win.ini、system.ini等中!
c.在註冊表中進行配置實現程式的自動啟動!
d.把程式註冊為系統服務!
e.替換系統檔案(該方法在目前的Windows2000及以後的作業系統中已經基本失效)
木馬為了達到隱藏自己的目標,通常在設置註冊表啟動項時具有很強的迷惑性,有些木馬還可以隨機更改有關的啟動項。
2.木馬的隱蔽性
木馬的隱蔽性是木馬能否長期存活的關鍵,這主要包括以下幾方面的內容:
A.木馬程式本身的隱蔽性、迷惑性,在檔案案名的命名上採用和系統檔案的檔案案名相似的檔案案名,設置檔案的屬性為系統檔案、隱藏、唯讀屬性等,檔案的存放地點是不常用或難以發現的系統檔案目錄中!
B.木馬程式在執行時的隱蔽性,通常採用了遠端線程技術或HOOK技術注入其他進程的執行空間,採用API HOOK技術攔截有關系統函數的調用實現執行時的隱藏,替換系統服務等方法導致無法發現木馬的執行痕跡!
C.木馬在通信上的隱蔽性,可以採用埠複用技術不打開新的通信埠實現通信、採用ICMP協議等無埠的協議進行通信,還有些木馬平時只有收到特定的資料包才開始活動,平時處於休眠狀態。
D.不安全的木馬技術,具資料顯示有些木馬在執行時能夠刪除自身啟動執行及存在的痕跡,當檢測到作業系統重新啟動時再重新在系統中設置需要啟動自身的參數,這類木馬存在的問題:不安全,當系統失效時(如斷電、死機時)無法再次恢復執行。
六:木馬的發現與清除
1.木馬的發現
可以查看系統埠開放情況,查看系統服務情況,查看系統執行任務是否有可疑之處,注意網卡的工作情況,注意系統日誌及執行速度有無異常。 2.木馬的清除
通常可以使用殺毒軟體進行清除木馬,也可以採用手工的方法來進行清除,但是對有些木馬採用手工清除的方法可能會存在一些困難,主要時因為:
a.有些木馬採用了多進程相互監視技術來啟動被關閉的進程,很多關鍵性應用中使用了該技術,比如InterBase資料庫等.....
b.有些木馬使用任務管理器無法停止執行,導致無法刪除.....
c.有些木馬執行在其他的進程空間中無法在任務管理器中發現及停止
對於上述幾種情況在一定程度上可以採用修改註冊表,使用第三方的一些任務管理器來停止任務,重新啟動進入命令行模式來手工清除木馬,使用一些專殺工具來清除木馬