木馬(Trojan),也稱木馬病毒,是指通過特定的程序(木馬程序)來控制另一臺計算機。木馬通常有兩個可執(zhí)行程序:一個是控制端,另一個是被控制端。木馬這個名字來源于古希臘傳說(荷馬史詩中木馬計的故事,Trojan一詞的特洛伊木馬本意是特洛伊的,即代指特洛伊木馬,也就是木馬計的故事)。
“木馬”程序是目前比較流行的病毒文件,與一般的病毒不同,它不會自我繁殖,也并不“刻意”地去感染其他文件,它通過將自身偽裝吸引用戶下載執(zhí)行,向施種木馬者提供打開被種主機的門戶,使施種者可以任意毀壞、竊取被種者的文件,甚至遠程操控被種主機。木馬病毒的產生嚴重危害著現(xiàn)代網(wǎng)絡的安全運行。
“木馬”與計算機網(wǎng)絡中常常要用到的遠程控制軟件有些相似,但由于遠程控制軟件是“善意”的控制,因此通常不具有隱蔽性;“木馬”則完全相反,木馬要達到的是“偷竊”性的遠程控制,如果沒有很強的隱蔽性的話,那就是“毫無價值”的。
它是指通過一段特定的程序(木馬程序)來控制另一臺計算機。
木馬通常有兩個可執(zhí)行程序:
一個是客戶端,即控制端;另一個是服務端,即被控制端。植入被種者電腦的是“服務器”部分,而所謂的“黑客”正是利用“控制器”進入運行了“服務器”的電腦。運行了木馬程序的“服務器”以后,被種者的電腦就會有一個或幾個端口被打開,使黑客可以利用這些打開的端口進入電腦系統(tǒng),安全和個人隱私也就全無保障了!
木馬的設計者為了防止木馬被發(fā)現(xiàn),而采用多種手段隱藏木馬。木馬的服務一旦運行并被控制端連接,其控制端將享有服務端的大部分操作權限,例如給計算機增加口令,瀏覽、移動、復制、刪除文件,修改注冊表,更改計算機配置等。
隨著病毒編寫技術的發(fā)展,木馬程序對用戶的威脅越來越大,尤其是一些木馬程序采用了極其狡猾的手段來隱蔽自己,使普通用戶很難在中毒后發(fā)覺。
木馬程序技術發(fā)展可以說非常迅速。主要是有些年輕人出于好奇,或是急于顯示自己實力,不斷改進木馬程序的編寫。至今木馬程序已經經歷了六代的改進:
第一代,是最原始的木馬程序。主要是簡單的密碼竊取,通過電子郵件發(fā)送信息等,具備了木馬最基本的功能。
第二代,在技術上有了很大的進步,冰河是中國木馬的典型代表之一。
第三代,主要改進在數(shù)據(jù)傳遞技術方面,出現(xiàn)了ICMP等類型的木馬,利用畸形報文傳遞數(shù)據(jù),增加了殺毒軟件查殺識別的難度。
第四代, 在進程隱藏方面有了很大改動,采用了內核插入式的嵌入方式,利用遠程插入線程技術,嵌入DLL線程?;蛘邟旖覲SAPI,實現(xiàn)木馬程序的隱藏,甚至在Windows NT/2000下,都達到了良好的隱藏效果。灰鴿子和蜜蜂大盜是比較出名的DLL木馬。
第五代,驅動級木馬。驅動級木馬多數(shù)都使用了大量的Rootkit技術來達到在深度隱藏的效果,并深入到內核空間的,感染后針對殺毒軟件和網(wǎng)絡防火墻進行攻擊,可將系統(tǒng)SSDT初始化,導致殺毒防火墻失去效應。有的驅動級木馬可駐留BIOS,并且很難查殺。
第六代,隨著身份認證UsbKey和殺毒軟件主動防御的興起,黏蟲技術類型和特殊反顯技術類型木馬逐漸開始系統(tǒng)化。前者主要以盜取和篡改用戶敏感信息為主,后者以動態(tài)口令和硬證書攻擊為主。PassCopy和暗黑蜘蛛俠是這類木馬的代表。
特洛伊木馬目前一般可理解為“為進行非法目的的計算機病毒”,在電腦中潛伏,以達到黑客目的。
原指一希臘傳說。在古希臘傳說中,希臘聯(lián)軍圍困特洛伊久攻不下,于是假裝撤退,留下一具巨大的中空木馬,特洛伊守軍不知是計,把木馬運進城中作為戰(zhàn)利品。夜深人靜之際,木馬腹中躲藏的希臘士兵打開城門,特洛伊淪陷。后人常用“特洛伊木馬”這一典故,用來比喻在敵方營壘里埋下伏兵里應外合的活動?,F(xiàn)在有的病毒偽裝成一個實用工具、一個可愛的游戲、一個位圖文件、甚至系統(tǒng)文件等等,這會誘使用戶將其打開等操作直到PC或者服務器上。這樣的病毒也被稱為“特洛伊木馬”(trojan wooden-horse),簡稱“木馬”。
木馬程序技術發(fā)展可以說非常迅速。主要是有些年輕人出于好奇,或是急于顯示自己實力,不斷改進木馬程序的編寫。至今木馬程序已經經歷了6代的改進:
這種病毒通過偽裝成一個合法性程序誘騙用戶上當。世界上第一個計算機木馬是出現(xiàn)在1986年的PC-Write木馬。它偽裝成共享軟件PC-Write的2.72版本(事實上,編寫PC-Write的Quicksoft公司從未發(fā)行過2.72版本),一旦用戶信以為真運行該木馬程序,那么他的下場就是硬盤被格式化。在我剛剛上大學的時候,曾聽說我校一個前輩牛人在WAX機房上用BASIC作了一個登錄界面木馬程序,當你把你的用戶ID,密碼輸入一個和正常的登錄界面一模一樣的偽登錄界面后后,木馬程序一面保存你的ID,和密碼,一面提示你密碼錯誤讓你重新輸入,當你第二次登錄時,你已成了木馬的犧牲品。此時的第一代木馬還不具備傳染特征。
繼PC-Write之后,1989年出現(xiàn)了AIDS木馬。由于當時很少有人使用電子郵件,所以AIDS的作者就利用現(xiàn)實生活中的郵件進行散播:給其他人寄去一封封含有木馬程序軟盤的郵件。之所以叫這個名稱是因為軟盤中包含有AIDS和HIV疾病的藥品,價格,預防措施等相關信息。軟盤中的木馬程序在運行后,雖然不會破壞數(shù)據(jù),但是他將硬盤加密鎖死,然后提示受感染用戶花錢消災??梢哉f第二代木馬已具備了傳播特征(盡管通過傳統(tǒng)的郵遞方式)。
隨著Internet的普及,這一代木馬兼?zhèn)鋫窝b和傳播兩種特征并結合TCP/IP網(wǎng)絡技術四處泛濫。同時他還有新的特征:
第一,添加了后門功能。
所謂后門就是一種可以為計算機系統(tǒng)秘密開啟訪問入口的程序。一旦被安裝,這些程序就能夠使攻擊者繞過安全程序進入系統(tǒng)。該功能的目的就是收集系統(tǒng)中的重要信息,例如,財務報告、口令及信用卡號。此外,攻擊者還可以利用后門控制系統(tǒng),使之成為攻擊其它計算機的幫兇。由于后門是隱藏在系統(tǒng)背后運行的,因此很難被檢測到。它們不像病毒和蠕蟲那樣通過消耗內存而引起注意。
第二,添加了擊鍵記錄功能。
從名稱上就可以知道,該功能主要是記錄用戶所有的擊鍵內容然后形成擊鍵記錄的日志文件發(fā)送給惡意用戶。惡意用戶可以從中找到用戶名、口令以及信用卡號等用戶信息。這一代木馬比較有名的有國外的BO2000(BackOrifice)和國內的冰河木馬。它們有如下共同特點:基于網(wǎng)絡的客戶端/服務器應用程序。具有搜集信息、執(zhí)行系統(tǒng)命令、重新設置機器、重新定向等功能。
當木馬程序攻擊得手后,計算機就完全在黑客控制的傀儡主機,黑客成了超級用戶,用戶的所有計算機操作不但沒有任何秘密而言,而且黑客可以遠程控制傀儡主機對別的主機發(fā)動攻擊,這時候背俘獲的傀儡主機成了黑客進行進一步攻擊的擋箭牌和跳板。
雖然木馬程序手段越來越隱蔽,但是蒼蠅不叮無縫的蛋,只要加強個人安全防范意識,還是可以大大降低中招的幾率。對此筆者有如下建議:安裝個人防病毒軟件、個人防火墻軟件;及時安裝系統(tǒng)補??;對不明來歷的電子郵件和插件不予理睬;經常去安全網(wǎng)站轉一轉,以便及時了解一些新木馬的底細,做到知己知彼,百戰(zhàn)不殆;
第一代,是最原始的木馬程序。主要是簡單的密碼竊取,通過電子郵件發(fā)送信息等,具備了木馬最基本的功能。
第二代,在技術上有了很大的進步,冰河是中國木馬的典型代表之一。
第三代,主要改進在數(shù)據(jù)傳遞技術方面,出現(xiàn)了ICMP等類型的木馬,利用畸形報文傳遞數(shù)據(jù),增加了殺毒軟件查殺識別的難度。
第四代,在進程隱藏方面有了很大改動,采用了內核插入式的嵌入方式,利用遠程插入線程技術,嵌入DLL線程?;蛘邟旖覲SAPI,實現(xiàn)木馬程序的隱藏,甚至在WindowsNT/2000下,都達到了良好的隱藏效果?;银澴雍兔鄯浯蟊I是比較出名的DLL木馬。
第五代,驅動級木馬。驅動級木馬多數(shù)都使用了大量的Rootkit技術來達到在深度隱藏的效果,并深入到內核空間的,感染后針對殺毒軟件和網(wǎng)絡防火墻進行攻擊,可將系統(tǒng)SSDT初始化,導致殺毒防火墻失去效應。有的驅動級木馬可駐留BIOS,并且很難查殺。
第六代,隨著身份認證UsbKey和殺毒軟件主動防御的興起,黏蟲技術類型和特殊反顯技術類型木馬逐漸開始系統(tǒng)化。前者主要以盜取和篡改用戶敏感信息為主,后者以動態(tài)口令和硬證書攻擊為主。PassCopy和暗黑蜘蛛俠是這類木馬的代表。
木馬種類
1、破壞型
唯一的功能就是破壞并且刪除文件,可以自動的刪除電腦上的DLL、INI、EXE等重要文件。
2、密碼發(fā)送型
可以找到隱藏密碼并把它們發(fā)送到指定的信箱。有人喜歡把自己的各種密碼以文件的形式存放在計算機中,認為這樣方便;還有人喜歡用WINDOWS提供的密碼記憶功能,這樣就可以不必每次都輸入密碼了。許多黑客軟件可以尋找到這些文件,把它們送到黑客手中。也有些黑客軟件長期潛伏,記錄操作者的鍵盤操作,從中尋找有用的密碼。
在這里提醒一下,不要認為自己在文檔中加了密碼而把重要的保密文件存在公用計算機中,那你就大錯特錯了。別有用心的人完全可以用窮舉法暴力破譯你的密碼。利用WINDOWS API函數(shù)EnumWindows和EnumChildWindows對當前運行的所有程序的所有窗口(包括控件)進行遍歷,通過窗口標題查找密碼輸入和出確認重新輸入窗口,通過按鈕標題查找我們應該單擊的按鈕,通過ES_PASSWORD查找我們需要鍵入的密碼窗口。
向密碼輸入窗口發(fā)送WM_SETTEXT消息模擬輸入密碼,向按鈕窗口發(fā)送WM_COMMAND消息模擬單擊。在破解過程中,把密碼保存在一個文件中,以便在下一個序列的密碼再次進行窮舉或多部機器同時進行分工窮舉,直到找到密碼為止。此類程序在黑客網(wǎng)站上唾手可得,精通程序設計的人,完全可以自編一個。
最后,如果真的想將賬號密碼儲存在計算機里,可以先將數(shù)據(jù)寫在TXT文件里,再將后綴名改成.17864(隨便輸入),這可以最大限度地防止黑客的入侵。需要用的時候再改過來。
3、遠程訪問型
最廣泛的是特洛伊木馬,只需有人運行了服務端程序,如果客戶知道了服務端的IP地址,就可以實現(xiàn)遠程控制。以下的程序可以實現(xiàn)觀察"受害者"正在干什么,當然這個程序完全可以用在正道上的,比如監(jiān)視學生機的操作。
程序中用的UDP(User Datagram Protocol,用戶報文協(xié)議)是因特網(wǎng)上廣泛采用的通信協(xié)議之一。與TCP協(xié)議不同,它是一種非連接的傳輸協(xié)議,沒有確認機制,可靠性不如TCP,但它的效率卻比TCP高,用于遠程屏幕監(jiān)視還是比較適合的。它不區(qū)分服務器端和客戶端,只區(qū)分發(fā)送端和接收端,編程上較為簡單,故選用了UDP協(xié)議。本程序中用了DELPHI提供的TNMUDP控件。
⒋鍵盤記錄木馬
這種特洛伊木馬是非常簡單的。它們只做一件事情,就是記錄受害者的鍵盤敲擊并且在LOG文件里查找密碼。據(jù)筆者經驗,這種特洛伊木馬隨著Windows的啟動而啟動。它們有在線和離線記錄這樣的選項,顧名思義,它們分別記錄你在線和離線狀態(tài)下敲擊鍵盤時的按鍵情況。也就是說你按過什么按鍵,下木馬的人都知道,從這些按鍵中他很容易就會得到你的密碼等有用信息,甚至是你的信用卡賬號哦!當然,對于這種類型的木馬,郵件發(fā)送功能也是必不可少的。
⒌Dos攻擊木馬
隨著DoS攻擊越來越廣泛的應用,被用作DoS攻擊的木馬也越來越流行起來。當你入侵了一臺機器,給他種上DoS攻擊木馬,那么日后這臺計算機就成為你DoS攻擊的最得力助手了。你控制的肉雞數(shù)量越多,你發(fā)動DoS攻擊取得成功的機率就越大。所以,這種木馬的危害不是體現(xiàn)在被感染計算機上,而是體現(xiàn)在攻擊者可以利用它來攻擊一臺又一臺計算機,給網(wǎng)絡造成很大的傷害和帶來損失。
還有一種類似DoS的木馬叫做郵件炸彈木馬,一旦機器被感染,木馬就會隨機生成各種各樣主題的信件,對特定的郵箱不停地發(fā)送郵件,一直到對方癱瘓、不能接受郵件為止。
⒍代理木馬
黑客在入侵的同時掩蓋自己的足跡,謹防別人發(fā)現(xiàn)自己的身份是非常重要的,因此,給被控制的肉雞種上代理木馬,讓其變成攻擊者發(fā)動攻擊的跳板就是代理木馬最重要的任務。通過代理木馬,攻擊者可以在匿名的情況下使用Telnet,ICQ,IRC等程序,從而隱蔽自己的蹤跡。
⒎FTP木馬
這種木馬可能是最簡單和古老的木馬了,它的唯一功能就是打開21端口,等待用戶連接。新FTP木馬還加上了密碼功能,這樣,只有攻擊者本人才知道正確的密碼,從而進入對方計算機。
⒏程序殺手木馬
上面的木馬功能雖然形形色色,不過到了對方機器上要發(fā)揮自己的作用,還要過防木馬軟件這一關才行。常見的防木馬軟件有ZoneAlarm,Norton Anti-Virus等。程序殺手木馬的功能就是關閉對方機器上運行的這類程序,讓其他的木馬更好地發(fā)揮作用。
⒐反彈端口型木馬
木馬是木馬開發(fā)者在分析了防火墻的特性后發(fā)現(xiàn):防火墻對于連入的鏈接往往會進行非常嚴格的過濾,但是對于連出的鏈接卻疏于防范。于是,與一般的木馬相反,反彈端口型木馬的服務端(被控制端)使用主動端口,客戶端(控制端)使用被動端口。木馬定時監(jiān)測控制端的存在,發(fā)現(xiàn)控制端上線立即彈出端口主動連結控制端打開的主動端口;為了隱蔽起見,控制端的被動端口一般開在80,即使用戶使用掃描軟件檢查自己的端口,發(fā)現(xiàn)類似TCP UserIP:1026 ControllerIP:80ESTABLISHED的情況,稍微疏忽一點,你就會以為是自己在瀏覽網(wǎng)頁。
當前最為常見的木馬通常是基于TCP/UDP協(xié)議進行client端與server端之間的通訊的,既然利用到這兩個協(xié)議,就不可避免要在server端(就是被種了木馬的機器了)打開監(jiān)聽端口來等待連接。例如鼎鼎大名的冰河使用的監(jiān)聽端口是7626,Back Orifice 2000則是使用54320等等。那么,我們可以利用查看本機開放端口的方法來檢查自己是否被種了木馬或其它黑客程序。以下是詳細方法介紹。
1. Windows本身自帶的netstat命令
關于netstat命令,我們先來看看windows幫助文件中的介紹:
Netstat
顯示協(xié)議統(tǒng)計和當前的 TCP/IP 網(wǎng)絡連接。該命令只有在安裝了 TCP/IP 協(xié)議后才可以使用。
netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]
參數(shù)
-a
顯示所有連接和偵聽端口。服務器連接通常不顯示。
-e
顯示以太網(wǎng)統(tǒng)計。該參數(shù)可以與 -s 選項結合使用。
-n
以數(shù)字格式顯示地址和端口號(而不是嘗試查找名稱)。
-s
顯示每個協(xié)議的統(tǒng)計。默認情況下,顯示 TCP、UDP、ICMP 和 IP 的統(tǒng)計。-p 選項可以用來指定默認的子集。
-p protocol
顯示由 protocol 指定的協(xié)議的連接;protocol 可以是 tcp 或 udp。如果與 -s 選項一同使用顯示每個協(xié)議的統(tǒng)計,protocol 可以是 tcp、udp、icmp 或 ip。
-r
顯示路由表的內容。
interval
重新顯示所選的統(tǒng)計,在每次顯示之間暫停 interval 秒。按 CTRL+B 停止重新顯示統(tǒng)計。如果省略該參數(shù),netstat 將打印一次當前的配置信息。
好了,看完這些幫助文件,我們應該明白netstat命令的使用方法了。就讓我們現(xiàn)學現(xiàn)用,用這個命令看一下自己的機器開放的端口。進入到命令行下,使用netstat命令的a和n兩個參數(shù):
C:>netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7626 0.0.0.0:0 LISTENING
UDP 0.0.0.0:445 0.0.0.0:0
UDP 0.0.0.0:1046 0.0.0.0:0
UDP 0.0.0.0:1047 0.0.0.0:0
解釋一下,Active Connections是指當前本機活動連接,Proto是指連接使用的協(xié)議名稱,Local Address是本地計算機的 IP 地址和連接正在使用的端口號,F(xiàn)oreign Address是連接該端口的遠程計算機的 IP 地址和端口號,State則是表明TCP 連接的狀態(tài),你可以看到后面三行的監(jiān)聽端口是UDP協(xié)議的,所以沒有State表示的狀態(tài)??矗∥业臋C器的7626端口已經開放,正在監(jiān)聽等待連接,像這樣的情況極有可能是已經感染了冰河!急忙斷開網(wǎng)絡,用殺毒軟件查殺病毒是正確的做法。
2.工作在windows2000下的命令行工具fport
使用windows2000的朋友要比使用windows9X的幸運一些,因為可以使用fport這個程序來顯示本機開放端口與進程的對應關系。
Fport是FoundStone出品的一個用來列出系統(tǒng)中所有打開的TCP/IP和UDP端口,以及它們對應應用程序的完整路徑、PID標識、進程名稱等信息的軟件。在命令行下使用,請看例子:
D:>fport.exe
FPort v1.33 - TCP/IP Process to Port Mapper
Copyright 2000 by Foundstone,Inc.
Pid Process Port Proto Path
748 tcpsvcs -> 7TCP C:WINNTSystem32tcpsvcs.exe
748 tcpsvcs -> 9TCP C:WINNTSystem32cpsvcs.exe
748 tcpsvcs -> 19TCP C:WINNTSystem32cpsvcs.exe
416 svchost -> 135 TCP C:WINNTsystem32svchost.exe
是不是一目了然了。這下,各個端口究竟是什么程序打開的就都在你眼皮底下了。如果發(fā)現(xiàn)有某個可疑程序打開了某個可疑端口,可千萬不要大意哦,也許那就是一只狡猾的木馬!
Fport的最新版本是2.0。在很多網(wǎng)站都提供下載,但是為了安全起見,當然最好還是到它的老家去下:
⒊與Fport功能類似的圖形化界面工具Active Ports
Active Ports為SmartLine出品,你可以用來監(jiān)視電腦所有打開的TCP/IP/UDP端口,不但可以將你所有的端口顯示出來,還顯示所有端口所對應的程序所在的路徑,本地IP和遠端IP(試圖連接你的電腦IP)是否正在活動。
更棒的是,它還提供了一個關閉端口的功能,在你用它發(fā)現(xiàn)木馬開放的端口時,可以立即將端口關閉。這個軟件工作在Windows NT/2000/XP平臺下。你可以在得到它。
其實使用windows xp的用戶無須借助其它軟件即可以得到端口與進程的對應關系,因為windows xp所帶的netstat命令比以前的版本多了一個O參數(shù),使用這個參數(shù)就可以得出端口與進程的對應來。
上面介紹了幾種查看本機開放端口,以及端口和進程對應關系的方法,通過這些方法可以輕松的發(fā)現(xiàn)基于TCP/UDP協(xié)議的木馬,希望能給你的愛機帶來幫助。但是對木馬重在防范,而且如果碰上反彈端口木馬,利用驅動程序及動態(tài)鏈接庫技術制作的新木馬時,以上這些方法就很難查出木馬的痕跡了。
所以我們一定要養(yǎng)成良好的上網(wǎng)習慣,不要隨意運行郵件中的附件,安裝一套殺毒軟件,像國內的瑞星就是個查殺病毒和木馬的好幫手。從網(wǎng)上下載的軟件先用殺毒軟件檢查一遍再使用,在上網(wǎng)時打開網(wǎng)絡防火墻和病毒實時監(jiān)控,保護自己的機器不被可恨的木馬入侵。
灰鴿子木馬
灰鴿子[1] 是國內一個著名的后門程序。在Windows目錄下,灰鴿子變種木馬運行后,會自我復制,并自行將安裝程序刪除。
灰鴿子[1] 是國內一個著名的后門程序?;银澴幼兎N木馬運行后,會自我復制到Windows目錄下,并自行將安裝程序刪除。修改注冊表,將病毒文件注冊為服務項實現(xiàn)開機自啟。木馬程序還會注入所有的進程中,隱藏自我,防止被殺毒軟件查殺。自動開啟IE瀏覽器,以便與外界進行通信,偵聽黑客指令,在用戶不知情的情況下連接黑客指定站點,盜取用戶信息、下載其它特定程序。
冰河木馬
冰河木馬開發(fā)于1999年,跟灰鴿子類似,在設計之初,開發(fā)者的本意是編寫一個功能強大的遠程控制軟件。但一經推出,就依靠其強大的功能成為了黑客們發(fā)動入侵的工具,并結束了國外木馬一統(tǒng)天下的局面,跟后來的灰鴿子等等成為國產木馬的標志和代名詞。HK聯(lián)盟Mask曾利用它入侵過數(shù)千臺電腦,其中包括國外電腦。
蜜蜂大盜
“蜜蜂大盜”有強大的信息竊取、遠程監(jiān)控功能。病毒具有竊取幾乎所有的密碼,自動打開染毒者的攝像頭,進行遠程監(jiān)控、遠程攝像、遙控QQ、遙控系統(tǒng)設置并中止防火墻等多種危害。該病毒自身為合成文件,運行木馬程序后,進程優(yōu)先級較高不能正常手工清除,免殺任何一款殺毒軟件,很難清除。