日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

端口扫描原理

發布時間:2024/8/1 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 端口扫描原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常見的端口掃描類型及原理

常見的掃描類型有以下幾種:

? ? ?

?

秘密掃描

秘密掃描是一種不被審計工具所檢測的掃描技術。
它通常用于在通過普通的防火墻或路由器的篩選(filtering)時隱藏自己。
秘密掃描能躲避IDS、防火墻、包過濾器和日志審計,從而獲取目標端口的開放或關閉的信息。由于沒有包含TCP?3次握手協議的任何部分,所以無法被記錄下來,比半連接掃描更為隱蔽。
但是這種掃描的缺點是掃描結果的不可靠性會增加,而且掃描主機也需要自己構造IP包。現有的秘密掃描有TCP?FIN掃描、TCP?ACK掃描、NULL掃描、XMAS掃描和SYN/ACK掃描等。?

1、Connect()掃描:

?????此掃描試圖與每一個TCP端口進行“三次握手”通信。如果能夠成功建立接連,則證明端口開發,否則為關閉。準確度很高,但是最容易被防火墻和IDS檢測到,并且在目標主機的日志中會記錄大量的連接請求以及錯誤信息。

TCP?connect端口掃描服務端與客戶端建立連接成功(目標端口開放)的過程:?
①?Client端發送SYN;
②?Server端返回SYN/ACK,表明端口開放;
③?Client端返回ACK,表明連接已建立;
④?Client端主動斷開連接。
建立連接成功(目標端口開放)如圖所示


TCP?connect端口掃描服務端與客戶端未建立連接成功(目標端口關閉)過程:?
①?Client端發送SYN;
②?Server端返回RST/ACK,表明端口未開放。
未建立連接成功(目標端口關閉)如圖所示。


優點:實現簡單,對操作者的權限沒有嚴格要求(有些類型的端口掃描需要操作者具有root權限),系統中的任何用戶都有權力使用這個調用,而且如果想要得到從目標端口返回banners信息,也只能采用這一方法。
另一優點是掃描速度快。如果對每個目標端口以線性的方式,使用單獨的connect()調用,可以通過同時打開多個套接字,從而加速掃描。
缺點:是會在目標主機的日志記錄中留下痕跡,易被發現,并且數據包會被過濾掉。目標主機的logs文件會顯示一連串的連接和連接出錯的服務信息,并且能很快地使它關閉。

2、SYN掃描:

??????掃描器向目標主機的一個端口發送請求連接的SYN包,掃描器在收到SYN/ACK后,不是發送的ACK應答而是發送RST包請求斷開連接。這樣,三次握手就沒有完成,無法建立正常的TCP連接,因此,這次掃描就不會被記錄到系統日志中。這種掃描技術一般不會在目標主機上留下掃描痕跡。但是,這種掃描需要有root權限。


????

端口開放:1、Client發送SYN??2、Server端發送SYN/ACK?3、Client發送RST斷開(只需要前兩步就可以判斷端口開放)

端口關閉:1、Client發送SYN??2、Server端回復RST(表示端口關閉)

優點:SYN掃描要比TCP?Connect()掃描隱蔽一些,SYN僅僅需要發送初始的SYN數據包給目標主機,如果端口開放,則相應SYN-ACK數據包;如果關閉,則響應RST數據包;

3、NULL掃描:

反向掃描----原理是將一個沒有設置任何標志位的數據包發送給TCP端口,在正常的通信中至少要設置一個標志位,根據FRC?793的要求,在端口關閉的情況下,若收到一個沒有設置標志位的數據字段,那么主機應該舍棄這個分段,并發送一個RST數據包,否則不會響應發起掃描的客戶端計算機。也就是說,如果TCP端口處于關閉則響應一個RST數據包,若處于開放則無相應。但是應該知道理由NULL掃描要求所有的主機都符合RFC?793規定,但是windows系統主機不遵從RFC?793標準,且只要收到沒有設置任何標志位的數據包時,不管端口是處于開放還是關閉都響應一個RST數據包。但是基于Unix(*nix,如Linux)遵從RFC?793標準,所以可以用NULL掃描。???經過上面的分析,我們知道NULL可以辨別某臺主機運行的操作系統是什么操作系統,是為windows呢?還是*nix?

端口開放:Client發送Null,server沒有響應


端口關閉:1、Client發送NUll???2、Server回復RST


說明:Null掃描和前面的TCP?Connect()和SYN的判斷條件正好相反。在前兩種掃描中,有響應數據包的表示端口開放,但在NUll掃描中,收到響應數據包表示端口關閉。反向掃描比前兩種隱蔽性高些,當精確度也相對低一些。

用途:判斷是否為Windows系統還是*nix

4、FIN掃描:

???????與NULL有點類似,只是FIN為指示TCP會話結束,在FIN掃描中一個設置了FIN位的數據包被發送后,若響應RST數據包,則表示端口關閉,沒有響應則表示開放。此類掃描同樣不能準確判斷windows系統上端口開發情況。

端口開放:發送FIN,沒有響應

端口關閉:1、發送FIN??2、回復RST

5、ACK掃描:

?????掃描主機向目標主機發送ACK數據包。根據返回的RST數據包有兩種方法可以得到端口的信息。方法一是:?若返回的RST數據包的TTL值小于或等于64,則端口開放,反之端口關閉,如圖所示。


6、Xmas-Tree掃描:

通過發送帶有下列標志位的tcp數據包

????????????????????????????????URG:指示數據時緊急數據,應立即處理。

????????????????????????????????PSH:強制將數據壓入緩沖區。

?????????????????????????????????FIN:在結束TCP會話時使用。

正常情況下,三個標志位不能被同時設置,但在此種掃描中可以用來判斷哪些端口關閉還是開放,與上面的反向掃描情況相同,依然不能判斷windows平臺上的端口。

端口開放:發送URG/PSH/FIN,沒有響應


端口關閉:1、發送URG/PSH/FIN,沒有響應???2、響應RST


XMAS掃描原理和NULL掃描的類似,將TCP數據包中的ACK、FIN、RST、SYN、URG、PSH標志位置1后發送給目標主機。在目標端口開放的情況下,目標主機將不返回任何信息。

7、Dump掃描:

???????也被稱為Idle掃描或反向掃描,在掃描主機時應用了第三方僵尸計算機掃描。由僵尸主機向目標主機發送SYN包。目標主機端口開發時回應SYN|ACK,關閉時返回RST,僵尸主機對SYN|ACK回應RST,對RST不做回應。從僵尸主機上進行掃描時,進行的是一個從本地計算機到僵尸主機的、連續的ping操作。查看僵尸主機返回的Echo響應的ID字段,能確定目標主機上哪些端口是開放的還是關閉的。

?

總結

以上是生活随笔為你收集整理的端口扫描原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。