計算機端口掃描技術(shù)全攻略_第1頁
計算機端口掃描技術(shù)全攻略_第2頁
計算機端口掃描技術(shù)全攻略_第3頁
計算機端口掃描技術(shù)全攻略_第4頁
計算機端口掃描技術(shù)全攻略_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

刖言第一部分,我們講述TCP連接的建立過程(通常稱作三階段握手),然后討論與掃描程序有關的一些實現(xiàn)細節(jié)。然后,簡單介紹一下經(jīng)典的掃描器(全連接)以及所謂的SYNC半連接)掃描器。第三部分主要討論間接掃描和秘密掃描,還有隱藏攻擊源的技術(shù)。秘密掃描基于FIN段的使用。在大多數(shù)實現(xiàn)中,關閉的端口對一個FIN段返回一個RST,但是打開的端口通常丟棄這個段,不作任何回答。間接掃描,就像它的名字,是用一個欺騙主機來幫助實施,這臺主機通常不是自愿的。第四部分介紹了一種與應用協(xié)議有關掃描。這些掃描器通常利用協(xié)議實現(xiàn)中的一些缺陷或者錯誤。認證掃描Cidentscanning)也被成為代理掃描(proxyscanning)。最后一部分,介紹了另外一些掃描技術(shù)??紤]了一些不是基于TCP端口和主要用來進行安全掃描的掃描工具(例如SATAN)。另外分析了使用掃描器的棧指紋。棧指紋通過檢測主機TCP并將應答跟已知操作系統(tǒng)TCP/IP協(xié)議棧應答相比較,解決了識別操作系統(tǒng)的問題。一:TCP/IP相關問題連接端及標記IP地址和端口被稱作套接字,它代表一個TCP連接的一個連接端。為了獲得TCP服務,必須在發(fā)送機的一個端口上和接收機的一個端口上建立連接。TCP連接用兩個連接端來區(qū)別,也就是(連接端1,連接端2)。連接端互相發(fā)送數(shù)據(jù)包。一個TCP數(shù)據(jù)包包括一個TCP頭,后面是選項和數(shù)據(jù)。一個TCP頭包含6個標志位。它們的意義分別為:SYN:標志位用來建立連接,讓連接雙方同步序列號。如果SYN=1而ACK=0,則表示該數(shù)據(jù)包為連接請求,如果SYN=1而ACK=1則表示接受連接。FIN:表示發(fā)送端已經(jīng)沒有數(shù)據(jù)要求傳輸了,希望釋放連接。RST:用來復位一個連接。RST標志置位的數(shù)據(jù)包稱為復位包。一般情況下,如果TCP收到的一個分段明顯不是屬于該主機上的任何一個連接,則向遠端發(fā)送一個復位包。URG:為緊急數(shù)據(jù)標志。如果它為1,表示本數(shù)據(jù)包中包含緊急數(shù)據(jù)。此時緊急數(shù)據(jù)指針有效。ACK:為確認標志位。如果為1,表示包中的確認號時有效的。否則,包中的確認號無效。PSH:如果置位,接收端應盡快把數(shù)據(jù)傳送給應用層。TCP連接的建立TCP是一個面向連接的可靠傳輸協(xié)議。面向連接表示兩個應用端在利用TCP傳送數(shù)據(jù)前必須先建立TCP連接。TCP的可靠性通過校驗和,定時器,數(shù)據(jù)序號和應答來提供。通過給每個發(fā)送的字節(jié)分配一個序號,接收端接收到數(shù)據(jù)后發(fā)送應答,TCP協(xié)議保證了數(shù)據(jù)的可靠傳輸。數(shù)據(jù)序號用來保證數(shù)據(jù)的順序,剔除重復的數(shù)據(jù)。在一個TCP會話中,有兩個數(shù)據(jù)流(每個連接端從另外一端接收數(shù)據(jù),同時向?qū)Ψ桨l(fā)送數(shù)據(jù)),因此在建立連接時,必須要為每一個數(shù)據(jù)流分配ISN(初始序號)。為了了解實現(xiàn)過程,我們假設客戶端C希望跟服務器端S建立連接,然后分析連接建立的過程(通常稱作三階段握手):1:C--SYNXXaS2:C?-SYNYY/ACKXX+1S3:C——ACKYY+1—aS1:C發(fā)送一個TCP包(SYN請求)給S,其中標記SYN(同步序號)要打開。SYN請求指明了客戶端希望連接的服務器端端口號和客戶端的ISN(XX是一個例子)。2:服務器端發(fā)回應答,包含自己的SYN信息ISN(YY)和對C的SYN應答,應答時返回下一個希望得到的字節(jié)序號(YY+1)。3:C對從S來的SYN進行應答,數(shù)據(jù)發(fā)送開始。一些實現(xiàn)細節(jié)大部分TCP/IP實現(xiàn)遵循以下原則:1:當一個SYN或者FIN數(shù)據(jù)包到達一個關閉的端口,TCP丟棄數(shù)據(jù)包同時發(fā)送一個RST數(shù)據(jù)包。2:當一個RST數(shù)據(jù)包到達一個監(jiān)聽端口,RST被丟棄。3:當一個RST數(shù)據(jù)包到達一個關閉的端口,RST被丟棄。4:當一個包含ACK的數(shù)據(jù)包到達一個監(jiān)聽端口時,數(shù)據(jù)包被丟棄,同時發(fā)送一個RST數(shù)據(jù)包。5:當一個SYN位關閉的數(shù)據(jù)包到達一個監(jiān)聽端口時,數(shù)據(jù)包被丟棄。6:當一個SYN數(shù)據(jù)包到達一個監(jiān)聽端口時,正常的三階段握手繼續(xù),回答一個SYNACK數(shù)據(jù)包。7:當一個FIN數(shù)據(jù)包到達一個監(jiān)聽端口時,數(shù)據(jù)包被丟棄。"FIN行為〃(關閉得端口返回RST,監(jiān)聽端口丟棄包),在URG和PSH標志位置位時同樣要發(fā)生。所有的URG,PSH和FIN,或者沒有任何標記的TCP數(shù)據(jù)包都會引起"FIN行為〃。二:全TCP連接和SYN掃描器全TCP連接全TCP連接是長期以來TCP端口掃描的基礎。掃描主機嘗試(使用三次握手)與日的機指定端口建立建立正規(guī)的連接。連接由系統(tǒng)調(diào)用connect()開始。對于每一個監(jiān)聽端口,connect()會獲得成功,否則返回一1,表示端口不可訪問。由于通常情況下,這不需要什么特權(quán),所以幾乎所有的用戶(包括多用戶環(huán)境下)都可以通過connect來實現(xiàn)這個技術(shù)。這種掃描方法很容易檢測出來(在日志文件中會有大量密集的連接和錯誤記錄)。Courtney,Gabriel和TCPWrapper監(jiān)測程序通常用來進行監(jiān)測。另外,TCPWrapper可以對連接請求進行控制,所以它可以用來阻止來自不明主機的全連接掃描。TCPSYN掃描在這種技術(shù)中,掃描主機向日標主機的選擇端口發(fā)送SYN數(shù)據(jù)段。如果應答是RST,那么說明端口是關閉的,按照設定就探聽其它端口;如果應答中包含SYN和ACK,說明日標端口處于監(jiān)聽狀態(tài)。由于所有的掃描主機都需要知道這個信息,傳送一個RST給日標機從而停止建立連接。由于在SYN掃描時,全連接尚未建立,所以這種技術(shù)通常被稱為半打開掃描。SYN掃描的優(yōu)點在于即使日志中對掃描有所記錄,但是嘗試進行連接的記錄也要比全掃描少得多。缺點是在大部分操作系統(tǒng)下,發(fā)送主機需要構(gòu)造適用于這種掃描的IP包,通常情況下,構(gòu)造SYN數(shù)據(jù)包需要超級用戶或者授權(quán)用戶訪問專門的系統(tǒng)調(diào)用。三:秘密掃描與間接掃描秘密掃描技術(shù)由于這種技術(shù)不包含標準的TCP三次握手協(xié)議的任何部分,所以無法被記錄下來,從而必SYN掃描隱蔽得多。另外,F(xiàn)IN數(shù)據(jù)包能夠通過只監(jiān)測SYN包的包過濾器。秘密掃描技術(shù)使用FIN數(shù)據(jù)包來探聽端口。當一個FIN數(shù)據(jù)包到達一個關閉的端口,數(shù)據(jù)包會被丟掉,并且回返回一個RST數(shù)據(jù)包。否則,當一個FIN數(shù)據(jù)包到達一個打開的端口,數(shù)據(jù)包只是簡單的丟掉(不返回RST)。Xmas和Null掃描是秘密掃描的兩個變種。Xmas掃描打開FIN,URG和PUSH標記,而Null掃描關閉所有標記。這些組合的日的是為了通過所謂的FIN標記監(jiān)測器的過濾。秘密掃描通常適用于UNIX日標主機,除過少量的應當丟棄數(shù)據(jù)包卻發(fā)送reset信號的操作系統(tǒng)(包括CISCO,BSDI,HP/UX,MVS和IRIX)。在Windows95/NT環(huán)境下,該方法無效,因為不論日標端口是否打開,操作系統(tǒng)都發(fā)送RST。跟SYN掃描類似,秘密掃描也需要自己構(gòu)造IP包。間接掃描間接掃描的思想是利用第三方的IP(欺騙主機)來隱藏真正掃描者的IP。由于掃描主機會對欺騙主機發(fā)送回應信息,所以必須監(jiān)控欺騙主機的IP行為,從而獲得原始掃描的結(jié)果。間接掃描的工作過程如下:假定參與掃描過程的主機為掃描機,隱藏機,日標機。掃描機和日標記的角色非常明顯。隱藏機是一個非常特殊的角色,在掃描機掃描日的機的時候,它不能發(fā)送任何數(shù)據(jù)包(除了與掃描有關的包)。四:認證掃描和代理掃描認證掃描到日前為止,我們分析的掃描器在設計時都只有一個日的:判斷一個主機中哪個端口上有進程在監(jiān)聽。然而,最近的幾個新掃描器增加了其它的功能,能夠獲取監(jiān)聽端口的進程的特征和行為。認證掃描是一個非常有趣的例子。利用認證協(xié)議,這種掃描器能夠獲取運行在某個端口上進程的用戶名(userid)。認證掃描嘗試與一個TCP端口建立連接,如果連接成功,掃描器發(fā)送認證請求到目的主機的113TCP端口。認證掃描同時也被成為反向認證掃描,因為即使最初的RFC建議了一種幫助服務器認證客戶端的協(xié)議,然而在實際的實現(xiàn)中也考慮了反向應用(即客戶端認證服務器)。代理掃描文件傳輸協(xié)議(FTP)支持一個非常有意思的選項:代理ftp連接。這個選項最初的目的(RFC959)是允許一個客戶端同時跟兩個FTP服務器建立連接,然后在服務器之間直接傳輸數(shù)據(jù)。然而,在大部分實現(xiàn)中,實際上能夠使得FTP服務器發(fā)送文件到Internet的任何地方。許多攻擊正是利用了這個缺陷。最近的許多掃描器利用這個弱點實現(xiàn)ftp代理掃描。ftp端口掃描主要使用ftp代理服務器來掃描tcp端口。掃描步驟如下:1:假定S是掃描機,T是掃描目標,F(xiàn)是一個ftp服務器,這個服務器支持代理選項,能夠跟S和T建立連接。2:S與F建立一個ftp會話,使用PORT命令聲明一個選擇的端口(稱之為p-T)作為代理傳輸所需要的被動端口。3:然后S使用一個LIST命令嘗試啟動一個到p-T的數(shù)據(jù)傳輸。4:如果端口p-T確實在監(jiān)聽,傳輸就會成功(返回碼150和226被發(fā)送回給S)。否則S回收到〃425無法打開數(shù)據(jù)連接〃的應答。5:S持續(xù)使用PORT和LIST命令,直到T上所有的選擇端口掃描完畢。FTP代理掃描不但難以跟蹤,而且當ftp服務器在防火墻后面的時候五:其它掃描方法Ping掃描如果需要掃描一個主機上甚至整個子網(wǎng)上的成千上萬個端口,首先判斷一個主機是否開機就非常重要了。這就是Ping掃描器的日的。主要由兩種方法用來實現(xiàn)Ping掃描。1:真實掃描:例如發(fā)送ICMP請求包給日標IP地址,有相應的表示主機開機。2:TCPPing:例如發(fā)送特殊的TCP包給通常都打開且沒有過濾的端口(例如80端口)。對于沒有root權(quán)限的掃描者,使用標準的connect來實現(xiàn)。否則,ACK數(shù)據(jù)包發(fā)送給每一個需要探測的主機IP。每一個返回的RST表明相應主機開機了。另外,一種類似于SYN掃描端口80(或者類似的)也被經(jīng)常使用。安全掃描器安全掃描器是用來自動檢查一個本地或者遠程主機的安全漏洞的程序。象其它端口掃描器一樣,它們查詢端口并記錄返回結(jié)果。但是它們。它們主要要解決以下問題:1:是否允許匿名登錄。2:是否某種網(wǎng)絡服務需要認證。3:是否存在已知安全漏洞。可能SATAN是最著名的安全掃描器。1995年四月SATAN最初發(fā)布的時候,人們都認為這就是它的最終版本,認為它不但能夠發(fā)現(xiàn)相當多的已知漏洞,而且能夠針對任何很難發(fā)現(xiàn)的漏洞提供信息。但是,從它發(fā)布以來,安全掃描器一直在不斷地發(fā)展,其實現(xiàn)機制也越來越復雜。四:認證掃描和代理掃描認證掃描到目前為止,我們分析的掃描器在設計時都只有一個目的:判斷一個主機中哪個端口上有進程在監(jiān)聽。然而,最近的幾個新掃描器增加了其它的功能,能夠獲取監(jiān)聽端口的進程的特征和行為。認證掃描是一個非常有趣的例子。利用認證協(xié)議,這種掃描器能夠獲取運行在某個端口上進程的用戶名(userid)。認證掃描嘗試與一個TCP端口建立連接,如果連接成功,掃描器發(fā)送認證請求到目的主機的113TCP端口。認證掃描同時也被成為反向認證掃描,因為即使最初的RFC建議了一種幫助服務器認證客戶端的協(xié)議,然而在實際的實現(xiàn)中也考慮了反向應用(即客戶端認證服務器)。代理掃描文件傳輸協(xié)議(FTP)支持一個非常有意思的選項:代理ftp連接。這個選項最初的目的(RFC959)是允許一個客戶端同時跟兩個FTP服務器建立連接,然后在服務器之間直接傳輸數(shù)據(jù)。然而,在大部分實現(xiàn)中,實際上能夠使得FTP服務器發(fā)送文件到Internet的任何地方。許多攻擊正是利用了這個缺陷。最近的許多掃描器利用這個弱點實現(xiàn)ftp代理掃描。ftp端口掃描主要使用ftp代理服務器來掃描tcp端口。掃描步驟如下:1:假定S是掃描機,T是掃描目標,F(xiàn)是一個ftp服務器,這個服務器支持代理選項,能夠跟S和T建立連接。2:S與F建立一個ftp會話,使用PORT命令聲明一個選擇的端口(稱之為P-T)作為代理傳輸所需要的被動端口。3:然后S使用一個LIST命令嘗試啟動一個到p-T的數(shù)據(jù)傳輸。4:如果端口p-T確實在監(jiān)聽,傳輸就會成功(返回碼150和226被發(fā)送回給S)。否則S回收到〃425無法打開數(shù)據(jù)連接〃的應答。5:S持續(xù)使用PORT和LIST命令,直到T上所有的選擇端口掃描完畢。FTP代理掃描不但難以跟蹤,而且當ftp服務器在防火墻后面的時候五:其它掃描方法Ping掃描如果需要掃描一個主機上甚至整個子網(wǎng)上的成千上萬個端口,首先判斷一個主機是否開機就非常重要了。這就是Ping掃描器的日的。主要由兩種方法用來實現(xiàn)Ping掃描。1:真實掃描:例如發(fā)送ICMP請求包給日標IP地址,有相應的表示主機開機。2:TCPPing:例如發(fā)送特殊的TCP包給通常都打開且沒有過濾的端口(例如80端口)。對于沒有root權(quán)限的掃描者,使用標準的connect來實現(xiàn)。否則,ACK數(shù)據(jù)包發(fā)送給每一個需要探測的主機IP。每一個返回的RST表明相應主機開機了。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論