查看全部128種考試
軟件水平考試
 考試動態(tài) 報考指南 歷年真題 模擬試題 復習資料 心得技巧 專業(yè)英語 技術(shù)文章 軟考論壇 考試用書
 程序員 軟件設(shè)計師 網(wǎng)絡(luò)管理員 網(wǎng)絡(luò)工程師 系統(tǒng)分析師 數(shù)據(jù)庫系統(tǒng)工程師
1
2
3
4
5
6
7
8
9
10
admin  
【字體: 深入了解計算機端口
深入了解計算機端口

    有過一些黑客攻擊方面知識的讀者都會知道,其實那些所謂的黑客并不是像人們想象那樣從天而降,而是實實在在從您的計算機"大門"中自由出入。計算機的"大門"就是我們平常所說的"端口",它包括計算機的物理端口,如計算機的串口、并口、輸入/輸出設(shè)備以及適配器接口等(這些端口都是可見的),但更多的是不可見的軟件端口,在本文中所介紹的都是指"軟件端口",但為了說明方便,仍統(tǒng)稱為"端口"。本文僅就端口的基礎(chǔ)知識進行介紹,

  一、端口介紹

    隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,原來物理上的接口(如鍵盤、鼠標、網(wǎng)卡、顯示卡等輸入/輸出接口)已不能滿足網(wǎng)絡(luò)通信的要求,TCP/IP協(xié)議作為網(wǎng)絡(luò)通信的標準協(xié)議就解決了這個通信難題。TCP/IP協(xié)議集成到操作系統(tǒng)的內(nèi)核中,這就相當于在操作系統(tǒng)中引入了一種新的輸入/輸出接口技術(shù),因為在TCP/IP協(xié)議中引入了一種稱之為"Socket(套接字)"應用程序接口。有了這樣一種接口技術(shù),一臺計算機就可以通過軟件的方式與任何一臺具有Socket接口的計算機進行通信。端口在計算機編程上也就是"Socket接口"。

  有了這些端口后,這些端口又是如何工作呢?例如一臺服務器為什么可以同時是Web服務器,也可以是FTP服務器,還可以是郵件服務器等等呢?其中一個很重要的原因是各種服務采用不同的端口分別提供不同的服務,比如:通常TCP/IP協(xié)議規(guī)定Web采用80號端口,F(xiàn)TP采用21號端口等,而郵件服務器是采用25號端口。這樣,通過不同端口,計算機就可以與外界進行互不干擾的通信。

  據(jù)專家們分析,服務器端口數(shù)最大可以有65535個,但是實際上常用的端口才幾十個,由此可以看出未定義的端口相當多。這是那么多黑客程序都可以采用某種方法,定義出一個特殊的端口來達到入侵的目的的原因所在。為了定義出這個端口,就要依靠某種程序在計算機啟動之前自動加載到內(nèi)存,強行控制計算機打開那個特殊的端口。這個程序就是"后門"程序,這些后門程序就是常說的木馬程序。簡單的說,這些木馬程序在入侵前是先通過某種手段在一臺個人計算機中植入一個程序,打開某個(些)特定的端口,俗稱"后門"(BackDoor),使這臺計算機變成一臺開放性極高(用戶擁有極高權(quán)限)的FTP服務器,然后從后門就可以達到侵入的目的。

   
二、端口的分類

    端口的分類根據(jù)其參考對象不同有不同劃分方法,如果從端口的性質(zhì)來分,通?梢苑譃橐韵氯悾

 。1)公認端口(Well Known Ports):這類端口也常稱之為"常用端口"。這類端口的端口號從0到1024,它們緊密綁定于一些特定的服務。通常這些端口的通信明確表明了某種服務的協(xié)議,這種端口是不可再重新定義它的作用對象。例如:80端口實際上總是HTTP通信所使用的,而23號端口則是Telnet服務專用的。這些端口通常不會像木馬這樣的黑客程序利用。為了使大家對這些常用端口多一些認識,在本章后面將詳細把這些端口所對面應的服務進行列表,供各位理解和參考。

 。2) 注冊端口(Registered Ports):端口號從1025到49151。它們松散地綁定于一些服務。也是說有許多服務綁定于這些端口,這些端口同樣用于許多其他目的。這些端口多數(shù)沒有明確的定義服務對象,不同程序可根據(jù)實際需要自己定義,如后面要介紹的遠程控制軟件和木馬程序中都會有這些端口的定義的。記住這些常見的程序端口在木馬程序的防護和查殺上是非常有必要的。常見木馬所使用的端口在后面將有詳細的列表。

  (3) 動態(tài)和/或私有端口(Dynamic and/or Private Ports):端口號從49152到65535。理論上,不應把常用服務分配在這些端口上。實際上,有些較為特殊的程序,特別是一些木馬程序就非常喜歡用這些端口,因為這些端口常常不被引起注意,容易隱蔽。
  如果根據(jù)所提供的服務方式的不同,端口又可分為"TCP協(xié)議端口"和"UDP協(xié)議端口" 兩種。因為計算機之間相互通信一般采用這兩種通信協(xié)議。前面所介紹的"連接方式"是一種直接與接收方進行的連接,發(fā)送信息以后,可以確認信息是否到達,這種方式大多采用TCP協(xié)議;另一種是不是直接與接收方進行連接,只管把信息放在網(wǎng)上發(fā)出去,而不管信息是否到達,也就是前面所介紹的"無連接方式"。這種方式大多采用UDP協(xié)議,IP協(xié)議也是一種無連接方式。對應使用以上這兩種通信協(xié)議的服務所提供的端口,也就分為"TCP協(xié)議端口"和"UDP協(xié)議端口 "。

  使用TCP協(xié)議的常見端口主要有以下幾種:

  (1) FTP:定義了文件傳輸協(xié)議,使用21端口。常說某某計算機開了FTP服務便是啟動了文件傳輸服務。下載文件,上傳主頁,都要用到FTP服務。

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

 。3) SMTP:定義了簡單郵件傳送協(xié)議,現(xiàn)在很多郵件服務器都用的是這個協(xié)議,用于發(fā)送郵件。如常見的免費郵件服務中用的就是這個郵件服務端口,所以在電子郵件設(shè)置中?吹接羞@么SMTP端口設(shè)置這個欄,服務器開放的是25號端口。

  (4) POP3:它是和SMTP對應,POP3用于接收郵件。通常情況下,POP3協(xié)議所用的是110端口。也是說,只要你有相應的使用POP3協(xié)議的程序(例如Foxmail或Outlook),就可以不以Web方式登陸進郵箱界面,直接用郵件程序就可以收到郵件(如是163郵箱就沒有必要先進入網(wǎng)易網(wǎng)站,再進入自己的郵箱來收信)。

  使用UDP協(xié)議端口常見的有:

  (1) HTTP:這是大家用得最多的協(xié)議,它就是常說的"超文本傳輸協(xié)議"。上網(wǎng)瀏覽網(wǎng)頁時,就得在提供網(wǎng)頁資源的計算機上打開80號端口以提供服務。常說"WWW服務"、"Web服務器"用的就是這個端口。

。2) DNS:用于域名解析服務,這種服務在Windows NT系統(tǒng)中用得最多的。因特網(wǎng)上的每一臺計算機都有一個網(wǎng)絡(luò)地址與之對應,這個地址是常說的IP地址,它以純數(shù)字+"."的形式表示。然而這卻不便記憶,于是出現(xiàn)了域名,訪問計算機的時候只需要知道域名,域名和IP地址之間的變換由DNS服務器來完成。DNS用的是53號端口。

。3) SNMP:簡單網(wǎng)絡(luò)管理協(xié)議,使用161號端口,是用來管理網(wǎng)絡(luò)設(shè)備的。由于網(wǎng)絡(luò)設(shè)備很多,無連接的服務就體現(xiàn)出其優(yōu)勢。

 (4) OICQ:OICQ程序既接受服務,又提供服務,這樣兩個聊天的人才是平等的。OICQ用的是無連接的協(xié)議,也是說它用的是UDP協(xié)議。OICQ服務器是使用8000號端口,偵聽是否有信息到來,客戶端使用4000號端口,向外發(fā)送信息。如果上述兩個端口正在使用(有很多人同時和幾個好友聊天),就順序往上加。

  在計算機的6萬多個端口,通常把端口號為1024以內(nèi)的稱之為常用端口,這些常用端口所對應的服務通常情況下是固定的。表1所列的都是服務器默認的端口,不允許改變,一般通信過程都主要用到這些端口。

  表1

服務類型

默認端口

服務類型

默認端口

Echo

7

Daytime

13

FTP

21

Telnet

23

SMTP

25

Time

37

Whois

43

DNS

53

Gopher

70

Finger

79

WWW

80

POP3

110

NNTP

119

IRC

194

  另外代理服務器常用以下端口:

  (1). HTTP協(xié)議代理服務器常用端口號:80/8080/3128/8081/9080

 。2). SOCKS代理協(xié)議服務器常用端口號:1080

 。3). FTP協(xié)議代理服務器常用端口號:21

 。4). Telnet協(xié)議代理服務器常用端口:23像木馬之類的黑客程序,就是通過對端口的入侵來實現(xiàn)其目的的。在端口的利用上,黑客程序通常有兩種方式,那就是"端口偵聽"和"端口掃描"。

  "端口偵聽"與"端口掃描"是黑客攻擊和防護中經(jīng)常要用到的兩種端口技術(shù),在黑客攻擊中利用它們可以準確地尋找攻擊的目標,獲取有用信息,在個人及網(wǎng)絡(luò)防護方面通過這種端口技術(shù)的應用可以及時發(fā)現(xiàn)黑客的攻擊及一些安全漏洞。下面首先簡單介紹一下這兩種端口技術(shù)的異同。

  "端口偵聽"是利用某種程序?qū)δ繕擞嬎銠C的端口進行監(jiān)視,查看目標計算機上有哪能些端口是空閑、可以利用的。通過偵聽還可以捕獲別人有用的信息,這主要是用在黑客軟件中,但對于個人來說也是非常有用的,可以用偵聽程序來保護自己的計算機,在自己計算機的選定端口進行監(jiān)視,這樣可以發(fā)現(xiàn)并攔截一些黑客的攻擊。也可以偵聽別人計算機的指定端口,看是否空閑,以便入侵。

  "端口掃描"(port scanning)是通過連接到目標系統(tǒng)的TCP協(xié)議或UDP協(xié)議端口,來確定什么服務正在運行,然后獲取相應的用戶信息,F(xiàn)在有許多人把"端口偵聽"與 "端口掃描"混為一談,根本分不清什么樣的情況下要用偵聽技術(shù),什么樣的情況下要用掃描技術(shù)。不過,現(xiàn)在的這類軟件也似乎對這兩種技術(shù)有點模糊了,有的干脆把兩個功能都集成在一塊。

  "端口偵聽"與"端口掃描"有相似之處,也有區(qū)別的地方,相似的地方是都可以對目標計算機進行監(jiān)視,區(qū)別的地方是"端口偵聽"屬于一種被動的過程,等待別人的連接的出現(xiàn),通過對方的連接才能偵聽到需要的信息。在個人應用中,如果在設(shè)置了當偵聽到有異常連接立即向用戶報告這個功能時,就可以有效地偵聽黑客的連接企圖,及時把駐留在本機上的木馬程序清除掉。這個偵聽程序一般是安裝在目標計算機上。用在黑客中的"端口偵聽"通常是黑客程序駐留在服務器端等待服務器端在進行正;顒訒r捕獲黑客需要的信息,然后通過UDP協(xié)議無連接方式發(fā)出去。而"端口掃描"則是一種主動過程,它是主動對目標計算機的選定端口進行掃描,實時地發(fā)現(xiàn)所選定端口的所有活動(特別是對一些網(wǎng)上活動)。掃描程序一般是安裝在客戶端,但是它與服務器端的連接也主要是通過無連接方式的UDP協(xié)議連接進行。

  在網(wǎng)絡(luò)中,當信息進行傳播的時候,可以利用工具,將網(wǎng)絡(luò)接口設(shè)置在偵聽的模式,便可將網(wǎng)絡(luò)中正在傳播的信息截獲或者捕獲到,從而進行攻擊。端口偵聽在網(wǎng)絡(luò)中的任何一個位置模式下都可實施進行,而黑客一般都是利用端口偵聽來截取用戶口令。

  四、端口偵聽原理

    以太網(wǎng)(Ethernet)協(xié)議的工作方式是將要發(fā)送的數(shù)據(jù)包發(fā)往連接在一起的所有計算機。在包頭中包括有應該接收數(shù)據(jù)包的計算機的正確地址,因為只有與數(shù)據(jù)包中目標地址一致的那臺計算機才能接收到信息包。但是當計算機工作在偵聽模式下,不管數(shù)據(jù)包中的目標物理地址是什么,計算機都將可以接收到。當同一網(wǎng)絡(luò)中的兩臺計算機通信的時候,源計算機將寫有目的計算機地址的數(shù)據(jù)包直接發(fā)向目的計算機,或者當網(wǎng)絡(luò)中的一臺計算機同外界的計算機通信時,源計算機將寫有目的計算機IP地址的數(shù)據(jù)包發(fā)向網(wǎng)關(guān)。但這種數(shù)據(jù)包并不能在協(xié)議棧的高層直接發(fā)送出去,要發(fā)送的數(shù)據(jù)包必須從 TCP/IP協(xié)議的IP協(xié)議層交給網(wǎng)絡(luò)接口--數(shù)據(jù)鏈路層。網(wǎng)絡(luò)接口不會識別IP地址的,在網(wǎng)絡(luò)接口中,由IP協(xié)議層來的帶有IP地址的數(shù)據(jù)包又增加了一部分以太網(wǎng)的幀頭信息。在幀頭中,有兩個域分別為只有網(wǎng)絡(luò)接口才能識別的源計算機和目的計算機的物理地址,這是一個48位的地址,這個48位的地址是與 IP地址相對應的。換句話說,一個IP地址也會對應一個物理地址。對于作為網(wǎng)關(guān)的計算機,由于它連接了多個網(wǎng)絡(luò),它也就同時具備有很多個IP地址,在每個網(wǎng)絡(luò)中它都有一個。而發(fā)向網(wǎng)絡(luò)外的幀中繼攜帶的是網(wǎng)關(guān)的物理地址。

  以太網(wǎng)中填寫了物理地址的幀從網(wǎng)絡(luò)端口中(或者從網(wǎng)關(guān)端口中)發(fā)送出去,傳送到物理的線路上。如果局域網(wǎng)是由一條粗同軸電纜或細同軸電纜連接成的,那么數(shù)字信號在電纜上傳輸信號就能夠到達線路上的每一臺計算機。再當使用集線器的時候,發(fā)送出去的信號到達集線器,由集線器再發(fā)向連接在集線器上的每一條線路。這樣在物理線路上傳輸?shù)臄?shù)字信號也就能到達連接在集線器上的每個計算機了。當數(shù)字信號到達一臺計算機的網(wǎng)絡(luò)接口時,正常狀態(tài)下網(wǎng)絡(luò)接口對讀入數(shù)據(jù)幀進行檢查,如數(shù)據(jù)幀中攜帶的物理地址是自己的或者物理地址是廣播地址,那么就會將數(shù)據(jù)幀交給IP協(xié)議層軟件。對于每個到達網(wǎng)絡(luò)接口的數(shù)據(jù)幀都要進行這個過程的。但是當計算機工作在偵聽模式下,所有的數(shù)據(jù)幀都將被交給上層協(xié)議軟件處理。

  當連接在同一條電纜或集線器上的計算機被邏輯地分為幾個子網(wǎng)的時候,那么要是有一臺計算機處于偵聽模式,它可以接收到發(fā)向與自己不在同一個子網(wǎng)(使用了不同的掩碼、IP地址和網(wǎng)關(guān))的計算機的數(shù)據(jù)包,在同一個物理信道上傳輸?shù)乃行畔⒍伎梢员唤邮盏健?/FONT>

  在UNIX系統(tǒng)上,當擁有超級權(quán)限的用戶要想使自己所控制的計算機進入偵聽模式,只需要向Interface (網(wǎng)絡(luò)接口)發(fā)送I/O控制命令,就可以使計算機設(shè)置成偵聽模式了。而在Windows 9x的系統(tǒng)中則不論用戶是否有權(quán)限都將可以通過直接運行偵聽工具就可以實現(xiàn)。

  在端口處于偵聽時,常常要保存大量的信息(也包含很多的垃圾信息),并將對收集的信息進行大量的整理,這樣就會使正在偵聽的計算機對其他用戶的請求響應變的很慢。同時偵聽程序在運行的時候需要消耗大量的處理器時間,如果在這時就詳細的分析包中的內(nèi)容,許多包就會來不及接收而被漏走。所以偵聽程序很多時候就會將偵聽得到的包存放在文件中等待以后分析。分析偵聽到的數(shù)據(jù)包是很頭疼的事情,因為網(wǎng)絡(luò)中的數(shù)據(jù)包都非常之復雜。兩臺計算機之間連續(xù)發(fā)送和接收數(shù)據(jù)包,在偵聽到的結(jié)果中必然會加一些別的計算機交互的數(shù)據(jù)包。偵聽程序?qū)⑼籘CP協(xié)議會話的包整理到一起就相當不容易,如果還期望將用戶詳細信息整理出來就需要根據(jù)協(xié)議對包進行大量的分析。

  現(xiàn)在網(wǎng)絡(luò)中所使用的協(xié)議都是較早前設(shè)計的,許多協(xié)議的實現(xiàn)都是基于一種非常友好的,通信的雙方充分信任的基礎(chǔ)。在通常的網(wǎng)絡(luò)環(huán)境之下,用戶的信息包括口令都是以明文的方式在網(wǎng)上傳輸?shù),因此進行端口偵聽從而獲得用戶信息并不是一件難點事情,只要掌握有初步的 TCP/IP協(xié)議知識就可以輕松的偵聽到想要的信息的。

  五、端口掃描原理

   "端口掃描"通常指用同一信息對目標計算機的所有所需掃描的端口進行發(fā)送,然后根據(jù)返回端口狀態(tài)來分析目標計算機的端口是否打開、是否可用。"端口掃描"行為的一個重要特征是:在短時期內(nèi)有很多來自相同的信源地址傳向不同的目的地端口的包。

  對于用端口掃描進行攻擊的人來說,攻擊者總是可以做到在獲得掃描結(jié)果的同時,使自己很難被發(fā)現(xiàn)或者說很難被逆向跟蹤。為了隱藏攻擊,攻擊者可以慢慢地進行掃描。除非目標系統(tǒng)通常閑著(這樣對一個沒有l(wèi)isten端口的數(shù)據(jù)包都會引起管理員的注意),有很大時間間隔的端口掃描是很難被識別的。隱藏源地址的方法是發(fā)送大量的欺騙性的端口掃描包(1000個),其中只有一個是從真正的源地址來的。這樣,即使全部包(1000)都被察覺,被記錄下來,也沒有人知道哪個是真正的信源地址。能發(fā)現(xiàn)的僅僅是"曾經(jīng)被掃描過"。也正因為這樣那些黑客們才樂此不彼地繼續(xù)大量使用這種端口掃描技術(shù)來達到他們獲取目標計算機信息、并進行惡意攻擊。

  通常進行端口掃描的工具目前主要采用的是端口掃描軟件,也通稱之為"端口掃描器",端口掃描可以為提供三個用途:

 。1)識別目標系統(tǒng)上正在運行的TCP協(xié)議和UDP協(xié)議服務。

 。2)識別目標系統(tǒng)的操作系統(tǒng)類型(Windows 9x, Windows NT,或UNIX,等)。
 

 。3)識別某個應用程序或某個特定服務的版本號。

  端口掃描器是一種自動檢測遠程或本地計算機安全性弱點的程序,通過使用掃描器你可不留痕跡的發(fā)現(xiàn)遠程服務器的各種TCP協(xié)議端口的分配及提供的服務,還可以得知它們所使用的軟件版本!這就能讓間接的了解到遠程計算機所存在的安全問題。

  端口掃描器通過選用遠程TCP/IP協(xié)議不同的端口的服務,記錄目標計算機端口給予的回答的方法,可以搜集到很多關(guān)于目標計算機的各種有用信息(比如:是否有端口在偵聽?是否允許匿名登陸?是否有可寫的FTP目錄,是否能用TELNET等。

  端口掃描器并不是一個直接攻擊網(wǎng)絡(luò)漏洞的程序,它僅僅能幫助發(fā)現(xiàn)目標機的某些內(nèi)在的弱點。一個好的掃描器還能對它得到的數(shù)據(jù)進行分析,幫助查找目標計算機的漏洞。但它不會提供一個系統(tǒng)的詳細步驟。

  端口掃描器在掃描過程中主要具有以下三個方面的能力:

 。1) 發(fā)現(xiàn)一個計算機或網(wǎng)絡(luò)的能力;
 
 。2) 一旦發(fā)現(xiàn)一臺計算機,就有發(fā)現(xiàn)目標計算機正在運行什么服務的能力;
 
  (3) 通過測試目標計算機上的這些服務,發(fā)現(xiàn)存在的漏洞的能力。

  編寫掃描器程序必須要很多TCP/IP協(xié)議程序編寫和C,Perl和或SHELL語言的知識。需要一些Socket編程的背景,一種在開發(fā)客戶/服務應用程序的方法。

  六、常用端口

    在計算機的6萬多個端口,通常把端口號為1024以內(nèi)的稱之為常用端口,這些常用端口所對應的服務通常情況下是固定的,所以了解這些常用端口在一定程序上是非常必要的,下表2列出了計算機的常用端口所對應的服務(注:在這列表中各項"="前面的數(shù)字為端口號,"= "后面的為相應端口服務。)。

[1] [2] [3] 下一頁

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索  
看了本文的網(wǎng)友還看了:
網(wǎng)友評論
昵 稱: *  評 分: 1分 2分 3分 4分 5分
標題:   匿名發(fā)表    (共有條評論)查看全部評論>>
版權(quán)聲明 -------------------------------------------------------------------------------------
  如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。
關(guān)于本站  網(wǎng)站聲明  廣告服務  聯(lián)系方式  付款方式  站內(nèi)導航  客服中心  友情鏈接  考試論壇  網(wǎng)站地圖
Copyright © 2004-2008 考試吧軟件水平考試網(wǎng) All Rights Reserved    
中國科學院研究生院權(quán)威支持(北京) 電 話:010-62168566 傳 真:010-62192699
百度大聯(lián)盟黃金認證  十佳網(wǎng)絡(luò)教育機構(gòu)  經(jīng)營許可證號:京ICP060677