设计之家 > 教程 > 網頁教程 > 建站知識 > 網絡安全 >

端口、木馬、安全、掃描應用知識

作者:佚名 來源:網絡 時間:2007-08-20

  看到這個題目你也許有些奇怪,怎么把這幾個詞放在了一起,其實談起端口和木馬都是老生常談了,但即使是常談還有很多人的計算機被“沖擊波”沖過之后又被“震蕩波”狠狠地震了一下,看來很有必要再談談老話題,免得再被什么波溫柔地掃過。其實說這些最終的目的就是為了保證計算機的上網安全。

  一、 端口
 
  一)、端口的一般含義

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

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

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

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

  二)、查看端口的方法

  1、命令方式

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

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

  b、在dos命令界面,鍵入netstat -na,Proto代表協議,有TCP和UDP兩種協議。Local Address代表本機地址,該地址冒號后的數字就是開放的端口號。Foreign ress代表遠程地址,如果和其它機器正在通信,顯示的就是對方的地址,State代表狀態,顯示的

  LISTENING表示處于偵聽狀態,就是說該端口是開放的,等待連接,但還沒有被連接。就像你房子的門已經敞開了,但此時還沒有人進來。以第一行為例看看它的意思。

  TCP 0.0.0.0:135 0.0.0.0:0 LISTENING

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

  2、用TCPView工具

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

  第一次顯示時字體有些小,在'Options'->'Font'中將字號調大即可。TCPView顯示的數據是動態的。Local Address顯示的就是本機開放的哪個端口(:號后面的數字),TCPView可以看出哪個端口是由哪個程序發起的。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端口是開放的,在命令狀態運行:

  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網站。如果你訪問的網站有許多內容比如訪問[url]www.yesky.com[/url],那會發現一個地址有許多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

  七)、要點

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

  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下不行,但可以關閉不必要的端口。

  1、關閉137、138、139、445端口

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

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

  禁用該設備重新啟動后即可。

  2、關閉123端口

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

  3、關閉1900端口

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

  關閉1900端口的方法:停止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發起的。

  一般的防火墻都有應用程序訪問網絡的權限設置,在防火墻的這類選項中將不允許訪問網絡的應用程序選擇X,即不允許訪問網絡。

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

  4、用Tcpview結束一個連接

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

  四、掃描

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

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

  2、藍盾在線檢測

  3、天網安全在線

  4、諾頓在線安全檢測

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

  五、震蕩波

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

  六、后記

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

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

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

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

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

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

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

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

标签:應用知識

相關文章:

推薦設計

最新文章