指令介紹
指令基本架構:
nmap + [指定掃描模式] + [指定掃描的埠號] + [待掃描的目標主機]
掃描目標列表架構:
掃描的埠號列表中列出埠號、協定、服務名稱和狀態。
狀態分為四種:
1. open(開放的),表示受測主機上的應用程式正在該端口監聽連接。
2. filtered(被過濾的),表示防火牆或是其他網路障礙阻止了該端口被訪問,故Nmap無法得知他是open還是closed。
3. closed(關閉的),端口上沒有應用程式在監聽,但它們隨時可能開放。
4. unfiltered(未被過濾的),端口雖然回應了Nmap的偵測,但能無法確定它們是open還是closed。
open|filtered : 埠是開放的或不確定
closed|filtered : 埠是關閉的或不確定
受測機器更詳細的訊息:包括作業系統猜測,設備類型,和MAC地址等。
掃描資訊的詳細程度
不設定:列出簡單的預設掃描資訊
-v:(Verbose)列出詳細的掃描資訊
-vv:(Very Verbose)列出更多詳細的掃描資訊
-d:(Debug)以偵錯的模式列出詳細的掃描資訊
-d2:(Verbose Debug)以偵錯的方式列出更多詳細的掃描資訊
待掃描的目標主機
* 基本掃描:
掃描主機是否有開機,以及哪些連接埠有開啟,nmap +主機名稱/ip位址
* 一次掃描多台主機:
1. 將所有主機名稱一起列出
2. 不連續位址,使用「,」:nmap 192.168.0.2,127,150
3. 連續位址,使用「–」:nmap 192.168.0.123-140
* 一次掃描整個子網域:
nmap 192.168.0.*或是nmap 192.168.0.0/24
指定掃描的埠號
-p 80(指定單一端口)
-p 21、54、80、8081(不連續端口)
-p-(所有端口)
-F:只掃描常用的端口(常用的100個端口)
掃描模式
-sP:單純掃描子網路內的所有ip,並列出有回應的ip,不做進一步的測試。
-sL:只查詢網域中所有的主機名稱,不做任何主機與連接埠的偵測。
-sT:(TCP Connect Scan)使用TCP Connect()掃描,建立完整的3向交握連線,若-sS掃瞄無效會自動改用此掃描方式。
↑ 3向交握連線
-sS:(SYN Stealth Scan)又稱為半開放式掃描,發出SYN請求後,若受測方有開啟的TCP端口就會回應封包,再接著發送RST封包終止連線,因為沒有完成正常的3向交握,故測試主機不會留下紀錄(防火牆可能會留下紀錄)。
-sA:(ACK Scan)用來探測目標主機是否有防火牆保護,直接發送ACK封包,如果防火牆阻擋,封包到不了掃描的主機,主機就不會回應。如果防火牆未阻擋,因為不是正常的3向交握連線,主機會回應RST封包中斷連線。
-sM:(Mainmon Scan)原理類似-sA,但封包除了ACK之外還多加了一個FIN,可以用來判別那些端口是開啟狀態。
-sU:(UDP Scan)探測受測主機是否提供UDP(用戶資料流協定)服務。
-sO:(IP Protocol Scan)偵測目標主機的系統支援那些IP協定,ex:TCP、ICMP、IGP,為主機識別技術的一種。
主機服務識別選項
-sR:(RPC Scan)識別哪一個端口有提供RPC(遠端程式呼叫)服務,以及其服務的類型及版本編號。
-A:掃瞄作業系統及服務的版本資訊。