網路安全系列之二十八埠掃描

科技小能手發表於2017-11-15

埠掃描在系統攻防中佔據非常重要的地位,在瞭解埠掃描之前,有必要先了解一些TCP協議以及三次握手的相關知識。

1. TCP協議

TCP報文格式如下圖所示:

image

其中比較重要的幾個欄位:

  • 復位位元RST:當RST=1時,表明TCP連線中出現嚴重差錯(如由於主機崩潰或其它原因),必須釋放連線,然後再重新建立連線。

  • 同步位元SYN:同步位元SYN置為1,就表示這是一個連線請求或連線接受報文。

  • 終止位元FIN:用來釋放一個連線。當FIN=1時,表明此報文的傳送端的資料已傳送完畢,並要求釋放連線。

TCP三次握手建立連線的過程:

image

 

2. 埠掃描型別

埠掃描就是嘗試與目標主機的某些埠建立連線,如果目標主機該埠有回覆,則說明埠開放,即為“活動埠”。通過埠掃描可以判斷目標主機上開放了哪些服務,執行何種作業系統,以便使用相應的手段進行入侵。

根據掃描原理不同,埠掃描可以有以下分類:全TCP掃描、半開式掃描(SYN掃描)、FIN掃描。

(1)全TCP掃描

這種掃描方法使用三次握手,與目標計算機建立標準的TCP連線。但這種掃描方法很容易被目標主機記錄。

(2)半開式掃描(SYN掃描)

在這種掃描方式中,掃描主機向目標計算機的指定埠傳送SYN資料段,表示傳送建立連線請求。

如果目標計算機的回應TCP報文中SYN=1,ACK=1,則說明該埠是活動的,接著掃描主機傳送一個RST給目標主機,拒絕建立TCP連線,從而導致三次握手過程的失敗。

如果目標計算機的回應是RST,則表示該埠是“死埠”,這種情況下,掃描主機不用做任何回應。

SYN掃描,由於掃描過程中全連線尚未建立,所以大大降低了被目標計算機記錄的可能性,並且加快了掃描的速度。

(3)FIN掃描

當傳送一個FIN=1的TCP報文到一個關閉的埠時,該報文會被丟掉,並返回一個RST報文。但是當傳送FIN報文到一個活動的埠時,該報文只是簡單的丟掉,不會返回任何回應。

FIN掃描沒有涉及任何TCP連線部分,因此這種掃描比前兩種都安全,可以稱之為祕密掃描。

本文轉自 yttitan 51CTO部落格,原文連結:http://blog.51cto.com/yttitan/1574064


相關文章