倍可親

回復: 2
列印 上一主題 下一主題

木馬安全防護應知道的基本知識

[複製鏈接]

1萬

主題

1萬

帖子

1萬

積分

八級貝殼核心

倍可親終生會員(廿一級)

Rank: 5Rank: 5

積分
18033
跳轉到指定樓層
樓主
kent 發表於 2007-3-31 08:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 看到這個題目你也許有些奇怪,怎麼把這幾個詞放在了一起,其實談起埠和木馬都是老生常談 了,但即使是常談還有很多人的計算機被「衝擊波」衝過之後又被「震蕩波」狠狠地震了一下,看來很有必要再談談老話題,免得再被什麼波溫柔地掃過。其實說這 些最終的目的就是為了保證計算機的上網安全。

  一、 埠

  一)、埠的一般含義

  說到埠,這確實是個老話題,但一切都是從它開始的,不得不說。何謂埠,打個比方,你住在一座房子里,想讓別人來拜訪你,得在房子上開個大門,你養 了個可愛的小貓,為了它的進出,專門給它修了個小門,為了到後花園,又開了個後門……所有這些為了進到這所房子里而開的門叫埠,這些為了別人進來而開的 埠稱它為「服務埠」。

  你要拜訪一個叫張三的人,張三家應該開了個允許你來的門--服務埠,否則將被拒之門外。去時,首先你在家開個「門」,然後通過這個「門」徑直走進張 三家的大門。為了訪問別人而在自己的房子開的「門」,稱為「客戶埠」。它是隨機開的而且是主動打開的,訪問完就自行關閉了。它和服務埠性質是不一樣 的,服務埠是開了個門等著別人來訪問,而客戶埠是主動打開一個門去打開別人的門,這點一定要清楚。

  下面從專業的角度再簡單解釋一下埠的概念。聯網的計算機要能相互通信必須用同一種協議,協議就是計算機通信的語言,計算機之間必須說一種語言才能彼 此通信,Internet的通用語言是TCP/TP,它是一組協議,它規定在網路的第四層運輸層有兩種協議TCP、UDP。埠就是這兩個協議打開的,端 口分為源埠和目的埠,源埠是本機打開的,目的埠是正在和本機通信的另一台計算機的埠,源埠分主動打開的客戶埠和被動連接的服務埠兩種。在 Internet中,你訪問一個網站時就是在本機開個埠去連網站伺服器的一個埠,別人訪問你時也是如此。也就是說計算機的通訊就像互相串門一樣,從這 個門走進哪個門。

  當裝好系統后默認就開了很多「服務埠」。如何知道自己的計算機系統開了那些埠呢?這就是下面要說的。

  二)、查看埠的方法

  1、命令方式

  下面以Windows XP為例看看新安裝的系統都開了那些埠,也就是說都預留了那些門,不藉助任何工具來查看埠的命令是netstat,方法如下:

  a、在「開始」的「運行」處鍵入cmd,回車

  b、在dos命令界面,鍵入netstat -na,圖2顯示的就是打開的服務埠,其中Proto

  代表協議,該圖中可以看出有TCP和UDP兩種協議。Local Address代表本機地址,該地址冒號后的數字就是開放的埠號。Foreign Address代表遠程地址,如果和其它機器正在通信,顯示的就是對方的地址,State代表狀態,顯示的LISTENING表示處於偵聽狀態,就是說該 埠是開放的,等待連接,但還沒有被連接。就像你房子的門已經敞開了,但此時還沒有人進來。以第一行為例看看它的意思。

  TCP 0.0.0.0:135 0.0.0.0:0 LISTENING

  這一行的意思是本機的135埠正在等待連接。注意:只有TCP協議的服務埠才能處於LISTENING狀態。

  2、用TCPView工具

  為了更好的分析埠,最好用TCPView這個軟體,該軟體很小隻有93KB,而且是個綠色軟體,不用安裝。

  圖3是TCPView的運行界面。第一次顯示時字體有些小,在「Options」->「Font」中將字型大小調大即可。TCPView顯示的數據 是動態的。圖3中Local Address顯示的就是本機開放的哪個埠(:號後面的數字),TCPView可以看出哪個埠是由哪個程序發起的。從圖3可以看出445、139、 1025、135、5000等埠是開放的,445、139等埠都是system發起的,135等都是SVCHOST發起的。

 三)、研究埠的目的

  1、知道本機開了那些埠,也就是可以進入到本機的「門」有幾個,都是誰開的?

  2、目前本機的埠處於什麼狀態,是等待連接還是已經連接,如果是已經連接那就要特別注意看連接是個正常連接還是非正常連接(木馬等)?

  3、目前本機是不是正在和其它計算機交換數據,是正常的程序防問到一個正常網站還是訪問到一個陷阱?

  當你上網時就是本機和其它機器傳遞數據的過程,要傳遞數據必須要用到埠,即使是有些非常高明的木馬利用正常的埠傳送數據也不是了無痕迹的,數據在 開始傳輸、正在傳輸和結束傳輸的不同階段都有各自的狀態,要想搞明白上述3個問題,就必須清楚埠的狀態變化。下面結合實例先分析服務埠的狀態變化。只 有TCP協議才有狀態,UDP協議是不可靠傳輸,是沒有狀態的。

  四)、服務埠的狀態變化

  先在本機(IP地址為:192.168.1.10)配置FTP服務,然後在其它計算機(IP地址為:192.168.1.1)訪問FTP服務,從TCPView看看埠的狀態變化。

  下面黑體字顯示的是從TCPView中截取的部分。

  1、LISTENING狀態

  FTP服務啟動后首先處於偵聽(LISTENING)狀態。

  State顯示是LISTENING時表示處於偵聽狀態,就是說該埠是開放的,等待連接,但還沒有被連接。就像你房子的門已經敞開的,但還沒有人進來。

  從TCPView可以看出本機開放FTP的情況。它的意思是:程序inetinfo.exe開放了21埠,FTP默認的埠為21,可見在本機開放了FTP服務。目前正處於偵聽狀態。

  inetinfo.exe:1260 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING

  2、ESTABLISHED狀態

  現在從192.168.1.1這台計算機訪問一下192.168.1.10的FTP服務。在本機的TCPView可以看出埠狀態變為ESTABLISHED。

  ESTABLISHED的意思是建立連接。表示兩台機器正在通信。

  下面顯示的是本機的FTP服務正在被192.168.1.1這台計算機訪問。

  inetinfo.exe:1260 TCP 192.168.1.10:21 192.168.1.1:3009 ESTABLISHED

  注意:處於ESTABLISHED狀態的連接一定要格外注意,因為它也許不是個正常連接。後面要講到這個問題。

  3、 TIME_WAIT狀態

  現在從192.168.1.1這台計算機結束訪問192.168.1.10的FTP服務。在本機的TCPView可以看出埠狀態變為TIME_WAIT。

  TIME_WAIT的意思是結束了這次連接。說明21埠曾經有過訪問,但訪問結束了。

  [System Process]:0 TCP 192.168.1.10:21 192.168.1.1:3009 TIME_WAIT

  4、小技巧

  a、可以telnet一個開放的埠,來觀察該埠的變化。比如看1025埠是開放的,在命令狀態(如圖1運行cmd)運行:

  telnet 192.168.1.10 1025

  b、從本機也可以測試,只不過顯示的是本機連本機

  c、在Tcpview中雙擊連接可看出程序的位置,右鍵點擊該連接,選擇End Process即可結束該連接
五)、客戶埠的狀態變化

  客戶埠實際上就是從本機訪問其它計算機服務時打開的源埠,最多的應用是上網,下面就以訪問baidu.com為例來看看埠開放以及狀態的變化情況。

  1、SYN_SENT狀態

  SYN_SENT狀態表示請求連接,當你要訪問其它的計算機的服務時首先要發個同步信號給該埠,此時狀態為SYN_SENT,如果連接成功了就變為 ESTABLISHED,此時SYN_SENT狀態非常短暫。但如果發現SYN_SENT非常多且在向不同的機器發出,那你的機器可能中了衝擊波或震蕩波 之類的病毒了。這類病毒為了感染別的計算機,它就要掃描別的計算機,在掃描的過程中對每個要掃描的計算機都要發出了同步請求,這也是出現許多 SYN_SENT的原因。

  下面顯示的是本機連接baidu.com網站時的開始狀態,如果你的網路正常的,那很快就變為ESTABLISHED的連接狀態。

  IEXPLORE.EXE:2928 TCP 192.168.1.10:1035 202.108.250.249:80 SYN_SENT

  2、ESTABLISHED狀態

  下面顯示的是本機正在訪問baidu.com網站。如果你訪問的網站有許多內容比如訪問www.yesky.com, 那會發現一個地址有許多ESTABLISHED,這是正常的,網站中的每個內容比如圖片、flash等都要單獨建立一個連接。看ESTABLISHED狀 態時一定要注意是不是IEXPLORE.EXE程序(IE)發起的連接,如果是EXPLORE.EXE之類的程序發起的連接,那也許是你的計算機中了木馬 了。

  IEXPLORE.EXE:3120 TCP 192.168.1.10:1045 202.108.250.249:80 ESTABLISHED

  3、TIME_WAIT狀態

  如果瀏覽網頁完畢,那就變為TIME_WAIT狀態。

  [System Process]:0 TCP 192.168.1.10:4259 202.108.250.249:80 TIME_WAIT

  六)、埠詳細變遷圖

  以上是最主要的幾個狀態,實際還有一些,圖4是TCP的狀態詳細變遷圖(從TCP/IP詳解中剪來),用粗的實線箭頭表示正常的客戶端狀態變遷,用粗的虛線箭頭表示正常的伺服器狀態變遷。這些不在本文的討論範圍。有興趣的朋友可以好好研究一下。

  七)、要點

  一般用戶一定要熟悉(再啰嗦幾句):

  1、服務埠重點要看的是LISTENING狀態和ESTABLISHED狀態,LISTENING是本機開了哪些埠,ESTABLISHED是誰在訪問你的機器,從哪個地址訪問的。

  2、客戶埠的SYN_SENT狀態和ESTABLISHED狀態,SYN_SENT是本機向其它計算機發出的連接請求,一般這個狀態存在的時間很 短,但如果本機發出了很多SYN_SENT,那可能就是中毒了。看ESTABLISHED狀態是要發現本機正在和哪個機器傳送數據,主要看是不是一個正常 程序發起的。

  二、木馬

  什麼是木馬,簡單的說就是在未經你許可偷偷在你的計算機中開個後門,木馬開後門主要有兩種方式。

  1、有服務埠的木馬

  這類木馬都要開個服務埠的後門,成功后該後門處於LISTENING狀態,它的埠號可能固定一個數,也可能變化,還有的木馬可以與正常的埠合 用,例如你開著正常的80埠(WEB服務),木馬也用80埠。這種木馬最大的特點就是有埠處於LISTENING狀態,需要遠程計算機連接它。這種 木馬對一般用戶比較好防範,將防火牆設為拒絕從外到內的連接即可。比較難防範的是反彈型木馬。

  2、反彈型木馬

  反彈型木馬是從內向外的連接,它可以有效的穿透防火牆,而且即使你使用的是內網IP,他一樣也能訪問你的計算機。這種木馬的原理是服務端主動連接客戶 端(黑客)地址。木馬的服務端軟體就像你的Internet Explorer一樣,使用動態分配埠去連接客戶端的某一埠,通常是常用埠,像埠80。而且會使用隱避性較強的文件名,像 iexpiore.exe、explorer(IE的程序是IEXPLORE.EXE)。如果你不仔細看,你可能會以為是你的Internet Explorer。這樣你的防火牆也會被騙過。如果你在TcpView中看到下面這樣的連接一定要注意,很有可能是種木馬了。 iexpiore.exe 192.168.1.10(本機IP):1035(你的埠) Y.Y.Y.Y(遠程IP):80(遠程埠)

  或 Rundll32.exe 192.168.1.10(本機IP):1035(你的埠) Y.Y.Y.Y(遠程IP):80(遠程埠)

  或 explorer.exe 192.168.1.10(本機IP):1035(你的埠) Y.Y.Y.Y(遠程IP):80(遠程埠)

 三、安全

  分析埠的目的就是要保證上網安全,根據以上的思路可以從以下幾個方面來防範。

  一)、關閉不需要的埠

  對一般上網用戶來說只要能訪問Internet就行了,並不需要別人來訪問你,也就是說沒有必要開放服務埠,在WIN 98可以做到不開放任何服務埠上網,但在Win XP、Win 2000、Win 2003下不行,但可以關閉不必要的埠。圖3是安裝完WIN XP系統默認開的埠,以此為例關閉不必要的埠。

  1、關閉137、138、139、445埠

  這幾個埠都是為共享而開的,是NetBios協議的應用,一般上網用戶是不需要別人來共享你的內容的,而且也是漏洞最多的埠。關閉的方法很多,最近從網上學了一招非常好用,一次全部關閉上述埠。

  開始-> 控制面板-> 系統-> 硬體-> 設備管理器-> 查看-> 顯示隱藏的設備-> 非即插即用驅動程序-> Netbios over Tcpip。

  找到圖5界面后禁用該設備重新啟動后即可。

  

  2、關閉123埠

  有些蠕蟲病毒可利用UDP 123埠,關閉的方法:如圖6停止windows time服務。

  3、關閉1900埠

  攻擊者只要向某個擁有多台Win XP系統的網路發送一個虛假的UDP包,就可能會造成這些Win XP主機對指定的主機進行攻擊(DDoS)。另外如果向該系統1900埠發送一個UDP包,令"Location"域的地址指向另一系統的 chargen埠,就有可能使系統陷入一個死循環,消耗掉系統的所有資源(需要安裝硬體時需手動開啟)。

  關閉1900埠的方法如圖7所示——停止SSDP Discovery Service 服務。

  

  通過上面的辦法關閉了一些有漏洞的或不用的埠后是不是就沒問題了呢?不是。因為有些埠是不能關掉的。像135埠,它是RPC服務打開的埠如果把 這個服務停掉,那計算機就關機了,同樣像Lsass打開的埠500和4500也不能關閉。衝擊波病毒利用的就是135埠,對於不能關閉的埠最好的辦 法一是常打補丁,埠都是相應的服務打開的,但是對於一般用戶很難判斷這些服務到底有什麼用途,也很難找到停止哪些服務就能關閉相應的埠。最好的辦法就 是下面要講的安裝防火牆。安裝防火牆的作用通俗的說就像你不管住在一所結實的好房子里還是住在一所千瘡百孔的破房子里,只要你在房子的四周建了一堵密不透 風的牆,那對於牆裡的房子就是安全的。

  二)、安裝防火牆

  對於一般用戶來講有下面三類防火牆

  1、 自帶的防火牆

  關於Win XP 與Win 2003自帶防火牆的設置請參閱天極網中拙作,不再贅述。

  2、ADSL貓防火牆

  通過ADSL上網的,如果有條件最好將ADSL貓設置為地址轉換方式(NAT),也就是大家常說的路由模式,其實路由與NAT是不一樣的,權且這麼叫 吧。用NAT方式最大的好處是設置完畢后,ADSL貓就是一個放火牆,它一般只開放80、21、161等為了對ADSL貓進行設置開放的埠。如果不做端 口映射的話,一般從遠程是攻擊不到ADSL貓後面的計算機的。ADSL貓最大的安全隱患就是很多用戶都不改變默認密碼。這樣黑客如果進到你的貓做個埠映 射就有可能進入到你的計算機,一定把默認密碼改掉。

  用自帶的放火牆和ADSL貓的NAT方式基本可以抵禦從外到內的攻擊,也就是說即使服務埠開放(包括系統開放的埠和中了開個服務埠的木馬),黑 客和類似震蕩波一類的病毒也奈何不了你的計算機。上述防火牆只能防止從外到內的連接,不能防止從內到外的連接,當你打開網頁和用QQ聊天時就是從內到外的 連接,反彈型木馬就是利用放火牆的這一特性來盜取你機器的數據的。反彈型木馬雖然十分隱蔽,但也不是沒有馬腳,防範這類木馬最好的辦法就是用第三方防火 牆。

  3、第三方防火牆

  前面說過,反彈型木馬而且會使用隱避性較強的文件名,像iexpiore.exe、explorer等與IE的程序IEXPLORE.EXE很想的名 字或用一些rundll32之類的好像是系統文件的名字,但木馬的本質就是要與遠程的計算機通訊,只要通訊就會有連接。如下所示:正常連接是 IEXPLORE.EXE發起的,而非正常連接是木馬程序explorer發起的。

  

  一般的防火牆都有應用程序訪問網路的許可權設置,如圖8所示,在防火牆的這類選項中將不允許訪問網路的應用程序選擇X,即不允許訪問網路。

  在寫這篇文章之前筆者中了一個反彈型木馬,就是explorer程序向外連接,用了好幾個查毒軟體也沒有殺掉,當時就先用天網放火牆阻止它訪問網路,然後手工費了很大的勁才清除掉。可惜沒有做截圖。沒有勇氣為了寫這篇文章再犧牲一把了。

  4、用Tcpview結束一個連接

  當你用Tcpview觀察哪個連接有可能是不正常的連接,可在Tcpview中直接滑鼠右鍵點擊該連接,選擇End Process即可結束該連接。

  四、掃描

  談起掃描又是個大話題了,有埠掃描(Superscan)、漏洞掃描(X-scan)等,關於掃描的話題以後再論,本文只對一般用戶簡單說一下在線 安全檢測。如果你按上面的說得作了相應的安全措施,就可以在網上找個在線測試安全的網站測試一下你目前系統的安全情況,如到下面網站:

  1、千禧在線--在線檢測

  2、藍盾在線檢測

  3、天網安全在線

  4、諾頓在線安全檢測

  說明一點,測試機器時開了21、23、80埠,但這都是ADSL的服務埠,MODEM沒有提供修改和關閉的地方,不過沒關係,只要把密碼設的複雜點就行了。

  五、震蕩波

  如果你按上述關閉了445埠或者開啟了放火牆那就不會受到震蕩波及類似的病毒騷擾了,關於震蕩波病毒的文章太多了,此處就不多談。只要做好了安全防護,不管是震蕩大波還是衝擊小波只能在你的計算機門前掠過而奈何不了你。

  六、後記

  關於計算機的安全還有很多要設置,但對於一般用戶來說,太多的安全設置就等於沒有了安全,因為即使對於專業從事計算機安全的人員對於安全的設置也不是 件容易的事,何況對於對計算機的知識還不夠的一般用戶。如果要作很多設置才能保證安全,那肯定就有很多人不做了。對一般用戶個人的建議是力所能及的事一定 要做,比如:

  1、上網時一定要安裝防病毒軟體並及時升級。

  2、至少安裝一個防火牆,ADSL用戶最好用路由方式上網,改掉默認密碼。

  3、經常打補丁,Windows用戶最好將系統設為自動升級。

  4、自己要做的就是用Tcpview 常常看看連接,防止反彈型木馬。常常看看,時間長了也許就看成專家了。

  5、Udp協議是不可靠傳輸,沒有狀態,從Tcpview中很難看出它是不是在傳輸數據,感興趣的朋友可以用iris、sniffer這類的協議分析工具看看是不是有Udp的數據。關於這個話題以後再聊。

  6、本文題目起的很大,但寫起來又覺得很多問題都是別人說了再說的,也就沒有深談。

  道高一尺,魔高一丈。網路安全將是一個永恆的話題,沒有絕對的安全,但有了防範意識總比敞開了大門還不知道好吧。

3

主題

196

帖子

42

積分

貝殼新手上路

Rank: 2

積分
42
沙發
evan75 發表於 2007-3-31 12:45 | 只看該作者
說的很好,可惜沒圖解,有的地方看不明白。謝謝分享
回復 支持 反對

使用道具 舉報

61

主題

429

帖子

136

積分

貝殼網友一級

新新移民(六級)

Rank: 3Rank: 3

積分
136
3
fzz200318 發表於 2007-4-1 14:10 | 只看該作者
不錯的文章,可惜沒有圖.
根據文章內容看,原文是應該有圖的,轉貼到"可親"時,因為圖受到了限制,不能貼上.

樓主是不是可以告訴一下轉貼的來源?
讓有興趣的朋友們可以到原貼出處,參考插圖仔細學習體會
Truly great friends are hard to find, difficult to leave, and impossible to forget.
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 註冊

本版積分規則

關於本站 | 隱私權政策 | 免責條款 | 版權聲明 | 聯絡我們

Copyright © 2001-2013 海外華人中文門戶:倍可親 (http://big5.backchina.com) All Rights Reserved.

程序系統基於 Discuz! X3.1 商業版 優化 Discuz! © 2001-2013 Comsenz Inc.

本站時間採用京港台時間 GMT+8, 2025-7-28 11:51

快速回復 返回頂部 返回列表