NMAP 掃瞄方式說明
此文說明 Nmap 的幾種掃瞄方式,原本是記載於我的紙本筆記,因為筆記發霉了,又常常找不到,所以做成數位典藏。
XMAS TREE SCAN [-sX]
說明:將TCP所有flag打開(FIN, URG, PUSH, ACK, SYN)
結果:unix會把往Open port的封包丟棄,Win2000回應不正常
NULL SCAN [-sN]
說明:將TCP所有flag關閉,RFC793未定義如何處理此類封包
結果:除了BSD開啟埠會丟棄外,其餘系統回應RST,可由此判斷是否為BSD系統
FIN SCAN [-sF]
說明:傳送TCP 只有FIN的旗標的封包
結果:類似XMAS
ACK SCAN [-sA]
說明:傳送TCP 只有ACK的旗標的封包
結果:此方法可用TTL來檢查是否有防火牆封鎖,如果無防火牆,會收到RST的回應。
SYN SCAN [-sS]
說明:傳送TCP SYN、SYN+ACK的旗標的封包,但不完成三向交握。
結果:用來確定埠是否有開,不完成三向交握,又稱為half-open。這種掃瞄目前可視為一種攻擊。
PING SCAN [-sP]
說明:傳送icmp Ping, 利用 icmp request/response 來確認目標是否存在
結果:等於PING,目標有回應代表存在:
WINDOW SCAN [-sW]
說明:同ACK SCAN,不同點在於送出的ACK中帶有訊框大小(window size)
結果:結果類似於SYN SCAN,可檢查目標埠是否開啟
LIST SCAN [-sL]
說明:進行dns反查,和 -n 參數共用則此查詢無效
結果:列出此ip設定的反查,此方法可以快速掃瞄反查記錄,但不會真正去掃瞄目標。
PRC SCAN [-sR]
說明:找出開啟的PRC應用程式
結果:可列出目標的PRC插座,可用此方式找出可能的隱藏弱點
Interesting ports on tc.edu.tw (163.17.x.x):
Not shown: 1677 filtered ports
PORT STATE SERVICE VERSION
80/tcp open http
113/tcp closed auth
443/tcp open https
TCP connection SCAN [-sT]
說明:傳送TCP SYN、SYN+ACK、ACK 的旗標的封包,建立完整連線。
結果:和目標完成三向交握,結果等同SYN SCAN。
Version Detection [-sV]
說明:利用 SYN/TCP SCAN找出開啟的埠號,再由應用程式交談特徵決定作業系統類型。
結果:顯示作業系統類型,但此功能極為耗時。
UDP SCAN [-sU]
說明:掃瞄開啟的udp埠
結果:這是唯一可用的udp掃瞄。
IDLE SCAN [-sI]
說明:利用中間的殭屍主機,隱藏自己身份進行掃瞄。
結果:顯示有無開啟埠。過程複雜只為了隱藏身份。
IP SCAN [-sO]
說明:用ip的協定來掃描
結果:這是很特別的掃描方式,可用的協定可參考 /etc/protocols 的列表。以下是使用範例
# nmap -sO -p 1-254 163.17.x.x
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2015-08-24 21:10 CST
Interesting protocols on n.zipko.info (163.17.x.x):
Not shown: 249 closed protocols
PROTOCOL STATE SERVICE
1 open icmp
2 open|filtered igmp
6 open tcp
17 open udp
41 open|filtered ipv6
Nmap finished: 1 IP address (1 host up) scanned in 1.224 seconds
NMAP 掃瞄結果狀態[1]
open 目的埠開啟接受連入
filtered 目的埠無法確定能否開啟或關閉,因被某些設備擋住
unfiltered 目的埠不知是開啟或是關閉,但已使用ACK Scan確定沒有被設備過濾,需要更進階的掃瞄。
closed 目的埠已關閉,無法連入
open|filtered 無法確定是開啟或是被濾掉的埠
closed|filtered 無法確定是關閉或是被濾掉的埠
參考資料
[1] NMAP Port scaning basics
原文 2015-08-22 22:49:17