木馬自誕生以來,一直在不斷的“變形”之中。現在的木馬已今非昔比了,說它擁有七十二般變化一點也不分。陰魂不散、隱藏之術、毀尸滅跡……各種木馬技術層出不窮,讓人防不勝防;有句俗話:您有您的千條計,我有我的老主意。木馬不是來無蹤,去無影的神,雖然它能“畫皮”,擅于偽裝,但我們總能找出防范它的一般方法。本文將向您全面介紹木馬利用的端口、掃描端口的軟件及防范木馬的策略。相信定能助您斬斷木馬的“黑手”。
基本上所有的木馬都是基于TCP/IP通訊的客戶端/服務端結構的系統,服務端被安裝后,會在被監控端打開一個監聽端口等待客戶端來連接,一般情況下,不同的木馬,默認打開的監聽端口不同,所以,查看您電腦上打開的監聽端口,可以判斷您的電腦是否中了木馬以及中了何種木馬。
常見端口
電腦上1024以下的端口一般被固定分配給一些服務,這些端口以及和它對應和服務已經“家喻戶曉、婦孺皆知”了,所以這些端口有些叫公認端口,例如80端口被固定給Web服務,21端口被固定給FTP服務等,如果您的電腦安裝并啟用了這些服務,那么在您的電腦上這些端口應該是開放的。下面是常見的一些公認端口。
80端口:超文本傳輸協議(HTTP)中定義的端口,用來提供網頁(Web)服務;
21端口:文件傳輸協議(FTP)中定義的端口,用來提供文件的上傳與下載服務;
23端口:遠程登錄協議(Telent)中定義的端口,用來提供遠程維護服務;
25端口:簡單郵件傳輸協議(SMTP)中定義的端口,用來提供郵件的發送服務;
110端口:郵件接受協議(POP)中定義的端口,用來提供郵件的接收服務。
提示:還有一些端口在Windows安裝好后就會自動打開,筆者對這些端口做了一次調查,調查中發現,幾乎所有的Windows系統中都要開放135、137、138和139端口,另外,在Windows 2000及以上的系統中445端口也是開放的。
1024以上的端口系統一般不固定給某個服務,它是動態分配的,因而這類端口又叫做動態端口(有些文章認為從1024到49151的端口比較固定地分配給一些服務,因而它們把這些端口有細分為“注冊端口”,實際上,系統通常從1024起就開始動態分配端口了)。動態端口任何網絡程序都可以使用,只要程序向系統提出訪問網絡的申請,那么系統就可以從這些端口中分配一個供該程序使用,訪問結束后,所占用的端口也會被釋放,當有其它程序訪問網絡時,這些端口有可能會被再次使用。需要指出的是,從理論上講,動態端口不應用作服務端口。但是,還是有一部分正常程序和大多數木馬程序的服務端固定使用了一個或幾個這一范圍內的端口(大多數木馬所使用的監聽端口都可以自定義,這里所說的端口是指它默認的監聽端口)監聽網絡。下面列出一些常用程序和已知木馬默認的監聽端口。
3389端口:Windows的終端服務或遠程桌面默認的監聽端口;
7626端口:木馬冰河服務端默認的監聽端口;
7306端口:木馬網絡精靈(NetSpy)服務端默認的監聽端口;
6267端口:木馬廣外女生服務端默認的監聽端口;
19191端口:木馬藍色火焰服務端默認的監聽端口。
由于已知的木馬實在太多,所以筆者在這里不能一一列出,您可以根據下面介紹的方法查出處于監聽狀態的端口,然后打開網頁http://edu.cnzz.cn/show_9221.html(該網頁列出了絕大多數木馬默認使用的監聽端口)去對照,或者在搜索框中輸入監聽端口的端口號,利用搜索引擎查詢。
利用Netstat命令查看端口
Netstat命令能干些什么呢?一臺機器要和另一臺機器通訊,首先要明確四個要素,即本機的IP地址、遠程主機的IP地址、本機使用的通訊端口、遠程主機使用的通訊端口。
Netstat是Windows自帶的網絡檢測工具,只要安裝了TCP/IP協議,我們就可以使用該命令。下面是該命令的格式和一些主要參數的介紹。
Netstat [-a] [-e] [-n] [-o] [-s][-p proto][-r] [interval]
-a 該參數用來顯示計算機包括LISTENIN狀態的所有端口和全部連接;
-n 以數字格式的形式顯示計算機除LISTENING狀態的端口和網絡地址;
-o 顯示計算機除LISTENING狀態的端口和網絡地址,同時顯示開啟該端口進程的PID;
-e 列出端口上的數據流量(一般與參數s共同使用),包括發送和接收的數據報的總字節數、錯誤數、刪除數等;
-s 按照各個協議分別顯示其統計數據。
在上述參數中,我們經常使用的有三個:“Netstat -a”、“Netstat -n”和“Netstat -o”
1.“Netstat -a”主要用來查看本地計算機都開放了哪些監聽端口,被監聽的端口中出現了7626端口,那么我們初步可以斷定,這臺計算機可能被植入了冰河木馬。
2.“Netstat -n”和“Netstat -o”主要用來查看本機與外部的網絡連接。和傳統的木馬相比,現在還有一種木馬使用反彈端口,也就是說這種木馬的服務端并不是開一個監聽端口等待客戶端來連接,而是服務端主動去連接客戶端監聽的端口,對付這種木馬,我們就要使用“Netstat -n”或“Netstat -o”查看本機與外部的網絡連接狀況。
在常規的檢查中,一般把參數“-a”和“-n”、“-o”聯合起來使用。在命令提示符窗口中輸入“Netstat -an”或“Netstat -ao”,這樣,我們不僅能查看本機開放了哪些監聽端口,還能以IP地址形式查看本機的網絡程序都連接到哪些網絡主機。
使用軟件掃描端口
掃描端口的軟件比較多,這里建議大家使用SuperScan,它是國外著名安全團體GoundStone推出的一款端口掃描工具,它不僅能夠掃描端口,而且還內置了一個特洛伊木馬的端口列表文件,利用該列表文件,我們就可以直接掃描自己的電腦是否中了木馬。
SuperScan小檔案
軟件版本:SuperScan v3.00
軟件大小:202KB
軟件性質:免費軟件
適用平臺:Windows 9x/NT/2000/XP/2003
⒈端口掃描:啟動SuperScan,單擊“本機”或“網絡”按鈕,您的局域網IP或公網IP就填寫到“起始IP”和“終止IP”文本框中了,接下來,選擇“所有端口”單選框并在文本框中鍵入1到65535的所有端口,最后單擊“開始”進行掃描。掃描結束后,下面的窗口中會列出您的系統中開放的全部監聽端口,如果端口是木馬開放的,它還能根據特洛伊木馬的端口列表文件給出該木馬的名稱或描述。
⒉掃描木馬:上面介紹的方法我們由于要對全部端口進行掃描,所以花費的時間比較長,如果您只掃描木馬,可以使用特洛伊木馬的端口列表文件。
第一步:在SuperScan的界面上單擊“端口設置”打開“編輯端口列表”對話框,在“端口列表清單”中選擇“trojans.lst”文件,在下面的窗口中列出了木馬使用的端口號和木馬的描述,您可以選擇一部分端口進行掃描,也可心單擊“全部選擇”選擇列表中的所有端口進行掃描。
第二步:在SuperScan的界面上,“列表中的每個端口”掃描“trojans.lst”文件中列出的全部端口,“所有列表中選擇的端口”只掃描在“trojans.lst”文件中選擇的端口,您也可以鍵入一個起始端口號和結束端口號,然后選擇“列表中的端口”掃描“trojans.lst”文件中這一范圍內的端口
第三步:選擇好掃描的端口后,然后在“起始IP”和“終止IP”中輸入自己的公網IP地址,單擊“開始”就可以掃描木馬了。
小提示:在Internet上,新的木馬層出不窮,為了能讓SuperScan識別出這些木馬,我們可以把新出現的木馬加入到“trojans.lst”文件中。在“編輯端口列表”對話框上選擇“trojans.lst”文件,在左側“端口”的文本框中輸入木馬使用的默認端口號,在“形容”文本框中輸入該木馬的名稱或說明,最后單擊“添加”,新的木馬就添加到右側的端口列表中了,單擊“保存”,我們可以把該列表另存為其它文件,但然也可以繼續保存在“trojans.lst”文件中。
撕破木馬畫皮,淺析防范策略
以上為您介紹了木馬常用的端口及掃描端口的軟件。木馬層出不窮,但并不是不可戰勝的,以下將為您介紹木馬常見偽裝方法及防范策略。
常見偽裝方法
⒈程序圖標:現在大多數木馬都提供了選擇服務端安裝程序圖標的功能,單擊“選擇圖標”,黑客就可以輕松地為服務端安裝程序選擇任何圖標。
⒉文件改名:一些木馬服務端安裝程序會在您的電腦上偽裝成圖片格式,如果您把它當作一個圖像文件來打開的話,那么在欣賞圖片時,木馬也就在您的電腦中“安營扎寨”了。
⒊文件捆綁:“千萬不要下載和運行來歷不明的可執行文件”是一些安全類文章最愛嘮叨的一句話,今天,筆者在這里也湊個熱鬧:千萬不要運行一些網絡游戲的免費外掛。免費的網絡游戲外掛中絕大多數都捆綁了不良木馬,當您運行了這個外掛,那么捆綁在這個外掛中的木馬也就偷偷地植入了您的電腦。
⒋出錯顯示:既然是木馬,那么它在安裝時就不會出現任何界面和提示,因此,一個程序雙擊后如果看不到任何反應,那么聰明的網民就會懷疑它是木馬。為了消除這部分人心中的疑慮,一些木馬會打開一個圖片,還有些木馬會設計一個錯誤提示對話框,而且對話框的內容也可以自定義。比如,有些木馬安裝時會彈出一個對話框提示:“文件已損壞,無法打開”。這樣的程序,您還會懷疑它是木馬嗎?
⒌自我銷毀:大多數木馬是通過自我復制的方法安裝的,也就是說,它的安裝程序其實就是木馬服務端程序,當您雙擊了一個木馬的安裝程序后,它會把自己拷貝到系統目錄或其它目錄,因此,一些有經驗的網民如果懷疑一個程序是木馬,它會根據安裝程序的大小在硬盤上搜索相同大小的文件。為了防止這部分網民刪除木馬,一些木馬設計了自我銷毀的功能,當它把自己拷貝到系統目錄或其它目錄后,它會把自己刪除,這樣既達到了隱匿自己的效果,而且還會讓您無據可查。
⒍木馬更名:木馬是一個程序,是程序就會有一個文件名。按照文件名在硬盤上進行搜索,然后把搜索到的文件進行刪除就能徹底刪除木馬,這是刪除木馬最理想的方法。但實際情況卻是我們根本就無法確定木馬的文件名,這是因為木馬的文件名是易變的。現在大多數木馬在配置服務端程序時都允許自定義木馬的文件名,不僅如此,木馬的安裝路徑、進程名稱等都可以允許黑客自定義,如圖1所示。
⒎文件關聯:但您正在為手工刪除了木馬文件而沾沾自喜時,說不定陰魂未散的木馬會再次光臨,為什么木馬會起死回生呢?這是因為木馬使用了文件關聯的技術,這種木馬一般會安裝兩個可執行文件,一個就是我們所說的木馬服務端文件,另一個相當于木馬的安裝程序。安裝時,木馬會把這個程序和一些常用文件類型,比如TXT或EXE文件關聯,當木馬的服務端被刪除后,一當您運行TXT或EXE文件,該程序就會被激活而再次安裝木馬服務端,這樣,被刪除的木馬就又復活了。
防范策略
(1)在“文件夾選項”對話框中取消“隱藏已知文件類型的擴展名”選項
首先要明確,不論木馬如何偽裝自己的圖標和文件名,它的后綴部分必須是一個可執行文件的擴展名,比如EXE、COE、BAT等,否則木馬不會運行自己的代碼,但遺憾的是Windows在默認的設置下會隱藏已知文件的擴展名,這樣,如果木馬把自己的文件名改成了“XXX.bmp.exe”這個樣子,擴展名“.exe”隱藏后,木馬的文件名就會變成“XXX.bmp”,再給這個文件配一個圖像文件的圖標,這個文件就會變成一個“披著羊皮的狼”。所以筆者建議,在“文件夾選項”對話框中取消“隱藏已知文件類型的擴展名”選項。
(2)檢查“未知”監聽端口
有些木馬防范的文章和軟件會根據一些特定的端口來判斷電腦是否中了木馬和種了何種木馬,比如一見電腦開了7626端口就認為電腦中子冰河(冰河的默認端口號為7626)。實際上這種方法早就行不通了,因為沒有哪一個黑客會使用默認端口作為冰河的端口,現在絕大多數木馬都允許黑客自定義端口,所以這種方法只有教學或理論上的價值而沒有任何實用價值。不過,木馬要和客戶端通信肯定會打開一個監聽端口這倒是事實。所以,查看您電腦上“未知”的監聽端口,可以判斷您的電腦是否中了木馬。
為什么要檢查“未知”監聽端口呢?這是因為Windows安裝后會自動打開一些監聽端口以保證它自己提供的一些服務能夠正常通訊。另外,一些正常的服務端程序也會打開一些監聽端口,所以,我們不能“談端口就變色”,還要分得清那些是正常的監聽端口,那些是木馬端口。一般情況下,1024以下的端口都為公認的端口,這些端口系統都會保留給自己以提供一些常用的網絡服務,木馬一般不會使用這部分端口,所以,檢查端口時,重點要放在1024以上的監聽端口上,如果您的電腦開了這樣的端口,那您就要注意了。
(3)檢查自啟動位置
和其它程序一樣,木馬也是Windows上的一個應用程序,為了達到遠程控制被控端的目的,大多數木馬會選擇隨系統一同啟動。除了“開始”菜單上的“啟動”組外,Windows中還有很多地方能夠加載程序,經常檢查這些位置,可以有效地防止木馬在您的系統中運行。
在一些防范木馬的文章中介紹了很多木馬的自啟動位置,這些位置主要是注冊表鍵項,因為這種方法要操作注冊表,還要記憶大量的注冊表主鍵,所以筆者不建議使用這種方法。在這里我給大家推薦Autoruns,該軟件不僅能夠顯示Windows所有的自啟動位置,而且還能直接禁用自啟動項的加載,如圖2所示,清除選擇框中的小鉤,該自啟動項就不能隨系統一同啟動了。不僅如此,該軟件還能隱藏已簽證的微軟自啟動項,利用這一功能,我們還可以在眾多的Windows服務中找出把自己注冊為服務的木馬(Windows的大多數服務都是自帶的,也就是說都是經過微軟認證的,而注冊為服務的木馬則不會被微軟認證)。例如,選擇“選項→隱藏已簽證的微軟自啟動項”,當已簽證的微軟自啟動項隱藏以后,把自己注冊為自啟動服務的灰鴿子就豁然在目了。
(4)使用木馬捆綁克星檢查下載的文件
很多安全類文章告誡我們,不要運行來歷不明的軟件,但在很多情況下,往往就是朋友發給我們的文件中捆綁有木馬;有些安全專家告訴我們,不要下載無名小站上的軟件,但常常是知名大站上的軟件木馬最多。所以,不要因為安全而裹足不前,不要因為害怕木馬而不敢下載軟件,正確的態度是不要把重要的文件保存在上網的電腦上(任何安全都是相對的,在網絡上,沒有攻而不破的電腦),然后使用榮成文件捆綁克星大膽下載軟件。
小提示:榮成文件捆綁克星能檢測出捆綁在一個可執行文件中的其它程序,而且還能把捆綁在其中的程序分離出來,如圖3所示。
(5)使用網絡防火墻攔截木馬的通訊
木馬不是來無蹤,去無影的神,它要和客戶端也就是控制端的電腦通訊,就必須在客戶端和服務端之間架起一道“通訊電纜”,使用網絡防火墻就可以“掐斷”這根電纜。網絡防火墻雖然不能解決所有的安全問題,但是它確實能夠攔截大部分木馬的通訊,如果您使用的好,它還能揪出遠在千里之外的黑客,所以筆者建議在經濟條件許可的情況下,給自己的電腦安裝一款專業網絡防火墻。
(6)及時升級殺馬軟件和殺毒軟件
雖然殺馬軟件(專業的查找和清除木馬的軟件,比如木馬克星)和殺毒軟件在剿殺木馬和病毒方面總是滯后的,但是這些年來殺馬軟件和殺毒軟件在網絡信息安全方面確實功不可滅。現在,任何人都可心在網絡上隨便下載木馬,如果說只有高手才能制作病毒的話,那么木馬制作人人都會,而且現在的木馬大都可以自定義服務端,所以手工查殺木馬基本不可能。因此,筆者還是那句話,在經濟條件允許的條件下,給自己的電腦也安裝一款殺馬軟件和殺毒軟件,并把它們及時升級到最新版。
(7)不要把重要的文件保存在網絡上的電腦中
筆者在前面說過一句話:“任何安全都是相對的,在網絡上,沒有攻而不破的電腦”。也許您會說我是在危言聳聽、嘩眾取寵,但如果您精通系統漏洞和玩過木馬(這種木馬不是網絡上隨處可見的已被殺馬軟件和殺毒軟件列在黑名單上的已公開木馬),那么您就會深深地體會到:網絡上根本無安全可言。筆者曾把一款木馬的服務端偽裝成一本電子書共享在某P2P上,不到一下午功夫,中馬者竟有20多人,筆者不僅能夠任意下載文件和操作他們的電腦,而且還通過該木馬的攝像頭監控功能窺到了對方。所以筆者在文章的最后忠告大家:不要把重要的文件保存在網絡上的電腦中。