亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

計算機端口掃描技術全攻略

  發(fā)布時間:2010-09-07 23:32:06   作者:佚名   我要評論
 前言   第一部分,我們講述TCP連接的建立過程(通常稱作三階段握手),然后討論與掃描程序有關的一些實現細節(jié)。   然后,簡單介紹一下經典的掃描器(全連接)以及所謂的SYN(半連接)掃描器。   第三部分主要討論間接掃描和秘密掃描
 前言

  第一部分,我們講述TCP連接的建立過程(通常稱作三階段握手),然后討論與掃描程序有關的一些實現細節(jié)。

  然后,簡單介紹一下經典的掃描器(全連接)以及所謂的SYN(半連接)掃描器。

  第三部分主要討論間接掃描和秘密掃描,還有隱藏攻擊源的技術。

  秘密掃描基于FIN段的使用。在大多數實現中,關閉的端口對一個FIN 段返回一個RST,但是打開的端口通常丟棄這個段,不作任何回答。間接掃描,就像它的名字,是用一個欺騙主機來幫助實施,這臺主機通常不是自愿的。

  第四部分介紹了一種與應用協議有關掃描。這些掃描器通常利用協議實現中的一些缺陷或者錯誤。認證掃描(ident scanning)也被成為代理掃描(proxy scanning)。

  最后一部分,介紹了另外一些掃描技術??紤]了一些不是基于TCP端口和主要用來進行安全掃描的掃描工具(例如SATAN)。另外分析了使用掃描器的棧指紋。棧指紋通過檢測主機TCP并將應答跟已知操作系統(tǒng)TCP/IP協議棧應答相比較,解決了識別操作系統(tǒng)的問題。  

  一:TCP/IP相關問題

  連接端及標記

  IP地址和端口被稱作套接字,它代表一個TCP連接的一個連接端。為了獲得TCP服務,必須在發(fā)送機的一個端口上和接收機的一個端口上建立連接。TCP連接用兩個連接端來區(qū)別,也就是(連接端1,連接端2)。連接端互相發(fā)送數據包。

  一個TCP數據包包括一個TCP頭,后面是選項和數據。一個TCP頭包含6個標志位。它們的意義分別為:

  SYN: 標志位用來建立連接,讓連接雙方同步序列號。如果SYN=1而ACK=0,則表示該數據包為連接請求,如果SYN=1而ACK=1則表示接受連接。

  FIN: 表示發(fā)送端已經沒有數據要求傳輸了,希望釋放連接。

  RST: 用來復位一個連接。RST標志置位的數據包稱為復位包。一般情況下,如果TCP收到的一個分段明顯不是屬于該主機上的任何一個連接,則向遠端發(fā)送一個復位包。

  URG: 為緊急數據標志。如果它為1,表示本數據包中包含緊急數據。此時緊急數據指針有效。

  ACK: 為確認標志位。如果為1,表示包中的確認號時有效的。否則,包中的確認號無效。

  PSH: 如果置位,接收端應盡快把數據傳送給應用層。
TCP連接的建立

 

  TCP是一個面向連接的可靠傳輸協議。面向連接表示兩個應用端在利用TCP傳送數據前必須先建立TCP連接。 TCP的可靠性通過校驗和,定時器,數據序號和應答來提供。通過給每個發(fā)送的字節(jié)分配一個序號,接收端接收到數據后發(fā)送應答,TCP協議保證了數據的可靠傳輸。數據序號用來保證數據的順序,剔除重復的數據。在一個TCP會話中,有兩個數據流(每個連接端從另外一端接收數據,同時向對方發(fā)送數據),因此在建立連接時,必須要為每一個數據流分配ISN(初始序號)。為了了解實現過程,我們假設客戶端C希望跟服務器端S建立連接,然后分析連接建立的過程(通常稱作三階段握手):

  1: C --SYN XXà S

  2: C ?-SYN YY/ACK XX+1------- S

  3: C ----ACK YY+1--à S

  1:C發(fā)送一個TCP包(SYN 請求)給S,其中標記SYN(同步序號)要打開。SYN請求指明了客戶端希望連接的服務器端端口號和客戶端的ISN(XX是一個例子)。

  2:服務器端發(fā)回應答,包含自己的SYN信息ISN(YY)和對C的SYN應答,應答時返回下一個希望得到的字節(jié)序號(YY+1)。

  3:C 對從S 來的SYN進行應答,數據發(fā)送開始。

  一些實現細節(jié)

  大部分TCP/IP實現遵循以下原則:

  1:當一個SYN或者FIN數據包到達一個關閉的端口,TCP丟棄數據包同時發(fā)送一個RST數據包。

  2:當一個RST數據包到達一個監(jiān)聽端口,RST被丟棄。

  3:當一個RST數據包到達一個關閉的端口,RST被丟棄。

  4:當一個包含ACK的數據包到達一個監(jiān)聽端口時,數據包被丟棄,同時發(fā)送一個RST數據包。

  5:當一個SYN位關閉的數據包到達一個監(jiān)聽端口時,數據包被丟棄。

  6:當一個SYN數據包到達一個監(jiān)聽端口時,正常的三階段握手繼續(xù),回答一個SYN ACK數據包。

  7:當一個FIN數據包到達一個監(jiān)聽端口時,數據包被丟棄。"FIN行為"(關閉得端口返回RST,監(jiān)聽端口丟棄包),在URG和PSH標志位置位時同樣要發(fā)生。所有的URG,PSH和FIN,或者沒有任何標記的TCP數據包都會引起"FIN行為"。//本文來自腳本之家chabaoo.cn轉載請注明

二:全TCP連接和SYN掃描器

 

  全TCP連接

  全TCP連接是長期以來TCP端口掃描的基礎。掃描主機嘗試(使用三次握手)與目的機指定端口建立建立正規(guī)的連接。連接由系統(tǒng)調用connect()開始。對于每一個監(jiān)聽端口,connect()會獲得成功,否則返回-1,表示端口不可訪問。由于通常情況下,這不需要什么特權,所以幾乎所有的用戶(包括多用戶環(huán)境下)都可以通過connect來實現這個技術。

  這種掃描方法很容易檢測出來(在日志文件中會有大量密集的連接和錯誤記錄)?ourtney,Gabriel和TCP Wrapper監(jiān)測程序通常用來進行監(jiān)測。另外,TCP Wrapper可以對連接請求進行控制,所以它可以用來阻止來自不明主機的全連接掃描。

  TCP SYN掃描

  在這種技術中,掃描主機向目標主機的選擇端口發(fā)送SYN數據段。如果應答是RST,那么說明端口是關閉的,按照設定就探聽其它端口;如果應答中包含SYN和ACK,說明目標端口處于監(jiān)聽狀態(tài)。由于所有的掃描主機都需要知道這個信息,傳送一個RST給目標機從而停止建立連接。由于在SYN掃描時,全連接尚未建立,所以這種技術通常被稱為半打開掃描。SYN掃描的優(yōu)點在于即使日志中對掃描有所記錄,但是嘗試進行連接的記錄也要比全掃描少得多。缺點是在大部分操作系統(tǒng)下,發(fā)送主機需要構造適用于這種掃描的IP包,通常情況下,構造SYN數據包需要超級用戶或者授權用戶訪問專門的系統(tǒng)調用。

  三:秘密掃描與間接掃描

  秘密掃描技術

  由于這種技術不包含標準的TCP三次握手協議的任何部分,所以無法被記錄下來,從而必SYN掃描隱蔽得多。另外,FIN數據包能夠通過只監(jiān)測SYN包的包過濾器。

  秘密掃描技術使用FIN數據包來探聽端口。當一個FIN數據包到達一個關閉的端口,數據包會被丟掉,并且回返回一個RST數據包。否則,當一個FIN數據包到達一個打開的端口,數據包只是簡單的丟掉(不返回RST)。

  Xmas和Null掃描是秘密掃描的兩個變種。Xmas掃描打開FIN,URG和PUSH標記,而Null掃描關閉所有標記。這些組合的目的是為了通過所謂的FIN標記監(jiān)測器的過濾。

  秘密掃描通常適用于UNIX目標主機,除過少量的應當丟棄數據包卻發(fā)送reset信號的操作系統(tǒng)(包括CISCO,BSDI,HP/UX,MVS和IRIX)。在Windows95/NT環(huán)境下,該方法無效,因為不論目標端口是否打開,操作系統(tǒng)都發(fā)送RST。

  跟SYN掃描類似,秘密掃描也需要自己構造IP 包。   

  間接掃描

  間接掃描的思想是利用第三方的IP(欺騙主機)來隱藏真正掃描者的IP。由于掃描主機會對欺騙主機發(fā)送回應信息,所以必須監(jiān)控欺騙主機的IP行為,從而獲得原始掃描的結果。間接掃描的工作過程如下:

  假定參與掃描過程的主機為掃描機,隱藏機,目標機。掃描機和目標記的角色非常明顯。隱藏機是一個非常特殊的角色,在掃描機掃描目的機的時候,它不能發(fā)送任何數據包(除了與掃描有關的包)。

四:認證掃描和代理掃描

 

  認證掃描

  到目前為止,我們分析的掃描器在設計時都只有一個目的:判斷一個主機中哪個端口上有進程在監(jiān)聽。然而,最近的幾個新掃描器增加了其它的功能,能夠獲取監(jiān)聽端口的進程的特征和行為。

  認證掃描是一個非常有趣的例子。利用認證協議,這種掃描器能夠獲取運行在某個端口上進程的用戶名(userid)。認證掃描嘗試與一個TCP端口建立連接,如果連接成功,掃描器發(fā)送認證請求到目的主機的113TCP端口。認證掃描同時也被成為反向認證掃描,因為即使最初的RFC建議了一種幫助服務器認證客戶端的協議,然而在實際的實現中也考慮了反向應用(即客戶端認證服務器)。   

  代理掃描

  文件傳輸協議(FTP)支持一個非常有意思的選項:代理ftp連接。這個選項最初的目的(RFC959)是允許一個客戶端同時跟兩個FTP服務器建立連接,然后在服務器之間直接傳輸數據。然而,在大部分實現中,實際上能夠使得FTP服務器發(fā)送文件到Internet的任何地方。許多攻擊正是利用了這個缺陷。最近的許多掃描器利用這個弱點實現ftp代理掃描。

  ftp端口掃描主要使用ftp代理服務器來掃描tcp端口。掃描步驟如下:

  1:假定S是掃描機,T是掃描目標,F是一個ftp服務器,這個服務器支持代理選項,能夠跟S和T建立連接。

  2:S與F建立一個ftp會話,使用PORT命令聲明一個選擇的端口(稱之為p-T)作為代理傳輸所需要的被動端口。

  3:然后S使用一個LIST命令嘗試啟動一個到p-T的數據傳輸。

  4:如果端口p-T確實在監(jiān)聽,傳輸就會成功(返回碼150和226被發(fā)送回給S)。否則S回收到"425無法打開數據連接"的應答。

  5:S持續(xù)使用PORT和LIST命令,直到T上所有的選擇端口掃描完畢。

  FTP代理掃描不但難以跟蹤,而且當ftp服務器在防火墻后面的時候   

  五:其它掃描方法

  Ping掃描

  如果需要掃描一個主機上甚至整個子網上的成千上萬個端口,首先判斷一個主機是否開機就非常重要了。這就是Ping掃描器的目的。主要由兩種方法用來實現Ping掃描。

  1:真實掃描:例如發(fā)送ICMP請求包給目標IP地址,有相應的表示主機開機。

  2:TCP Ping:例如發(fā)送特殊的TCP包給通常都打開且沒有過濾的端口(例如80端口)。對于沒有root權限的掃描者,使用標準的connect來實現。否則,ACK數據包發(fā)送給每一個需要探測的主機IP。每一個返回的RST表明相應主機開機了。另外,一種類似于SYN掃描端口80(或者類似的)也被經常使用。   

  安全掃描器

  安全掃描器是用來自動檢查一個本地或者遠程主機的安全漏洞的程序。象其它端口掃描器一樣,它們查詢端口并記錄返回結果。但是它們。它們主要要解決以下問題:

  1:是否允許匿名登錄。

  2:是否某種網絡服務需要認證。

  3:是否存在已知安全漏洞。

  可能SATAN是最著名的安全掃描器。1995年四月SATAN最初發(fā)布的時候,人們都認為這就是它的最終版本,認為它不但能夠發(fā)現相當多的已知漏洞,而且能夠針對任何很難發(fā)現的漏洞提供信息。但是,從它發(fā)布以來,安全掃描器一直在不斷地發(fā)展,其實現機制也越來越復雜。

棧指紋

 

  絕大部分安全漏洞與缺陷都與操作系統(tǒng)相關,因此遠程操作系統(tǒng)探測是系統(tǒng)管理員關心的一個問題。

  遠程操作系統(tǒng)探測不是一個新問題。近年來,TCP/IP實現提供了主機操作系統(tǒng)信息服務。FTP,TELNET,HTTP和DNS服務器就是很好的例子。然而,實際上提供的信息都是不完整的,甚至有可能是錯誤的。最初的掃描器,依靠檢測不同操作系統(tǒng)對TCP/IP的不同實現來識別操作系統(tǒng)。由于差別的有限性,現在只能最多只能識別出10余種操作系統(tǒng)。

  最近出現的兩個掃描器,QueSO和NMAP,在指紋掃描中引入了新的技術。 QueSO第一個實現了使用分離的數據庫于指紋。NMAP包含了很多的操作系統(tǒng)探測技術,定義了一個模板數據結構來描述指紋。由于新的指紋可以很容易地以模板的形式加入,NMAP指紋數據庫是不斷增長的,它能識別的操作系統(tǒng)也越來越多。

  這種使用掃描器判斷遠程操作系統(tǒng)的技術稱為(TCP/IP)棧指紋技術。

  另外有一種技術稱為活動探測?;顒犹綔y把TCP的實現看作一個黑盒子。通過研究TCP對探測的回應,就可以發(fā)現 TCP實現的特點。TCP/IP 棧指紋技術是活動探測的一個變種,它適用于整個TCP/IP協議的實現和操作系統(tǒng)。棧指紋使用好幾種技術來探測TCP/IP協議棧和操作系統(tǒng)的細微區(qū)別。這些信息用來創(chuàng)建一個指紋,然后跟已知的指紋進行比較,就可以判斷出當前被掃描的操作系統(tǒng)。

  棧指紋掃描包含了相當多的技術。下面是一個不太完整的清單:

  1:FIN探測

  2:BOGUS標記探測

  3:TCP ISN 取樣

  4:TCP 初始窗口

  5:ACK值

  6:ICMP錯誤信息

  7:ICMP信息

  8:服務類型

  9:TCP選項

相關文章

  • 查看路由器的端口狀態(tài)解決網絡故障

    大家做網絡工程可能會經常遇到種種關于路由器的問題,但是通常路由器除了看配置外,更常用的辦法是通過路由器端口狀態(tài)看網絡故障。下面是筆者的一些經驗總結,希望對大家有
    2010-09-07
  • 電腦端口基礎知識

    這篇文章主要介紹了電腦端口的一些基礎知識,需要的朋友可以看下
    2010-09-07
  • 計算機端口介紹(詳細列表)

    我們常常會在各類的技術文章中見到諸如135、137、139、443之類的“端口”,可是這些端口究竟有什么用呢?它會不會給我們的計算機帶來潛在的威脅呢?究竟有多少端口是有用的
    2010-09-07
  • 解析常見端口信息

      在上網的時候,我們經常會看到“端口”這個詞,也會經常用到端口號,比如在FTP地址后面增加的“21”,21就表示端口號。那么端口到底是什么意思呢?怎樣查看端口號呢?
    2009-08-25
  • 如何關閉電腦不用的端口

    電腦端口的一些使用技巧相信大家都可能有一定的了解,通過控制各個端口,可以有效的控制電腦中各種程序的運行,通過關閉相應的端口,就可以停止電腦的 某些程序的運行。每
    2012-09-06
  • windows下查看端口的方法[圖文]

    今天就來教大家windows如何查看端口,從而知道端口被哪個程序占用了,然后在進行處理即可。下面我們一起來看看具體內容
    2013-04-02
  • windows 端口占用命令查看方法

    我們在啟動應用的時候發(fā)現系統(tǒng)需要的端口被別的程序占用,如何知道誰占有了我們需要的端口,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用
    2013-09-02
  • 查看端口命令簡介 DOS查看端口命令大全

    在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令
    2012-07-06
  • LINUX的端口和服務

    一、端口和服務的關系
    2009-03-10
  • linux下查看端口命令 端口

    LINUX網絡性能之管理工具三劍客 本文是介紹管理Linux系統(tǒng)網絡性能技巧的文章,主要介紹了route、netstat、tcpdump三種網絡管理測試工具的使用方法及其可實現的功能。 rou
    2009-03-10

最新評論