端口掃描

首先說說這個端口,一個開放的端口就是一條計算機進行通信的虛擬信道,通過對端口的掃描可以得到目標計算機開放的網絡服務程序,一般可以使用軟件Nmap來進行端口的掃描。

先來說說這個網絡端口,網絡端口是在傳輸層的TCP和UDP協議中設定的。TCP協議通過建立套接字Socket來建立兩臺計算機之間的網絡連接,套接字採用IP地址:端口號的形式來定義,同一個計算機的不同服務使用不同的端口來進行數據傳輸,當建立一個端口來進行數據的傳輸時,源主機的一個套接字會與目標主機的一個套接字相對應。一個端口是與一個程序相對應的,所以通過掃描端口就可以判斷出計算機中正在運行的程序

TCP協議和UDP協議的端口號範圍在0-65535之間,其中1024以下的端口保留給常用的網絡服務,比如21端口是FTP服務,23端口爲TELNET服務,25爲SMTP服務,80位HTTP服務,110爲POP3服務等

好了下面來說說這個常見的端口掃描技術

1. TCP全連接掃描,TCP全連接掃描是利用的TCP的三次握手原理來探測目標主機的網絡端口是否處於打開狀態,源主機的每一次掃描,都需要藉助於目標主機的一次TCP連接,如果可以建立三次握手,那麼就說明這個主機的端口是打開的,這種技術掃描出來的端口準確率高,但是由於源主機和目標主機的連接處於ESTABLISHED狀態,所以這種掃描容易被檢測出來

2. TCP SYN掃描(TCP半連接掃描),這種掃描使用了TCP連接中的前兩次握手,源目標主機發送第一次握手,如果目標主機返回了第二次握手的數據包,那麼就可以知道目標主機的端口是開放的,這個過程中,源主機不必迴應第三次握手的信息,反而會返回一個拒絕鏈接的數據包(RST位被標識爲1),拒絕完成TCP的全連接,如果端口沒有開放的話,那麼目標主機就會返回一個RST被標誌爲1的數據包,從而拒絕這次TCP鏈接,可以通過鑑別目標主機返回的數據包是SYN/ACK還是RST來辨別端口是否開放,這樣做減小了被發現的可能性,同時也可以脫稿掃描性能

3. TCP FIN掃描,FIN標識爲1用於釋放TCP連接,向目標主機發送一個FIN標記爲1的數據包,如果目標主機端口沒有開放,那麼就會返回一個RST標記爲1(出現差錯,必需重新連接)的數據包,如果目標主機的端口開放就會丟棄這個數據包,這種掃描方式不採取TCP的三次握手的方式,所以方法更加隱蔽,這種方法通常適用於UNIX系統的主機,但是對於windowsNT的主機,不論端口是否打開,都會返回一個RST數據包,這種方法就不適用了

4. UDP的ICMP端口不可達掃描,這種掃描方法基於UDP協議向目標主機的UDP網絡端口發送探測數據包如果對方主機端口開放的話,那麼這個網絡端口不會返回確認數據包,不過如果向一個未打開的UDP端口發送數據包的話,就會返回一個基於ICMP協議的錯誤,通過檢查是否接收到錯誤信息,就可以發現關閉的UDP端口。

5. ICMP掃描,向目標主機發送一個存在錯誤的IP數據包,根據返回的ICMP錯誤信息來判斷目標主機的網絡服務以及使用的網絡端口

6. 亂序掃描和慢速掃描,一般的端口掃描軟件在掃描端口的時候,會從小到大進行掃描,同時掃描的速度非常快,短時間內就可以掃描到大量的端口,這種方法往往會被目標主機的防火牆攔截或發出警告,所以在掃描的時候往往打亂順序和降低掃描速度,從而加強端口掃描數據包的隱蔽性

首發於我的個人網站: 點擊打開鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章