Nmap是用于安全審核和滲透測(cè)試的強(qiáng)大網(wǎng)絡(luò)掃描工具。它是網(wǎng)絡(luò)管理員用于解決網(wǎng)絡(luò)連接問(wèn)題和端口掃描的基本工具之一。
Nmap還可以檢測(cè)Mac地址,操作系統(tǒng)類型,服務(wù)版本等。本教程介紹如何使用nmap
命令執(zhí)行各種網(wǎng)絡(luò)任務(wù)的基礎(chǔ)知識(shí)。
Nmap可以所有流行的操作系統(tǒng)上安裝。Nmap是跨平臺(tái)應(yīng)用程序。它最初僅發(fā)布在Linux的發(fā)行版,后來(lái)又被移植到其他系統(tǒng),例如BSD,Windows和macOS。
如果您更喜歡GUI而不是命令行,可以安裝Nmap的GUI版本Zenmap??蓮腘map下載頁(yè)面。下載官方二進(jìn)制包。安裝過(guò)程很簡(jiǎn)單,并且根據(jù)您的操作系統(tǒng)而有所不同。
安裝Nmap
如果你的系統(tǒng)未安裝nmap,命令將顯示nmap: command not found,tio命令未找到。您可以使用發(fā)行版的軟件包管理器輕松安裝nmap。
如果你的計(jì)算機(jī)運(yùn)行的是基于Debian的Linux發(fā)行版,例如Ubuntu,Linux mint。請(qǐng)運(yùn)行命令sudo apt update && sudo apt install nmap
安裝nmap。
如果你的計(jì)算機(jī)運(yùn)行的是基于RedHat的Linux發(fā)行版,例如CentOS,F(xiàn)edora。請(qǐng)運(yùn)行命令sudo dnf install nmap
安裝nmap。
如果你的計(jì)算機(jī)運(yùn)行的是MacOS,請(qǐng)運(yùn)行命令brew install nmap
安裝nmap。
sudo apt update && sudo apt install nmap
sudo dnf install nmap
brew install nmap
如果你的計(jì)算機(jī)運(yùn)行的是Windows,Nmap在Windows上有一些限制,并且通常比UNIX版本要慢一些。
在Windows安裝Nmap的最簡(jiǎn)單選擇是下載并運(yùn)行安裝exe文件。您可以通過(guò)命令行或啟動(dòng)Zenmap在Windows運(yùn)行Nmap。
有關(guān)如何在Windows使用Nmap的更多信息,請(qǐng)查看安裝后使用說(shuō)明。
Nmap 命令選項(xiàng)
Nmap通常用于審核網(wǎng)絡(luò)安全性,網(wǎng)絡(luò)映射,掃描端口并搜索在線設(shè)備。nmap
命令語(yǔ)法形式是nmap [Options] [Target...]
。
使用Nmap的最基本示例不指定任何選項(xiàng),掃描指定的計(jì)算機(jī)。nmap
命令默認(rèn)運(yùn)行TCP端口掃描。nmap命令的默認(rèn)選項(xiàng)是-sT
。
輸出的內(nèi)容,包括掃描的基本信息以及已打開(kāi)端口,服務(wù)名稱,還有端口的狀態(tài)信息。
nmap scanme.nmap.org
Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT STATE SERVICE
8080/tcp open http-proxy
8081/tcp open blackice-icecap
Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds
最受歡迎的掃描選項(xiàng)-sS
,也就是TCP SYN掃描,它比connect選項(xiàng)要快,并且可用于所有兼容的TCP的堆棧。
當(dāng)以root用戶運(yùn)行nmap
時(shí),默認(rèn)會(huì)打開(kāi)-sS
選項(xiàng)。要獲得更詳細(xì)的輸出,請(qǐng)?zhí)砑?code>-v或-vv
選項(xiàng)。
如果運(yùn)行UDP掃描,請(qǐng)以root用戶使用-sU
選項(xiàng)運(yùn)行nmap命令。Nmap也支持IPv6地址。要指定IPv6主機(jī),請(qǐng)使用-6
選項(xiàng)。
sudo nmap 192.168.10.121
sudo nmap -vv 192.168.10.121
sudo nmap -sU 192.168.10.121
sudo nmap -6 fd12:3456:789a:1::1
nmap 指定目標(biāo)主機(jī)
Nmap將所有不是選項(xiàng)的參數(shù)視為目標(biāo)主機(jī)。如果參數(shù)以單破折號(hào)或雙破折號(hào)-
/--
開(kāi)頭,則視為選項(xiàng)。
在指定目標(biāo)主機(jī)時(shí)最簡(jiǎn)單的方式傳遞一個(gè)或多個(gè)目標(biāo)地址或域名,您也可以使用CIDR表示法指定網(wǎng)絡(luò)范圍,例如命令nmap 192.168.10.0/24
。
要指定八位字節(jié)范圍,請(qǐng)使用破折號(hào)。例如,要掃描IP地址是192.168.10.1
,192.168.11.1
,192.168.12.1
的主機(jī),請(qǐng)運(yùn)行命令nmap 192.168.10-12.1
。
nmap 192.168.10.121 host.to.scan
nmap 192.168.10.0/24
nmap 192.168.10-12.1
您還可以使用逗號(hào)指定目標(biāo)主機(jī)。例如命令nmap 192.168.10,11,12.1
將會(huì)掃描IP地址是192.168.10.1
,192.168.11.1
,192.168.12.1
的主機(jī)。
除了以上方式指定主機(jī)之外,也可以組合上述模式作為掃描的目標(biāo)主機(jī)。
要確保在掃描前指定正確的主機(jī)的IP地址范圍,請(qǐng)使用-sL
選項(xiàng)運(yùn)行nmap命令,該選項(xiàng)只是僅列出目標(biāo)而不會(huì)運(yùn)行真正的掃描。
如果要排除指定范圍內(nèi)的目標(biāo),請(qǐng)使用--exclude
選項(xiàng)運(yùn)行nmap命令。
nmap 192.168.10,11,12.1
nmap 10.8-10.10,11,12.0/28 192.168.1-2.100,101
nmap -sL 10.8-10.10,11,12.0/28 192.168.1-2.100,101
nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12
nmap 指定掃描端口
Nmap默認(rèn)前1000個(gè)最流行的端口執(zhí)行快速掃描。這些端口不是前1000個(gè)連續(xù)的端口,而是1000個(gè)最常用的端口,范圍從1到1000。
如果要掃描所有TCP端口,也就是1到65535的端口,請(qǐng)使用-p-
選項(xiàng)運(yùn)行nmap命令。例如命令nmap -p- 192.168.10.121
。
命令將會(huì)打印端口的狀態(tài)和服務(wù),每個(gè)端口可以處于狀態(tài)open,close,filtered。
open表示端口運(yùn)行的程序響應(yīng)請(qǐng)求,close表示端口沒(méi)有程序運(yùn)行,但主機(jī)不復(fù)請(qǐng)求。filtered主機(jī)不回復(fù)請(qǐng)求。
nmap -p- 192.168.10.121
端口和端口范圍由-p
選項(xiàng)指定。例如,要僅掃描443端口,可以運(yùn)行命令nmap -p 443 192.168.10.121
。要指定多個(gè)端口,請(qǐng)用逗號(hào)分隔端口。
端口范圍可以用破折號(hào)指定。例如要掃描端口范圍從1到1024的所有UDP端口,可以運(yùn)行命令sudo nmap -sU -p 1-1024 192.168.10.121
。
也可以組合兩種模式指定端口的范圍或者多個(gè)端口。命令nmap -p 1-1024,8080,9000 192.168.10.121
組合使用逗號(hào),端口范圍。
nmap還允許你使用服務(wù)名稱代替端口的數(shù)值。例如要掃描端口22,可以使用ssh代替數(shù)字端口,例如命令nmap -p ssh 192.168.10.121
。
nmap -p 443 192.168.10.121
nmap -p 80,443 192.168.10.121
sudo nmap -sU -p 1-1024 192.168.10.121
nmap -p 1-1024,8080,9000 192.168.10.121
nmap -p ssh 192.168.10.121
nmap Ping掃描
要執(zhí)行ping掃描或主機(jī)發(fā)現(xiàn),請(qǐng)使用-sn
選項(xiàng)運(yùn)行nmap
命令,-sn
選項(xiàng)僅發(fā)現(xiàn)在線主機(jī),而不進(jìn)行端口掃描。
當(dāng)您要快速確定哪些指定主機(jī)已啟動(dòng)并正在運(yùn)行時(shí),此功能很有用。
例如命令sudo nmap -sn 192.168.10.0/24
將會(huì)運(yùn)行ping掃描,發(fā)現(xiàn)192.168.10.0/24網(wǎng)段的主機(jī)。
sudo nmap -sn 192.168.10.0/24
禁用DNS名稱解析
Nmap的默認(rèn)行為是對(duì)每個(gè)發(fā)現(xiàn)的主機(jī)執(zhí)行反向DNS解析,這會(huì)增加掃描時(shí)間。
掃描大型網(wǎng)絡(luò)時(shí),最好禁用反向DNS解析并加快掃描速度。因此,可以使用-n
選項(xiàng)運(yùn)行nmap命令。
sudo nmap -n 192.168.10.0/16
namp 操作系統(tǒng)檢測(cè)
Nmap可以使用TCP/IP堆棧指紋來(lái)檢測(cè)遠(yuǎn)程主機(jī)操作系統(tǒng)。如需要運(yùn)行操作系統(tǒng)檢測(cè),請(qǐng)使用-O
選項(xiàng)運(yùn)行nmap命令。
如果Nmap可以檢測(cè)到主機(jī)操作系統(tǒng),它將打印操作系統(tǒng)的信息。
sudo nmap -O scanme.nmap.org
...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds
namp 服務(wù)和版本檢測(cè)
通常,系統(tǒng)服務(wù)監(jiān)聽(tīng)在眾所周知端口。假設(shè)遠(yuǎn)程主機(jī)運(yùn)行著SSH服務(wù),并可能監(jiān)聽(tīng)端口22。
但是您不能絕對(duì)確定,因?yàn)橄到y(tǒng)管理員可以指定在任何端口運(yùn)行SSH服務(wù)。借助namp的服務(wù)和版本檢測(cè)功能,nmap將在指定端口上檢測(cè)程序和程序版本。
要使用nmap的服務(wù)和版本檢測(cè),使用-sV
選項(xiàng)運(yùn)行namp命令。例如命令sudo nmap -sV scanme.nmap.org
將會(huì)檢測(cè)scanme.nmap.org
主機(jī)運(yùn)行服務(wù)和版本。
您還可以使用-A
選項(xiàng)在一個(gè)命令中掃描操作系統(tǒng)版本并運(yùn)行traceroute。
sudo nmap -sV scanme.nmap.org
sudo nmap -A 192.168.10.121
...
PORT STATE SERVICE VERSION
19/tcp filtered chargen
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
9929/tcp open nping-echo Nping echo
31337/tcp open tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...
Nmap 輸出
Nmap默認(rèn)將信息打印到標(biāo)準(zhǔn)輸出。如果您掃描大型網(wǎng)絡(luò)或需要保存信息,則可以將nmap命令輸出保存到文件中。
Nmap提供幾種輸出類型。要以普通文本格式保存文件,請(qǐng)使用-oN
選項(xiàng),后跟文件名。
最流行的選項(xiàng)是以XML格式保存輸出,請(qǐng)使用-oX
選項(xiàng)運(yùn)行nmap命令,后跟文件名。
另一種非常有用的格式是grepable,可以用標(biāo)準(zhǔn)Unix命令,例如grep
,awk
和cut
進(jìn)行解析。如果需要使用此格式?jīng)],請(qǐng)使用-oG
選項(xiàng)運(yùn)行nmap命令。
sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt
sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml
sudo nmap -sU -p 1-1024 192.168.10.121 -oG output
Nmap 腳本引擎
Nmap最強(qiáng)大的功能之一就是其腳本引擎。Nmap具有非常多腳本文件,您也可以使用Lua語(yǔ)言編寫(xiě)自己的腳本。
您可以使用腳本來(lái)檢測(cè)惡意軟件和后門(mén)程序,執(zhí)行暴力攻擊等。例如要檢查指定主機(jī)是否受到攻擊。
可以運(yùn)行命令nmap -sV --script http-malware-host scanme.nmap.org
。
nmap -sV --script http-malware-host scanme.nmap.org
結(jié)論
Nmap是用于安全審核和滲透測(cè)試的強(qiáng)大網(wǎng)絡(luò)掃描工具,網(wǎng)絡(luò)管理員主要使用它來(lái)發(fā)現(xiàn)主機(jī)和掃描端口。
請(qǐng)注意,在某些國(guó)家/地區(qū),未經(jīng)授權(quán)掃描網(wǎng)絡(luò)是非法的。
-
Linux
+關(guān)注
關(guān)注
87文章
11177瀏覽量
208494 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7295瀏覽量
87534 -
WINDOWS
+關(guān)注
關(guān)注
3文章
3510瀏覽量
88222
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論