Nmap是用于安全審核和滲透測試的強(qiáng)大網(wǎng)絡(luò)掃描工具。它是網(wǎng)絡(luò)管理員用于解決網(wǎng)絡(luò)連接問題和端口掃描的基本工具之一。
Nmap還可以檢測Mac地址,操作系統(tǒng)類型,服務(wù)版本等。本教程介紹如何使用nmap
命令執(zhí)行各種網(wǎng)絡(luò)任務(wù)的基礎(chǔ)知識。
Nmap可以所有流行的操作系統(tǒng)上安裝。Nmap是跨平臺應(yīng)用程序。它最初僅發(fā)布在Linux的發(fā)行版,后來又被移植到其他系統(tǒng),例如BSD,Windows和macOS。
如果您更喜歡GUI而不是命令行,可以安裝Nmap的GUI版本Zenmap??蓮腘map下載頁面。下載官方二進(jìn)制包。安裝過程很簡單,并且根據(jù)您的操作系統(tǒng)而有所不同。
安裝Nmap
如果你的系統(tǒng)未安裝nmap,命令將顯示nmap: command not found,tio命令未找到。您可以使用發(fā)行版的軟件包管理器輕松安裝nmap。
如果你的計算機(jī)運(yùn)行的是基于Debian的Linux發(fā)行版,例如Ubuntu,Linux mint。請運(yùn)行命令sudo apt update && sudo apt install nmap
安裝nmap。
如果你的計算機(jī)運(yùn)行的是基于RedHat的Linux發(fā)行版,例如CentOS,F(xiàn)edora。請運(yùn)行命令sudo dnf install nmap
安裝nmap。
如果你的計算機(jī)運(yùn)行的是MacOS,請運(yùn)行命令brew install nmap
安裝nmap。
sudo apt update && sudo apt install nmap
sudo dnf install nmap
brew install nmap
如果你的計算機(jī)運(yùn)行的是Windows,Nmap在Windows上有一些限制,并且通常比UNIX版本要慢一些。
在Windows安裝Nmap的最簡單選擇是下載并運(yùn)行安裝exe文件。您可以通過命令行或啟動Zenmap在Windows運(yùn)行Nmap。
有關(guān)如何在Windows使用Nmap的更多信息,請查看安裝后使用說明。
Nmap 命令選項
Nmap通常用于審核網(wǎng)絡(luò)安全性,網(wǎng)絡(luò)映射,掃描端口并搜索在線設(shè)備。nmap
命令語法形式是nmap [Options] [Target...]
。
使用Nmap的最基本示例不指定任何選項,掃描指定的計算機(jī)。nmap
命令默認(rèn)運(yùn)行TCP端口掃描。nmap命令的默認(rèn)選項是-sT
。
輸出的內(nè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
最受歡迎的掃描選項-sS
,也就是TCP SYN掃描,它比connect選項要快,并且可用于所有兼容的TCP的堆棧。
當(dāng)以root用戶運(yùn)行nmap
時,默認(rèn)會打開-sS
選項。要獲得更詳細(xì)的輸出,請?zhí)砑?code>-v或-vv
選項。
如果運(yùn)行UDP掃描,請以root用戶使用-sU
選項運(yùn)行nmap命令。Nmap也支持IPv6地址。要指定IPv6主機(jī),請使用-6
選項。
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將所有不是選項的參數(shù)視為目標(biāo)主機(jī)。如果參數(shù)以單破折號或雙破折號-
/--
開頭,則視為選項。
在指定目標(biāo)主機(jī)時最簡單的方式傳遞一個或多個目標(biāo)地址或域名,您也可以使用CIDR表示法指定網(wǎng)絡(luò)范圍,例如命令nmap 192.168.10.0/24
。
要指定八位字節(jié)范圍,請使用破折號。例如,要掃描IP地址是192.168.10.1
,192.168.11.1
,192.168.12.1
的主機(jī),請運(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
您還可以使用逗號指定目標(biāo)主機(jī)。例如命令nmap 192.168.10,11,12.1
將會掃描IP地址是192.168.10.1
,192.168.11.1
,192.168.12.1
的主機(jī)。
除了以上方式指定主機(jī)之外,也可以組合上述模式作為掃描的目標(biāo)主機(jī)。
要確保在掃描前指定正確的主機(jī)的IP地址范圍,請使用-sL
選項運(yùn)行nmap命令,該選項只是僅列出目標(biāo)而不會運(yùn)行真正的掃描。
如果要排除指定范圍內(nèi)的目標(biāo),請使用--exclude
選項運(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個最流行的端口執(zhí)行快速掃描。這些端口不是前1000個連續(xù)的端口,而是1000個最常用的端口,范圍從1到1000。
如果要掃描所有TCP端口,也就是1到65535的端口,請使用-p-
選項運(yùn)行nmap命令。例如命令nmap -p- 192.168.10.121
。
命令將會打印端口的狀態(tài)和服務(wù),每個端口可以處于狀態(tài)open,close,filtered。
open表示端口運(yùn)行的程序響應(yīng)請求,close表示端口沒有程序運(yùn)行,但主機(jī)不復(fù)請求。filtered主機(jī)不回復(fù)請求。
nmap -p- 192.168.10.121
端口和端口范圍由-p
選項指定。例如,要僅掃描443端口,可以運(yùn)行命令nmap -p 443 192.168.10.121
。要指定多個端口,請用逗號分隔端口。
端口范圍可以用破折號指定。例如要掃描端口范圍從1到1024的所有UDP端口,可以運(yùn)行命令sudo nmap -sU -p 1-1024 192.168.10.121
。
也可以組合兩種模式指定端口的范圍或者多個端口。命令nmap -p 1-1024,8080,9000 192.168.10.121
組合使用逗號,端口范圍。
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),請使用-sn
選項運(yùn)行nmap
命令,-sn
選項僅發(fā)現(xiàn)在線主機(jī),而不進(jìn)行端口掃描。
當(dāng)您要快速確定哪些指定主機(jī)已啟動并正在運(yùn)行時,此功能很有用。
例如命令sudo nmap -sn 192.168.10.0/24
將會運(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)行為是對每個發(fā)現(xiàn)的主機(jī)執(zhí)行反向DNS解析,這會增加掃描時間。
掃描大型網(wǎng)絡(luò)時,最好禁用反向DNS解析并加快掃描速度。因此,可以使用-n
選項運(yùn)行nmap命令。
sudo nmap -n 192.168.10.0/16
namp 操作系統(tǒng)檢測
Nmap可以使用TCP/IP堆棧指紋來檢測遠(yuǎn)程主機(jī)操作系統(tǒng)。如需要運(yùn)行操作系統(tǒng)檢測,請使用-O
選項運(yùn)行nmap命令。
如果Nmap可以檢測到主機(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ù)和版本檢測
通常,系統(tǒng)服務(wù)監(jiān)聽在眾所周知端口。假設(shè)遠(yuǎn)程主機(jī)運(yùn)行著SSH服務(wù),并可能監(jiān)聽端口22。
但是您不能絕對確定,因為系統(tǒng)管理員可以指定在任何端口運(yùn)行SSH服務(wù)。借助namp的服務(wù)和版本檢測功能,nmap將在指定端口上檢測程序和程序版本。
要使用nmap的服務(wù)和版本檢測,使用-sV
選項運(yùn)行namp命令。例如命令sudo nmap -sV scanme.nmap.org
將會檢測scanme.nmap.org
主機(jī)運(yùn)行服務(wù)和版本。
您還可以使用-A
選項在一個命令中掃描操作系統(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提供幾種輸出類型。要以普通文本格式保存文件,請使用-oN
選項,后跟文件名。
最流行的選項是以XML格式保存輸出,請使用-oX
選項運(yùn)行nmap命令,后跟文件名。
另一種非常有用的格式是grepable,可以用標(biāo)準(zhǔn)Unix命令,例如grep
,awk
和cut
進(jìn)行解析。如果需要使用此格式?jīng)],請使用-oG
選項運(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語言編寫自己的腳本。
您可以使用腳本來檢測惡意軟件和后門程序,執(zhí)行暴力攻擊等。例如要檢查指定主機(jī)是否受到攻擊。
可以運(yùn)行命令nmap -sV --script http-malware-host scanme.nmap.org
。
nmap -sV --script http-malware-host scanme.nmap.org
結(jié)論
Nmap是用于安全審核和滲透測試的強(qiáng)大網(wǎng)絡(luò)掃描工具,網(wǎng)絡(luò)管理員主要使用它來發(fā)現(xiàn)主機(jī)和掃描端口。
請注意,在某些國家/地區(qū),未經(jīng)授權(quán)掃描網(wǎng)絡(luò)是非法的。
-
Linux
+關(guān)注
關(guān)注
87文章
11351瀏覽量
210507 -
計算機(jī)
+關(guān)注
關(guān)注
19文章
7549瀏覽量
88735 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3581瀏覽量
89392
發(fā)布評論請先 登錄
相關(guān)推薦
如何在Windows 7下安裝VEE 9?
如何在WINDOWS系統(tǒng)下使用tensorflow來下圍棋呢
如何在忘記密碼時怎么登錄Windows XP系統(tǒng)
如何在DOS下安裝Windows Me
如何在Windows上設(shè)置英特爾硬件加速執(zhí)行管理器
Linux系統(tǒng)中nmap網(wǎng)絡(luò)掃描工具的命令用法詳解
ESP32教程之如何在Windows系統(tǒng)上搭建開發(fā)環(huán)境
![ESP32教程之如<b class='flag-5'>何在</b><b class='flag-5'>Windows</b>系統(tǒng)上搭建開發(fā)環(huán)境](https://file.elecfans.com/web1/M00/B0/E2/o4YBAF3zRB2AcxskAARASO86Y9o128.png)
如何在Windows 10上輕松快速地錄制視頻
恒訊科技分享:如何在Windows Server上配置靜態(tài)ip?
![恒訊科技分享:如<b class='flag-5'>何在</b><b class='flag-5'>Windows</b> Server上配置靜態(tài)ip?](https://file.elecfans.com/web2/M00/81/70/poYBAGORpbSAP8LIAAA0qx6KuEI316.png)
如何在Windows上設(shè)置Pico RP2040
![如<b class='flag-5'>何在</b><b class='flag-5'>Windows</b>上設(shè)置Pico RP2040](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論