指令介紹

指令基本架構:

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:掃瞄作業系統及服務的版本資訊。

-sV:辨別出開啟的端口提供那些網路服務,以及其軟體版本。