官术网_书友最值得收藏!

1.4 認識端口

端口(Port)可以認為是計算機與外界通信交流的出口。其中硬件領域的端口又稱接口,如USB端口、串行端口等。軟件領域的端口一般是指網絡中面向連接服務和無連接服務的通信協議端口,是一種抽象的軟件結構,包括一些數據結構和I/O(輸入/輸出)緩沖區。

1.4.1 端口的分類

端口是傳輸層的內容,是面向連接的,對應著網絡上的一些常見服務。這些常見的服務可分為使用TCP端口(面向連接,如打電話)和使用UDP端口(無連接,如寫信)兩種。

在網絡中,可以被命名和尋址的通信端口是一種可分配資源。由網絡OSI(Open System Interconnection Reference Model,開放系統互連參考模型)協議可知,傳輸層與網絡層的區別是傳輸層提供進程通信能力,網絡通信的最終地址不僅包括主機地址,還包括可描述進程的某種標識。因此,當應用程序(調入內存運行后一般就稱為進程)通過系統調用與某端口建立連接(Binding,綁定)之后,傳輸層傳給該端口的數據都被相應進程所接收,相應進程發給傳輸層的數據都從該端口輸出。

在網絡技術中,端口大致有兩種意思:一是物理意義上的商品,如集線器、交換機、路由器等用于連接其他網絡設備的接口;二是邏輯意義上的端口,一般指TCP/IP協議中的端口,范圍為0~65535,如瀏覽網頁服務的80號端口,用于FTP服務的21號端口等。

邏輯意義上的端口有多種分類標準,常見的分類標準有如下兩種。

1.按端口號分布劃分

按端口號分布可以分為公認端口、注冊端口、以及動態和/或私有端口等。服務器常見應用端口如表1.4.1-1所示。

表1.4.1-1 服務器常見應用端口

(1)公認端口

公認端口包括的端口號從0到1023,它們緊密綁定于一些服務。通常這些端口的通信明確表明了某種服務的協議,比如80號端口分配給HTTP服務、21號端口分配給FTP服務等。

(2)注冊端口

注冊端口包括的端口號為1024~49151。它們松散地綁定于一些服務。也就是說有許多服務綁定于這些端口,這些端口同樣用于許多其他目的,比如許多系統處理動態端口從1024左右開始。

(3)動態和/或私有端口

動態和/或私有端口包括的端口號從49152到65535。理論上,不應為服務分配這些端口。但是一些木馬和病毒喜歡這樣的端口,因為這些端口不易引起人們的注意,從而很容易屏蔽。

2.按所提供的服務方式劃分

根據所提供的服務方式,端口又可分為TCP端口和UDP端口兩種。一般直接與接收方進行的連接方式,大多采用TCP。只是把信息發布到網上而不去關心信息是否到達(即“無連接方式”),則大多采用UDP。

使用TCP協議的常見端口主要有如下幾種。

(1)FTP協議端口

FTP協議用于定義文件傳輸協議,使用21號端口。若計算機打開FTP服務,就意味著啟動了文件傳輸服務,下載文件和上傳主頁都要用到FTP服務。

(2)Telnet協議端口

一種用于遠程登錄的端口,用戶可以自己的身份遠程連接到計算機上,通過這種端口可提供一種基于DOS模式的通信服務。如支持純字符界面BBS的服務器會將23號端口打開,以提供對外服務。

(3)SMTP協議端口

現在很多郵件服務器都使用這個簡單郵件傳送協議來發送郵件。如常見免費郵件服務中使用的就是此郵件服務端口,所以在電子郵件設置中經常會看到有SMTP端口設置欄,服務器開放的是25號端口。

(4)POP3協議端口

POP3協議用于接收郵件,通常使用110號端口。只要有相應使用POP3協議的程序(如Outlook等),就可以直接使用郵件程序接收郵件(如果是使用126郵箱的用戶,就沒有必要先進入126網站,再進入自己的郵箱來收信)。

使用UDP協議的常見端口主要有如下幾種。

(1)HTTP協議端口

這是用戶使用最多的協議,也即“超文本傳輸協議”。當上網瀏覽網頁時,就要在提供網頁資源的計算機上打開80號端口以提供服務。通常的“WWW服務”、“Web服務器”等使用的就是這個端口。

(2)DNS協議端口

DNS用于域名解析服務,這種服務在Windows NT系統中用得最多。Internet上的每一臺計算機都有一個網絡地址與之對應,這個地址就是IP地址,它以純數字形式表示。但由于這種表示方法不便于記憶,于是就出現了域名,訪問計算機時只需要知道域名即可,域名和IP地址之間的變換由DNS服務器來完成(DNS用的是53號端口)。

(3)SNMP協議端口

簡單網絡管理協議,用來管理網絡設備,使用161號端口。

(4)QQ協議端口

QQ程序既提供服務又接收服務,使用無連接協議,即UDP協議。QQ服務器使用8000號端口偵聽是否有信息到來,客戶端使用4000號端口向外發送信息。

1.4.2 查看端口

為了查找目標主機上開放了哪些端口,可以使用某些掃描工具對目標主機一定范圍內的端口進行掃描。若掌握目標主機上的端口開放情況,黑客可能會進一步對目標主機進行攻擊。

在Windows系統中,可以使用netstat命令查看端口。在“命令提示符”窗口中運行“netstat -a -n”命令,即可看到以數字形式顯示的TCP和UDP連接的端口號及其狀態,具體步驟如下。

步驟1:按Alt+R組合鍵打開運行窗口,在文本框中輸入“cmd”命令,單擊“確定”按鈕,如圖1.4.2-1所示。

圖1.4.2-1

步驟2:打開命令提示符窗口后輸入“netstat -a -n”命令,查看TCP和UDP連接的端口號及其狀態,如圖1.4.2-2所示。

圖1.4.2-2

如果攻擊者使用掃描工具對目標主機進行掃描,即可獲取目標計算機打開的端口情況,并了解目標計算機提供了哪些服務。根據這些信息,攻擊者即可對目標主機有一個初步了解。

如果在管理員不知情的情況下打開了太多端口,則可能出現兩種情況:一種是提供了服務,而管理者沒有注意到,如安裝IIS服務時軟件就會自動地增加很多服務;另一種是服務器被攻擊者植入了木馬程序,通過特殊的端口進行通信。這兩種情況都比較危險,管理員不了解服務器提供的服務,就會減小系統的安全系數。

主站蜘蛛池模板: 黎平县| 郓城县| 新晃| 古交市| 七台河市| 全州县| 葵青区| 广河县| 广灵县| 巧家县| 丹棱县| 天柱县| 常宁市| 新邵县| 延津县| 通城县| 吉水县| 玉环县| 乡城县| 虎林市| 长白| 郑州市| 靖州| 鄱阳县| 商洛市| 柘荣县| 保亭| 时尚| 长汀县| 海安县| 汉川市| 富阳市| 嘉鱼县| 蚌埠市| 新密市| 琼海市| 墨脱县| 会宁县| 桐城市| 明水县| 镶黄旗|