網絡攻防技術第2版)》 —2.3.2 端口掃描

      網友投稿 1038 2025-04-02

      2.3.2 端口掃描


      Internet上的大部分服務都使用一種基于TCP/IP協議的客戶機/服務器的模式。在這種模式下,服務器端在某個TCP或UDP(User Datagram Protocol,用戶數據報協議)的端口處于偵聽狀態,等待客戶端程序發來的連接請求或數據,并做出相應的應答。因此,一個Internet的服務或程序必然會打開一個或多個TCP或UDP端口,反之,一個開放的TCP或UDP端口意味著可能存在一個Internet服務或程序。比如,訪問Web通過服務器的TCP 80端口通信,訪問FTP服務通過服務器的TCP 21端口通信,QQ使用UDP 8000端口進行通信。

      IP地址可以在Internet上定位一臺主機,在攻擊者試圖入侵一臺主機時,必須發現可能訪問該主機的通道,也就是端口。

      端口掃描就是一種檢查目標系統開放的TCP或UDP端口的信息收集技術。它的基本方法是向目標機器的各個端口發送連接的請求,根據返回的響應,判斷在目標機器上是否開放了某個端口。端口掃描的直接結果就是得到目標主機開放和關閉的端口列表,這些開放的端口往往與一定的服務相對應,通過這些開放的端口,攻擊者就能了解主機運行的服務,然后進一步整理和分析這些服務可能存在的漏洞,隨后采取針對性的攻擊。

      1. Connect掃描

      對于所有基于TCP協議的應用層服務來說,其運作模式基本上是相同的。圖2-4描述了使用Socket編程接口實現基于TCP連接的過程。客戶端利用Socket向服務器端口發送一個Connect請求,如果服務器正常運行,Connect將返回一個已建立的TCP連接。通過這個連接,客戶端和服務器之間完成正常的數據交互。如果僅僅判斷目標主機上的某個端口是否運行著一個服務,那么只需要用Socket向目標端口發送一個Connect請求,在連接建立后關閉這條連接即可。

      圖2-4 使用Socket編寫基于TCP的應用

      早期的掃描器(比如UNIX下的掃描工具SATAN)采用的就是這種簡單的端口掃描實現方法,這種方法也稱為TCP Connect。用戶只需要創建一個套接字(Socket),調用Connect函數,目標主機就會對這個Connect請求做出響應。如果某個端口開放了一個服務,這個Connect請求就會成功地建立一個TCP連接;如果沒有開放服務,連接就不會建立,并返回錯誤的原因。

      使用TCP Connect進行掃描的優點是實現簡單,幾乎所有支持TCP/IP的操作系統都提供了TCP Connect調用的API(Application Programming Interface,應用程序編程接口)函數,并允許以普通用戶權限進行調用。這種方法的缺點是很容易被防火墻檢測,也會被目標的操作系統或服務記錄。

      2. SYN掃描和FIN掃描

      為了使端口掃描的動作更加隱蔽、更加不易被目標覺察,在過去的幾年中,攻擊者對端口掃描技術進行了更為深入的研究,形成了一系列新穎的端口掃描技術。這些掃描技術的形式很多,但基本思想接近。它們的共同點是:掃描必須向目標發送某種數據包,而對于這種數據包,開放端口和關閉端口的響應是有差異的。另一個共同點是,這種數據包的發送和接收過程往往不同于正常的TCP數據的發送和接收過程。事實上,正常的TCP數據發送和接收總是存在著被目標主機記入日志的危險。

      TCP Connect的建立要經過三次握手過程,對這個過程進行研究就可以引申出一種新的掃描方式—TCP SYN掃描。

      《網絡攻防技術(第2版)》 —2.3.2 端口掃描

      TCP三次握手實際上包含三次數據包的發送:客戶端發送SYN包,服務器回送SYN|ACK包,客戶端回送ACK包。這是正常的TCP連接過程,如果想和服務器進行正常數據通信也必須這樣做。但對于端口掃描來說則不是這樣。在對一個目標進行掃描時,我們并不需要等待一個連接的完全建立。如果我們向目標的某個端口發送一個標志SYN置位的數據包,而目標返回了一個標志SYN、ACK同時置位的數據包,那么就能夠判斷出目標的這個端口是打開的。最后一個ACK數據包對于端口掃描來說并不必要。另一方面,正是這個ACK數據包的發送使服務程序確認一個連接的建立并將之記錄到日志中。如果不回送最后的ACK包,就可以使這次掃描變得隱蔽起來,這就是TCP SYN掃描。

      TCP SYN掃描技術通常被稱為“半打開”掃描,因為掃描程序并不需要建立一個完全的TCP連接。掃描程序發送的是一個SYN數據包,好像準備建立一個實際的連接并等待反應一樣。若返回信息為SYN|ACK,表示端口處于偵聽狀態;若返回信息為RST,表示端口沒有處于偵聽狀態。

      SYN掃描的實現比Connect掃描復雜一些。要實現TCP SYN掃描,就需要更有效地控制IP數據包。因此,必須使用RAW Socket編程實現這樣的掃描功能。

      在某些情況下,SYN掃描也不夠隱蔽。一些防火墻和包過濾器會對某些指定的端口進行監視,有些程序,比如Synlogger和TCPWrapper,能檢測到這些掃描。相反,FIN數據包可能會順利通過。在TCP協議標準中規定,發送一個FIN報文到一個關閉的端口時,該報文會被丟掉,并返回一個RST報文;但是當FIN報文到達一個活動的端口時,該報文只是被丟掉,而不回應任何信息。大多數操作系統(Unix BSD等)在實現時遵從了協議規范,但也有部分系統(如微軟的系列產品)沒有遵守TCP標準所要求的行為,這些系統不管端口是否打開都會回復RST。對于這樣的系統,FIN掃描就不適用了。

      與FIN掃描具有相似思路的實現是發送一個帶有FIN和ACK標記的包,如果從某個端口返回的包的TTL值小于其他RST包,端口就可能是打開的。因為IP是一個基于路由的協議,每經過一次包的中轉都會將TTL值減1,所以當一個打開的端口收到一個包時,它會首先將TTL值減1,若發來的包不是一個TCP的SYN包,就會返回一個TTL值比關閉端口小1的RST包。

      FIN掃描的優點是一般不會被目標操作系統或服務記錄到日志,并且可以繞過某些簡單的防火墻設置。Netstate命令不會顯示主機受到了掃描,因為Netstate命令只能顯示TCP連接或連接的嘗試。

      它的缺點是需要使用RAW Socket來編程實現,實現起來相對比較復雜。而且,FIN掃描并不對所有操作系統有效。對于不同的操作系統會有不同的結果,因而FIN掃描并不是一個可以完全信任的方法。

      3. 其他端口掃描技術

      為了避開防火墻的過濾,并且使掃描更加隱蔽,出現了其他端口掃描技術。下面將列舉一些端口掃描技術,更多的內容可以參考掃描工具Nmap自帶的文檔。

      (1)SYN+ACK掃描

      向目標主機發送SYN和ACK同時置位的TCP包,關閉的端口會返回RST包,而開放的端口會忽略該包。

      (2)TCP XMAS掃描

      掃描器發送的TCP包頭設置所有標志位,關閉的端口會響應一個同樣設置所有標志位的包,開放的端口則會忽略該包而不做出任何響應。

      (3)NULL掃描

      與XMAS掃描相反,NULL掃描將TCP包中的所有標志位都置0。當這個數據包被發送到基于BSD操作系統的主機時,如果目標端口是開放的,則不會返回任何數據包;如果目標端口是關閉的,被掃描主機將發回一個RST包。不同的操作系統有不同的響應方式。

      (4)IP分段掃描

      IP分段掃描本身并不是一種新的掃描方法,而是其他掃描技術的變種,特別是SYN掃描和FIN掃描。其原理是把TCP包分成很小的分片,從而讓它們能夠通過包過濾防火墻。不過,有些防火墻會丟棄太小的包,而有些服務程序在處理這樣的包的時候會出現異常、性能下降或者錯誤。

      (5)TCP FTP Proxy掃描

      在FTP協議中,數據連接可以與控制連接位于不同的機器上。例如,掃描內部網絡主機可以利用FTP服務器連接目標主機指定的端口,從而判斷目標主機是否打開了某個端口。利用PORT命令讓FTP服務器與目標主機的指定端口建立連接。如果端口打開,則可以傳輸,否則返回“425 Can't build data connection: Connection refused.”。FTP協議的這個缺陷還可以被用來向目標(郵件、新聞)傳送匿名信息。這種方法的優點是可以穿透防火墻,缺點是速度比較慢,且有些FTP服務器禁止這種特性。

      在所有的掃描工具中,Nmap是最著名也是最強大的掃描工具,它提供了可運行在Linux、Windows、MacOS等多個操作系統上的版本。Nmap不僅可用于探測主機的存活狀態,還可以掃描目標主機開放的端口、操作系統類型等,更為重要的是,它提供了隱蔽、半隱蔽等多種掃描策略。可以說,Nmap使用手冊就是一本端口掃描的教科書。圖2-5展示了Nmap的掃描結果。

      圖2-5 Nmap掃描結果

      4. UDP端口掃描

      上面討論的各種掃描技術實際上都是針對TCP端口的掃描技術。UDP端口的掃描比TCP端口的掃描要簡單得多,因為TCP是一種面向連接的流協議,而UDP則是一種無連接的數據報協議。

      攻擊者只需向目標主機的UDP端口任意發送一些數據,如果這個UDP端口是沒有開放的,則會發回一個 “目標不可達” ICMP報文。對于UDP端口掃描來說,這可能是目前唯一的方法。

      通用安全

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:C語言: 字符數組與字符串總結
      下一篇:wps文檔中怎么插入好看的背景色?
      相關文章
      中文字幕亚洲精品资源网| 亚洲欧洲∨国产一区二区三区| 人人狠狠综合久久亚洲婷婷| 国产亚洲漂亮白嫩美女在线| 亚洲综合欧美色五月俺也去| 亚洲Av高清一区二区三区| 4444亚洲国产成人精品| 日木av无码专区亚洲av毛片| 亚洲产国偷V产偷V自拍色戒| 亚洲成在人线av| 久久精品国产亚洲AV网站| 亚洲AV无码专区电影在线观看| 亚洲国产成人一区二区三区| 亚洲国产精品乱码一区二区| 亚洲精品夜夜夜妓女网| 国产精品亚洲а∨无码播放| 国产亚洲欧洲精品| 亚洲精品自产拍在线观看动漫| 91亚洲导航深夜福利| 亚洲欧洲国产综合| 亚洲一卡二卡三卡| 亚洲色偷偷色噜噜狠狠99网| 亚洲成在人线aⅴ免费毛片| 老牛精品亚洲成av人片| 亚洲国产精品综合久久网络| 国产产在线精品亚洲AAVV| 亚洲福利视频一区二区| 久久久久亚洲精品中文字幕| 亚洲日韩欧洲乱码AV夜夜摸| 久久精品国产亚洲AV麻豆~| 亚洲精品美女在线观看| 亚洲最大福利视频| 亚洲精品GV天堂无码男同| 亚洲国产一区二区视频网站| 黑人大战亚洲人精品一区| 亚洲精品乱码久久久久久 | 久久精品国产亚洲AV高清热| 亚洲精品第五页中文字幕| 亚洲激情视频图片| 亚洲AV无码国产一区二区三区 | 久久水蜜桃亚洲AV无码精品|