Nmap是用于安全審核和滲透測試的強大網絡掃描工具。它是網絡管理員用于解決網絡連接問題和端口掃描的基本工具之一。
Nmap還可以檢測Mac地址,操作系統類型,服務版本等。本教程介紹如何使用nmap
命令執行各種網絡任務的基礎知識。
Nmap可以所有流行的操作系統上安裝。Nmap是跨平臺應用程序。它最初僅發布在Linux的發行版,后來又被移植到其他系統,例如BSD,Windows和macOS。
如果您更喜歡GUI而不是命令行,可以安裝Nmap的GUI版本Zenmap。可從Nmap下載頁面。下載官方二進制包。安裝過程很簡單,并且根據您的操作系統而有所不同。
安裝Nmap
如果你的系統未安裝nmap,命令將顯示nmap: command not found,tio命令未找到。您可以使用發行版的軟件包管理器輕松安裝nmap。
如果你的計算機運行的是基于Debian的Linux發行版,例如Ubuntu,Linux mint。請運行命令sudo apt update && sudo apt install nmap
安裝nmap。
如果你的計算機運行的是基于RedHat的Linux發行版,例如CentOS,Fedora。請運行命令sudo dnf install nmap
安裝nmap。
如果你的計算機運行的是MacOS,請運行命令brew install nmap
安裝nmap。
sudo apt update && sudo apt install nmap
sudo dnf install nmap
brew install nmap
如果你的計算機運行的是Windows,Nmap在Windows上有一些限制,并且通常比UNIX版本要慢一些。
在Windows安裝Nmap的最簡單選擇是下載并運行安裝exe文件。您可以通過命令行或啟動Zenmap在Windows運行Nmap。
有關如何在Windows使用Nmap的更多信息,請查看安裝后使用說明。
Nmap 命令選項
Nmap通常用于審核網絡安全性,網絡映射,掃描端口并搜索在線設備。nmap
命令語法形式是nmap [Options] [Target...]
。
使用Nmap的最基本示例不指定任何選項,掃描指定的計算機。nmap
命令默認運行TCP端口掃描。nmap命令的默認選項是-sT
。
輸出的內容,包括掃描的基本信息以及已打開端口,服務名稱,還有端口的狀態信息。
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的堆棧。
當以root用戶運行nmap
時,默認會打開-sS
選項。要獲得更詳細的輸出,請添加-v
或-vv
選項。
如果運行UDP掃描,請以root用戶使用-sU
選項運行nmap命令。Nmap也支持IPv6地址。要指定IPv6主機,請使用-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 指定目標主機
Nmap將所有不是選項的參數視為目標主機。如果參數以單破折號或雙破折號-
/--
開頭,則視為選項。
在指定目標主機時最簡單的方式傳遞一個或多個目標地址或域名,您也可以使用CIDR表示法指定網絡范圍,例如命令nmap 192.168.10.0/24
。
要指定八位字節范圍,請使用破折號。例如,要掃描IP地址是192.168.10.1
,192.168.11.1
,192.168.12.1
的主機,請運行命令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
您還可以使用逗號指定目標主機。例如命令nmap 192.168.10,11,12.1
將會掃描IP地址是192.168.10.1
,192.168.11.1
,192.168.12.1
的主機。
除了以上方式指定主機之外,也可以組合上述模式作為掃描的目標主機。
要確保在掃描前指定正確的主機的IP地址范圍,請使用-sL
選項運行nmap命令,該選項只是僅列出目標而不會運行真正的掃描。
如果要排除指定范圍內的目標,請使用--exclude
選項運行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默認前1000個最流行的端口執行快速掃描。這些端口不是前1000個連續的端口,而是1000個最常用的端口,范圍從1到1000。
如果要掃描所有TCP端口,也就是1到65535的端口,請使用-p-
選項運行nmap命令。例如命令nmap -p- 192.168.10.121
。
命令將會打印端口的狀態和服務,每個端口可以處于狀態open,close,filtered。
open表示端口運行的程序響應請求,close表示端口沒有程序運行,但主機不復請求。filtered主機不回復請求。
nmap -p- 192.168.10.121
端口和端口范圍由-p
選項指定。例如,要僅掃描443端口,可以運行命令nmap -p 443 192.168.10.121
。要指定多個端口,請用逗號分隔端口。
端口范圍可以用破折號指定。例如要掃描端口范圍從1到1024的所有UDP端口,可以運行命令sudo nmap -sU -p 1-1024 192.168.10.121
。
也可以組合兩種模式指定端口的范圍或者多個端口。命令nmap -p 1-1024,8080,9000 192.168.10.121
組合使用逗號,端口范圍。
nmap還允許你使用服務名稱代替端口的數值。例如要掃描端口22,可以使用ssh代替數字端口,例如命令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掃描
要執行ping掃描或主機發現,請使用-sn
選項運行nmap
命令,-sn
選項僅發現在線主機,而不進行端口掃描。
當您要快速確定哪些指定主機已啟動并正在運行時,此功能很有用。
例如命令sudo nmap -sn 192.168.10.0/24
將會運行ping掃描,發現192.168.10.0/24網段的主機。
sudo nmap -sn 192.168.10.0/24
禁用DNS名稱解析
Nmap的默認行為是對每個發現的主機執行反向DNS解析,這會增加掃描時間。
掃描大型網絡時,最好禁用反向DNS解析并加快掃描速度。因此,可以使用-n
選項運行nmap命令。
sudo nmap -n 192.168.10.0/16
namp 操作系統檢測
Nmap可以使用TCP/IP堆棧指紋來檢測遠程主機操作系統。如需要運行操作系統檢測,請使用-O
選項運行nmap命令。
如果Nmap可以檢測到主機操作系統,它將打印操作系統的信息。
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 服務和版本檢測
通常,系統服務監聽在眾所周知端口。假設遠程主機運行著SSH服務,并可能監聽端口22。
但是您不能絕對確定,因為系統管理員可以指定在任何端口運行SSH服務。借助namp的服務和版本檢測功能,nmap將在指定端口上檢測程序和程序版本。
要使用nmap的服務和版本檢測,使用-sV
選項運行namp命令。例如命令sudo nmap -sV scanme.nmap.org
將會檢測scanme.nmap.org
主機運行服務和版本。
您還可以使用-A
選項在一個命令中掃描操作系統版本并運行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默認將信息打印到標準輸出。如果您掃描大型網絡或需要保存信息,則可以將nmap命令輸出保存到文件中。
Nmap提供幾種輸出類型。要以普通文本格式保存文件,請使用-oN
選項,后跟文件名。
最流行的選項是以XML格式保存輸出,請使用-oX
選項運行nmap命令,后跟文件名。
另一種非常有用的格式是grepable,可以用標準Unix命令,例如grep
,awk
和cut
進行解析。如果需要使用此格式沒,請使用-oG
選項運行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最強大的功能之一就是其腳本引擎。Nmap具有非常多腳本文件,您也可以使用Lua語言編寫自己的腳本。
您可以使用腳本來檢測惡意軟件和后門程序,執行暴力攻擊等。例如要檢查指定主機是否受到攻擊。
可以運行命令nmap -sV --script http-malware-host scanme.nmap.org
。
nmap -sV --script http-malware-host scanme.nmap.org
結論
Nmap是用于安全審核和滲透測試的強大網絡掃描工具,網絡管理員主要使用它來發現主機和掃描端口。
請注意,在某些國家/地區,未經授權掃描網絡是非法的。
-
Linux
+關注
關注
87文章
11345瀏覽量
210406 -
計算機
+關注
關注
19文章
7540瀏覽量
88646 -
WINDOWS
+關注
關注
4文章
3570瀏覽量
89308
發布評論請先 登錄
相關推薦
評論