1、Nmap的簡介
Nmap (Network Mapper,網絡映射器)是一款開放源代碼的網絡探測和稽核工具。它被設計用來快速掃描大型網絡,包括主機探測與發現、開放的端口情況、作業系統與應用服務指紋識别、WAF識别及常見安全漏洞。
2、Nmap的特點如下所示:
(1)主機探測:探測網絡上的主機,如列出響應TCP和ICMP的請求、ICMP請求、開放特别端口的主機。
(2)端口掃描:掃描主機所開放的端口。
(3)版本檢測:掃描目标主機的網絡服務,判斷其服務名稱及版本号。
(4)系統監測:掃描目标主機的作業系統及網絡裝置的硬體特性。
(5)支援探測腳本的編寫:使用Nmap的腳本引擎(NSE)和Lua程式設計語言。
Nmap主要包括四個方面的掃描功能,分别是主機發現(Host Discovery)、端口掃描(Port Scanning)、應用與版本偵測(Version Detection)、作業系統偵測(Operating System Detection)。這四項功能之間,又存在大緻的依賴關系。
下面将詳細介紹以上Nmap各功能之間的依賴關系。如下所示:
(1)首先使用者需要進行主機發現,找出活動的主機。然後,确定活動主機上端口狀況。
(2)根據端口掃描,以确定端口上具體運作的應用程式與版本資訊。
(3)對版本資訊偵測後,對作業系統進行偵測。
在這四項基本功能的基礎上,Nmap提供防火牆與IDS(Intrusion Detection System,入侵檢測系統)的規避技巧,可以綜合應用到四個基本功能的各個階段;另外Nmap提供強大的NSE(Nmap Scripting Language)腳本引擎功能,腳本可以對基本功能進行補充和擴充。
3、探索網絡
Nmap的6種端口狀态:
Open:開放狀态 Closed:關閉狀态 Filtered:過濾狀态 (可能被過濾,可能網絡阻塞)
Unfiltered:未被過濾狀态 (可以通路,但未知端口處于開放還是關閉狀态)
Open|Filtered:開放還是過濾的 Closed|Filtered:不能确定端口是關閉還是被過濾的
掃描目标時所用到的常見相關參數:
--exclude 後面跟的主機或網段不在掃描範圍内
-p 掃描指定的端口
-Pn 将所有指定的主機視作已開啟,跳過主機發現的過程
-F 快速模式,僅掃描TOP100的端口
-iL 從檔案中導入目标主機或目标網段
-r 不進行端口随機打亂的操作(如無該參數,Nmap将要掃描的端口以随機順序的方式進行掃描,可以防止防火牆檢測到)
-sL List Scan,僅列舉指定目标IP位址,不進行主機發現
-sn Ping Scan,隻進行主機發現,不進行端口掃描
-sS TCP SYN掃描:(需要root權限)
-sT TCP連接配接掃描:完整三次握手,最基礎最穩定的掃描方式
-sU UDP掃描(速度非常慢,一般用-p指定端口範圍以節約時間)
-sN/sF/sX 指定使用TCP NULL/FIN/Xmas scans 隐蔽掃描對方TCP端口的狀态
-sA TCP ACK掃描
-sW TCP視窗掃描
-sM TCP Maimon掃描
--scanflags 自定義TCP掃描
-sO 使用IP protocol掃描确定主機支援的協定類型
-sV 指定讓Nmap進行版本偵測
-T 時序選項
時序選項:
-T0(偏執的):非常慢的掃描,用于IDS逃避
-T1(鬼祟的):緩慢的掃描,用于IDS逃避
-T2(文雅的):降低速度以降低對帶寬的消耗,一般不同
-T3(普通的):預設,根據目标的反應自動調整時間
-T4(野蠻的):快速掃描,常用,需要在很好的網絡環境下進行掃描,請求可能會淹沒目标
-T5(瘋狂的):極速掃描,以犧牲準确度來提升掃描速度
4、常用的掃描方式
(1)指定端口掃描
Nmap -p 80 192.168.1.1

(2)掃描單個目标位址
Namp 192.168.1.1
(3)掃描多個目标位址
Nmap 192.168.1.1 192.168.1.154
(4)掃描一個範圍内的目标位址
Namp 192.168.1.1-160
(5)掃描目标位址所在的整個網段
Nmap 192.168.1.154/24
(6)掃描目标位址的作業系統
Nmap -O 192.168.1.150
(7)檢測防火牆狀态
Nmap -sF 192.168.1.150
(8)TCP SYN掃描,又稱為半開放掃描,常見的掃描方式。掃描速度較快,由于未進行TCP連接配接,比較隐蔽,很難被防火牆或管理者發現
Nmap -sS 192.168.1.150
(9)掃描常見的漏洞
Nmap --script=vuln 192.168.1.1
(10)應用服務掃描
Nmap --script=realvnc-auth-bypass 192.168.1.152