1. 程式人生 > >[na]tcp&udp掃描原理

[na]tcp&udp掃描原理

不同類 信息 查詢 href reac 端口 ihe icm ket

nmap軟件使用思路及常見用法
Nmap高級用法與典型場景

namp -sn 4種包

使用nmap -sn 查詢網段中關註主機或者整個網段的IP存活狀態

    nmap -sn
nmap針對局域網和廣域網(會根據源目的是否在同一網段進行判斷)有兩種不同的掃描方式
當目標主機與源主機不在同一網段時:
Nmap會發送四種不同類型的數據包來探測目標主機是否在線。
1)  ICMP echo request
2)  a TCP SYN packet to port 443
3)  a TCP ACK packet to port 80
4)  an ICMP timestamp request

舉例:以掃描某個公網IP為例

技術分享圖片

端口掃描原理

TCP SYN scanning

這是Nmap默認的掃描方式,通常被稱作半開放掃描(Half-open scanning)。該方式發送SYN到目標端口,如果收到SYN/ACK回復,那麽判斷端口是開放的;如果收到RST包,說明該端口是關閉的。如果沒有收到回復,那麽判斷該端口被屏蔽(Filtered)。因為該方式僅發送SYN包對目標主機的特定端口,但不建立的完整的TCP連接,所以相對比較隱蔽,而且效率比較高,適用範圍廣。
TCP SYN探測到端口關閉:
技術分享圖片

TCP SYN探測到端口開放:
技術分享圖片

TCP connect scanning

TCP connect方式使用系統網絡API connect向目標主機的端口發起連接,如果無法連接,說明該端口關閉。該方式掃描速度比較慢,而且由於建立完整的TCP連接會在目標機上留下記錄信息,不夠隱蔽。所以,TCP connect是TCP SYN無法使用才考慮選擇的方式。

TCP connect探測到端口關閉:

技術分享圖片

TCP connect探測到端口開放:
技術分享圖片

TCP ACK scanning

向目標主機的端口發送ACK包,如果收到RST包,說明該端口沒有被防火墻屏蔽;沒有收到RST包,說明被屏蔽。該方式只能用於確定防火墻是否屏蔽某個端口,可以輔助TCP SYN的方式來判斷目標主機防火墻的狀況。

TCP ACK探測到端口被屏蔽:
技術分享圖片
TCP ACK探測到端口未被屏蔽:
技術分享圖片

TCP FIN/Xmas/NULL scanning

這三種掃描方式被稱為秘密掃描(Stealthy Scan),因為相對比較隱蔽。FIN掃描向目標主機的端口發送的TCP FIN包或Xmas tree包/Null包,如果收到對方RST回復包,那麽說明該端口是關閉的;沒有收到RST包說明端口可能是開放的或被屏蔽的(open|filtered)。

其中Xmas tree包是指flags中FIN URG PUSH被置為1的TCP包;NULL包是指所有flags都為0的TCP包。

TCP FIN探測到主機端口是關閉的:
技術分享圖片

TCP FIN探測到主機端口是開放或屏蔽的:
技術分享圖片

UDP scanning

UDP掃描方式用於判斷UDP端口的情況。向目標主機的UDP端口發送探測包,如果收到回復“ICMP port unreachable”就說明該端口是關閉的;如果沒有收到回復,那說明UDP端口可能是開放的或屏蔽的。因此,通過反向排除法的方式來斷定哪些UDP端口是可能出於開放狀態。

UDP端口關閉:traceroute(udp+icmp)原理
技術分享圖片

UDP端口開放或被屏蔽:
技術分享圖片

[na]tcp&udp掃描原理