新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 網(wǎng)絡(luò)端口掃描及對(duì)策研究

網(wǎng)絡(luò)端口掃描及對(duì)策研究

作者:武裝 北京機(jī)械工業(yè)學(xué)院網(wǎng)管中心 時(shí)間:2008-09-23 來(lái)源:電子技術(shù)應(yīng)用 收藏

摘要: 分析了的原理和常用方法,并提出相應(yīng)檢測(cè)、處理方法。

本文引用地址:http://m.butianyuan.cn/article/88274.htm

關(guān)鍵詞:    

   隨著在學(xué)校教學(xué)、科研、管理各個(gè)方面的應(yīng)用,用戶資源的要求日益迫切。上充斥著各種各樣的良性、惡性信息,其中端口信息最應(yīng)引起網(wǎng)絡(luò)管理人員和用戶的警覺(jué)和注意,因?yàn)橐粋€(gè)端口就是一個(gè)潛在的通信通道,也就是一個(gè)入侵通道。對(duì)目標(biāo)計(jì)算機(jī)進(jìn)行端口掃描,能得到許多有用的信息,同時(shí)也往往是一次入侵的前奏。最近流行的“沖擊波”病毒就是通過(guò)對(duì)主機(jī)135、4444端口掃描,利用RPC服務(wù)的漏洞進(jìn)一步對(duì)主機(jī)進(jìn)行攻擊。

  1 掃描器的基本工作原理

  進(jìn)行掃描的方法很多,可以手工進(jìn)行掃描,但主要是使用端口掃描軟件(掃描器)進(jìn)行。掃描器是一種自動(dòng)檢測(cè)遠(yuǎn)程或本地主機(jī)安全性弱點(diǎn)的程序,通過(guò)使用掃描器可以不留痕跡的發(fā)現(xiàn)遠(yuǎn)程服務(wù)器的各種TCP端口的分配及提供的服務(wù)和它們的軟件版本。這就能間接的或直觀的了解到遠(yuǎn)程主機(jī)所存在的安全問(wèn)題。 

  掃描器通過(guò)選用遠(yuǎn)程TCP/IP不同的端口的服務(wù),并記錄目標(biāo)給予的回答,通過(guò)這種方法,可以搜集到很多關(guān)于目標(biāo)主機(jī)的各種有用的信息(比如:是否能用匿名登陸,是否有可寫(xiě)的FTP目錄,是否能用TELNET,HTTPD是否用ROOT在運(yùn)行。) 

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

  掃描器應(yīng)該有三項(xiàng)功能:(1)發(fā)現(xiàn)一個(gè)主機(jī)或網(wǎng)絡(luò);(2)一旦發(fā)現(xiàn)一臺(tái)主機(jī),能發(fā)現(xiàn)正運(yùn)行的這臺(tái)主機(jī)在進(jìn)行何種服務(wù);(3)通過(guò)測(cè)試這些服務(wù),發(fā)現(xiàn)漏洞。

  2 常見(jiàn)的掃描技術(shù)

  常見(jiàn)的掃描方法有以下幾種;

  (1)TCP connect() 掃描 

  這是最基本的TCP掃描。操作系統(tǒng)提供的connect()系統(tǒng)調(diào)用,用來(lái)與每一個(gè)感興趣的目標(biāo)計(jì)算機(jī)的端口進(jìn)行連接。如果端口處于偵聽(tīng)狀態(tài),則connect()就能成功。否則,這個(gè)端口是不能用的,即沒(méi)有提供服務(wù)。這個(gè)技術(shù)的最大的優(yōu)點(diǎn)是,用戶不需要任何權(quán)限。系統(tǒng)中的任何用戶都有權(quán)利使用這個(gè)調(diào)用。另一個(gè)好處就是速度快。如果對(duì)每個(gè)目標(biāo)端口以線性的方式,使用單獨(dú)的connect()調(diào)用,將會(huì)花費(fèi)相當(dāng)長(zhǎng)的時(shí)間,用戶可以通過(guò)同時(shí)打開(kāi)多個(gè)套接字,從而加速掃描。使用非阻塞I/O允許設(shè)置一個(gè)低的時(shí)間用盡周期,同時(shí)觀察多個(gè)套接字。但這種方法的缺點(diǎn)是很容易被發(fā)覺(jué),并且被過(guò)濾掉。目標(biāo)計(jì)算機(jī)的logs文件會(huì)顯示一連串的連接和連接出錯(cuò)的服務(wù)消息,并且能很快地使它關(guān)閉。 

  (2)TCP SYN掃描 

  這種技術(shù)通常認(rèn)為是半開(kāi)放掃描,這是因?yàn)閽呙璩绦虿槐匾蜷_(kāi)一個(gè)完全的TCP連接。掃描程序發(fā)送的是一個(gè)SYN數(shù)據(jù)包,好象準(zhǔn)備打開(kāi)一個(gè)實(shí)際的連接并等待反應(yīng)一樣(參考TCP的三次握手建立一個(gè)TCP連接的過(guò)程)。一個(gè)SYN|ACK的返回信息表示端口處于偵聽(tīng)狀態(tài)。一個(gè)RST返回,表示端口沒(méi)有處于偵聽(tīng)?wèi)B(tài)。如果收到一個(gè)SYN|ACK,則掃描程序必須再發(fā)送一個(gè)RST信號(hào),來(lái)關(guān)閉這個(gè)連接過(guò)程。這種掃描技術(shù)的優(yōu)點(diǎn)在于一般不會(huì)在目標(biāo)計(jì)算機(jī)上留下記錄。但這種方法的缺點(diǎn)是,必須要有root權(quán)限才能建立自己的SYN數(shù)據(jù)包。 

  (3)TCP FIN 掃描

  有的時(shí)候有可能SYN掃描都不夠秘密。一些防火墻和包過(guò)濾器會(huì)對(duì)一些指定的端口進(jìn)行監(jiān)視,有的程序能檢測(cè)到這些掃描。相反,FIN數(shù)據(jù)包可能會(huì)順利通過(guò)。這種掃描方法的思想是關(guān)閉的端口會(huì)用適當(dāng)?shù)腞ST來(lái)回復(fù)FIN數(shù)據(jù)包。另一方面,打開(kāi)的端口會(huì)忽略對(duì)FIN數(shù)據(jù)包的回復(fù)。這種方法和系統(tǒng)的實(shí)現(xiàn)有一定的關(guān)系。如果有的系統(tǒng)不管端口是否打開(kāi),都回復(fù)RST,那么這種掃描方法就不適用了。但這種方法在區(qū)分Unix和NT時(shí)是十分有用的。 

  (4)IP段掃描 

  并不是直接發(fā)送TCP探測(cè)數(shù)據(jù)包,是將數(shù)據(jù)包分成二個(gè)較小的IP段。這樣就將一個(gè)TCP頭分成好幾個(gè)數(shù)據(jù)包,從而過(guò)濾器就很難探測(cè)到。但一些程序在處理這些小數(shù)據(jù)包時(shí)會(huì)有些問(wèn)題。 

  (5)TCP 反向 ident掃描 

  ident 協(xié)議允許(rfc1413-Request For Comments1413)看到通過(guò)TCP連接的任何進(jìn)程的擁有者的用戶名,即使這個(gè)連接不是由這個(gè)進(jìn)程開(kāi)始的。例如用戶連接到http端口,然后用identd來(lái)發(fā)現(xiàn)服務(wù)器是否正在以root權(quán)限運(yùn)行。這種方法只能在和目標(biāo)端口建立了一個(gè)完整的TCP連接后才能看到。 

  (6)FTP 返回攻擊 

  FTP協(xié)議的一個(gè)的特點(diǎn)是它支持代理(proxy)FTP連接。即入侵者可以從自己的計(jì)算機(jī)1.com和目標(biāo)主機(jī)2.com的FTP server-PI(協(xié)議解釋器)連接,建立一個(gè)控制通信連接。然后,請(qǐng)求這個(gè)server-PI激活一個(gè)有效的server-DTP(數(shù)據(jù)傳輸進(jìn)程)來(lái)給Internet上任何地方發(fā)送文件。這個(gè)協(xié)議的缺點(diǎn)是能用來(lái)發(fā)送不能跟蹤的郵件和新聞,給許多服務(wù)器造成打擊,用盡磁盤(pán)。 

  利用這個(gè)特點(diǎn)的目的是從一個(gè)代理的FTP服務(wù)器來(lái)掃描TCP端口。這樣,用戶能在一個(gè)防火墻后面連接到一個(gè)FTP服務(wù)器,然后掃描端口(這些原來(lái)有可能被阻塞)。如果FTP服務(wù)器允許從一個(gè)目錄讀寫(xiě)數(shù)據(jù),用戶就能發(fā)送任意的數(shù)據(jù)到發(fā)現(xiàn)的打開(kāi)的端口。 

  對(duì)于端口掃描,這個(gè)技術(shù)是使用PORT命令來(lái)表示被動(dòng)的User DTP正在目標(biāo)計(jì)算機(jī)上的某個(gè)端口偵聽(tīng)。然后入侵者試圖用LIST命令列出當(dāng)前目錄,結(jié)果通過(guò)Server-DTP發(fā)送出去。如果目標(biāo)主機(jī)正在某個(gè)端口偵聽(tīng),傳輸就會(huì)成功(產(chǎn)生一個(gè)150或226的回應(yīng))。否則,會(huì)出現(xiàn)″425 Can't build data connection: Connection refused.″。然后,使用另一個(gè)PORT命令,嘗試目標(biāo)計(jì)算機(jī)上的下一個(gè)端口。這種方法的優(yōu)點(diǎn)很明顯,難以跟蹤,能穿過(guò)防火墻。主要缺點(diǎn)是速度很慢,有的FTP服務(wù)器最終能得到一些線索,關(guān)閉代理功能。 

  這種方法成功的系統(tǒng)顯示狀態(tài): 

  220 xxxxxxx.com FTP server (Version wu-2.4(3) Wed Dec 14 ...) ready. 

  220 xxx.xxx.xxx.net FTP server ready. 

  220 xx.Telcom.xxxx.edu FTP server (Version wu-2.4(3) Tue Jun 11 ...) ready. 

  220 lem FTP server (SunOS 4.1) ready. 

  220 xxx.xxx.es FTP server (Version wu-2.4(11) Sat Apr 27 ...) ready. 

  220 elios FTP server (SunOS 4.1) ready 

  這種方法不成功的系統(tǒng)顯示狀態(tài): 

  220 wcarchive.cdrom.com FTP server (Version DG-2.0.39 Sun May 4 ...) ready. 

  220 xxx.xx.xxxxx.EDU Version wu-2.4.2-academ[BETA-12](1) Fri Feb 7 

  220 ftp Microsoft FTP Service (Version 3.0). 

  220 xxx FTP server (Version wu-2.4.2-academ[BETA-11](1) Tue Sep 3 ...) ready. 

  220 xxx.unc.edu FTP server (Version wu-2.4.2-academ[BETA-13](6) ...) ready. 

  (7)UDP ICMP端口不能到達(dá)掃描 

  這種方法與上面幾種方法的不同之處在于使用的是UDP協(xié)議。由于這個(gè)協(xié)議很簡(jiǎn)單,所以掃描變得相對(duì)比較困難。這是由于打開(kāi)的端口對(duì)掃描探測(cè)并不發(fā)送一個(gè)確認(rèn),關(guān)閉的端口也并不需要發(fā)送一個(gè)錯(cuò)誤數(shù)據(jù)包。但許多主機(jī)在向一個(gè)未打開(kāi)的UDP端口發(fā)送一個(gè)數(shù)據(jù)包時(shí),會(huì)返回一個(gè)ICMP_PORT_UNREACH錯(cuò)誤。這樣軟件就能發(fā)現(xiàn)哪個(gè)端口是關(guān)閉的。UDP和ICMP錯(cuò)誤都不保證能到達(dá),因此這種掃描器必須還實(shí)現(xiàn)在一個(gè)包看上去是丟失的時(shí)候能重新傳輸。這種掃描方法是很慢的,因?yàn)镽FC對(duì)ICMP錯(cuò)誤消息的產(chǎn)生速率做了規(guī)定。同樣,這種掃描方法需要具有root權(quán)限。 

  (8)UDP recvfrom()和write()掃描 

  當(dāng)非root用戶不能直接讀到端口不能到達(dá)錯(cuò)誤時(shí),Linux能間接地在它們到達(dá)時(shí)通知用戶。例如,對(duì)一個(gè)關(guān)閉的端口的第二個(gè)write()調(diào)用將失敗。在非阻塞的UDP套接字上調(diào)用recvfrom()時(shí),如果ICMP出錯(cuò)還沒(méi)有到達(dá)時(shí)回返回EAGAIN-重試。如果ICMP到達(dá)時(shí),返回ECONNREFUSED-連接被拒絕。這就是用來(lái)查看端口是否打開(kāi)的技術(shù)。 

  (9)ICMP echo掃描 

  這并不是真正意義上的掃描。但有時(shí)通過(guò)ping,在判斷在一個(gè)網(wǎng)絡(luò)上主機(jī)是否開(kāi)機(jī)或網(wǎng)絡(luò)設(shè)備是否在線正常工作時(shí)非常有用。

  3 網(wǎng)絡(luò)掃描的監(jiān)測(cè)與處理

  網(wǎng)絡(luò)掃描監(jiān)測(cè)系統(tǒng)從邏輯上可以分為三個(gè)部分:即抓包模塊,判定模塊,以及處理模塊。同時(shí)還應(yīng)該保留對(duì)處理模塊的接口。

  (1)抓包模塊,這一模塊一般只需要調(diào)用標(biāo)準(zhǔn)的網(wǎng)絡(luò)接口。目前一般的開(kāi)發(fā)工具都提供相應(yīng)的Winsock API()。

  (2)判定模塊,其流程圖如下;本模塊是處理由抓包模塊提交的數(shù)據(jù)報(bào)文,根據(jù)預(yù)定義的過(guò)濾規(guī)則進(jìn)行第一次匹配,選出非正常報(bào)文,提交給上層應(yīng)用,對(duì)于選定的非正常報(bào)文,由于存在多種可能,如:TCP SYN、TCP FIN等,則需要進(jìn)行由用戶定制的二次匹配,其中的特征值由用戶根據(jù)相應(yīng)的掃描特點(diǎn)定義。那些仍然沒(méi)有確定的報(bào)文,往往帶有二義性,這就需要借助歷史記錄的數(shù)據(jù)庫(kù),或者報(bào)文(如ICMP報(bào)文)長(zhǎng)度的閥值來(lái)加以判斷。

  (3)處理模塊,這一模塊是按照需要設(shè)置的各種實(shí)現(xiàn)方式和采取相對(duì)策略,并且要將相應(yīng)記錄存入日志。需要注意的是對(duì)一般的掃描要設(shè)置有效的閥值,僅僅一次、二次的掃描不應(yīng)該被視為網(wǎng)絡(luò)掃描。

  端口掃描雖然可以分為秘密掃描、間接掃描、認(rèn)證掃描、代理掃描、PING掃描和安全掃描等等,其應(yīng)用的領(lǐng)域也十分廣泛,但作為網(wǎng)絡(luò)的用戶對(duì)發(fā)生在自己身上的被掃描和請(qǐng)求連接應(yīng)引起足夠的重視,尤其是常用的低端口掃描和聯(lián)結(jié)請(qǐng)求,如23、69、135、139、445等。做到心中有數(shù),安全防范,預(yù)防攻擊。

  參考文獻(xiàn)

  1 Tcp/Ip Illustrated Volume 1The Protocols.U.S. W. Richard Stevens 2000.4

  2 Tcp/Ip Illustrated Volume 2 The Implementation.U.S. Gary R. Wright 2000.4

  3 NETWORK MANAGEMENT-Principles and Practice.Mani  Subramanian 2003

  4 張琳等. 網(wǎng)絡(luò)管理與應(yīng)用. 北京:人民郵電出版社, 2000.5

  5 譚思亮. 監(jiān)聽(tīng)與隱藏-網(wǎng)絡(luò)偵聽(tīng)揭密與數(shù)據(jù)保護(hù)技術(shù). 北京:機(jī)械工業(yè)出版社,2002.8

  6 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用. 北京:公安大學(xué)出版社,總第32期, 2003.12

模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉