有過一些黑客攻擊方面知識的讀者都會知道,其實那些所謂的黑客并不是像人們想象那樣從天而降,而是實實在在從您的計算機"大門"中自由出入。計算機的"大門"就是我們平常所說的"端口",它包括計算機的物理端口,如計算機的串口、并口、輸入/輸出設備以及適配器接口等(這些端口都是可見的),但更多的是不可見的軟件端口,在本文中所介紹的都是指"軟件端口",但為了說明方便,仍統稱為"端口"。本文僅就端口的基礎知識進行介紹,
一、端口介紹
隨著計算機網絡技術的發展,原來物理上的接口(如鍵盤、鼠標、網卡、顯示卡等輸入/輸出接口)已不能滿足網絡通信的要求,TCP/ip協議作為網絡通信的標準協議就解決了這個通信難題。TCP/IP協議集成到操作系統的內核中,這就相當于在操作系統中引入了一種新的輸入/輸出接口技術,因為在TCP/IP協議中引入了一種稱之為"Socket(套接字)"應用程序接口。有了這樣一種接口技術,一臺計算機就可以通過軟件的方式與任何一臺具有Socket接口的計算機進行通信。端口在計算機編程上也就是"Socket接口"。
有了這些端口后,這些端口又是如何工作呢?例如一臺服務器為什么可以同時是Web服務器,也可以是FTP服務器,還可以是郵件服務器等等呢?其中一個很重要的原因是各種服務采用不同的端口分別提供不同的服務,比如:通常TCP/IP協議規定Web采用80號端口,FTP采用21號端口等,而郵件服務器是采用25號端口。這樣,通過不同端口,計算機就可以與外界進行互不干擾的通信。
據專家們分析,服務器端口數最大可以有65535個,但是實際上常用的端口才幾十個,由此可以看出未定義的端口相當多。這是那么多黑客程序都可以采用某種方法,定義出一個非凡的端口來達到入侵的目的的原因所在。為了定義出這個端口,就要依靠某種程序在計算機啟動之前自動加載到內存,強行控制計算機打開那個非凡的端口。這個程序就是"后門"程序,這些后門程序就是常說的木馬程序。簡單的說,這些木馬程序在入侵前是先通過某種手段在一臺個人計算機中植入一個程序,打開某個(些)特定的端口,俗稱"后門"(BackDoor),使這臺計算機變成一臺開放性極高(用戶擁有極高權限)的FTP服務器,然后從后門就可以達到侵入的目的。
二、端口的分類
端口的分類根據其參考對象不同有不同劃分方法,假如從端口的性質來分,通常可以分為以下三類:
?。?)公認端口(Well Known Ports):這類端口也常稱之為"常用端口"。這類端口的端口號從0到1024,它們緊密綁定于一些特定的服務。通常這些端口的通信明確表明了某種服務的協議,這種端口是不可再重新定義它的作用對象。例如:80端口實際上總是HTTP通信所使用的,而23號端口則是Telnet服務專用的。這些端口通常不會像木馬這樣的黑客程序利用。為了使大家對這些常用端口多一些熟悉,在本章后面將具體把這些端口所對面應的服務進行列表,供各位理解和參考。
?。?) 注冊端口(Registered Ports):端口號從1025到49151。它們松散地綁定于一些服務。也是說有許多服務綁定于這些端口,這些端口同樣用于許多其他目的。這些端口多數沒有明確的定義服務對象,不同程序可根據實際需要自己定義,如后面要介紹的遠程控制軟件和木馬程序中都會有這些端口的定義的。記住這些常見的程序端口在木馬程序的防護和查殺上是非常有必要的。常見木馬所使用的端口在后面將有具體的列表。
?。?) 動態和/或私有端口(Dynamic and/or PRivate Ports):端口號從49152到65535。理論上,不應把常用服務分配在這些端口上。實際上,有些較為非凡的程序,非凡是一些木馬程序就非常喜歡用這些端口,因為這些端口經常不被引起注重,輕易隱蔽。
假如根據所提供的服務方式的不同,端口又可分為"TCP協議端口"和"UDP協議端口" 兩種。因為計算機之間相互通信一般采用這兩種通信協議。前面所介紹的"連接方式"是一種直接與接收方進行的連接,發送信息以后,可以確認信息是否到達,這種方式大多采用TCP協議;另一種是不是直接與接收方進行連接,只管把信息放在網上發出去,而不管信息是否到達,也就是前面所介紹的"無連接方式"。這種方式大多采用UDP協議,IP協議也是一種無連接方式。對應使用以上這兩種通信協議的服務所提供的端口,也就分為"TCP協議端口"和"UDP協議端口 "。
使用TCP協議的常見端口主要有以下幾種:
新聞熱點
疑難解答