[na]tcp&udp掃描原理
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掃描原理