NMAP 高級使用技巧
6.1.3 NMAP 語法及示例
語法:nmap [Scan Type(s)] [Options]
例 1:使用 nmap 掃描一臺服務器
默認情況下,Nmap 會掃描 1000 個最有可能開放的 TCP 端口。
┌──(root💀xuegod53)-[~]
└─# nmap 192.168.1.63
Starting Nmap 7.91 ( Nmap: the Network Mapper - Free Security Scanner ) at 2021-03-04 10:24 CST
Nmap scan report for bogon (192.168.1.63)
Host is up (0.000098s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
MAC Address: 00:50:56:28:C2:08 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.49 seconds
例 2: 掃描一臺機器,查看它打開的端口及詳細信息。
參數說明:
-v 表示顯示冗余信息,在掃描過程中顯示掃描的細節,從而讓用戶了解當前的掃描狀態。
└─# nmap -v 192.168.1.63 #查看以下相關信息。
Starting Nmap 7.91 ( Nmap: the Network Mapper - Free Security Scanner ) at 2021-03-04 10:26 CST
Initiating ARP Ping Scan at 10:26
Scanning 192.168.1.63 [1 port]
Completed ARP Ping Scan at 10:26, 0.04s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:26
Completed Parallel DNS resolution of 1 host. at 10:26, 0.00s elapsed
Initiating SYN Stealth Scan at 10:26
Scanning bogon (192.168.1.63) [1000 ports]
Discovered open port 111/tcp on 192.168.1.63
Discovered open port 22/tcp on 192.168.1.63
Discovered open port 80/tcp on 192.168.1.63
Completed SYN Stealth Scan at 10:26, 0.08s elapsed (1000 total ports)
Nmap scan report for bogon (192.168.1.63)
Host is up (0.00013s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
MAC Address: 00:50:56:28:C2:08 (VMware)
例 3:掃描一個范圍: 端口 1-65535
└─# nmap -p 1-65535 192.168.1.63
Starting Nmap 7.91 ( Nmap: the Network Mapper - Free Security Scanner ) at 2021-03-04 10:28 CST
Nmap scan report for bogon (192.168.1.63)
Host is up (0.00084s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
MAC Address: 00:50:56:28:C2:08 (VMware)
注:生產環境下,我們只需要開啟正在提供服務的端口,其他端口都關閉。
關閉不需要開的服務有兩種方法:
情景 1:你認識這個服務,直接關服務
└─# systemctl stop rpcbind
情景 2:不認識這個服務,查看哪個進程使用了這個端口并找出進程的路徑,然后 kill 進程,刪除文
件,接下來以 22 端口為例,操作思路如下:
└─# lsof -i :22 #查看 22 端口正在被哪個進程使用
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1089 root 3u IPv4 21779 0t0 TCP *:ssh (LISTEN)
通過 ps 命令查找對應的進程文件:
└─# ps -axu | grep 1089
root 1089 0.0 0.1 105996 3744 ? Ss 10:52 0:00 /usr/sbin/sshd -D
注:看到進程的文件的路徑是/usr/sbin/sshd 。如果沒有看到此命令的具體執行路徑,說明此木馬
進程可以在 bash 終端下直接執行,通過 which 和 rpm -qf 來查看命令的來源,如下:
└─# which vim
/usr/bin/vim
解決:
└─# kill -9 1089
總結:這個思路主要用于找出黑客監聽的后門端口和木馬存放的路徑。
例 4: 掃描一臺機器:查看此服務器開放的端口號和操作系統類型。
└─# nmap -sS -O xueshenit.com
注:-O 參數并不能 100%確認目標操作系統版本,無法確認準確的操作系統版本時 nmap 會給出幾
個可能性比較高的建議。
參數說明:
-O: 顯示出操作系統的類型。 每一種操作系統都有一個指紋。
-sS:半開掃描(half-open)
測試自己的電腦(物理機):
└─# nmap -sS -O 192.168.1.14
。。。
Running: Microsoft Windows 10
例 5:掃描一個網段中所有機器是什么類型的操作系統。
└─# nmap -sS -O 192.168.1.0/24
例 6: 查找一些有特點的 IP 地址中,開啟 80 端口的服務器。
└─# nmap -v -p 80 192.168.1.62-67
例 7:如何更隱藏的去掃描,頻繁掃描會被屏蔽或者鎖定 IP 地址。
--randomize_hosts # 隨機掃描,對目標主機的順序隨機劃分
--scan-delay #延時掃描,單位秒,調整探針之間的延遲
(1)、隨機掃描
└─# nmap -v --randomize-hosts -p 80 192.168.1.62-69
Nmap scan report for 192.168.1.69 [host down]
Nmap scan report for 192.168.1.68 [host down]
Nmap scan report for 192.168.1.67 [host down]
Nmap scan report for 192.168.1.65 [host down]
Nmap scan report for 192.168.1.66 [host down]
(2)、隨機掃描+延時掃描 ,默認單位秒
└─# nmap -v --randomize-hosts --scan-delay 3000ms -p 80 192.168.1.62-69
例 8:使用通配符指定 IP 地址
└─# nmap -v --randomize-hosts --scan-delay 30 -p 80 1.*.2.3-8
例 8:TCP Connect 掃描
└─# nmap -sT 192.168.1.63 -p 80
這種掃描方式和 SYN 掃描很像,只是這種掃描方式完成了 TCP 的三次握手。
例 9:UDP 掃描
└─# nmap -sU 192.168.1.63
端口狀態解析:
open:從目標端口得到任意的 UDP 應答
open|filtered:如果目標主機沒有給出應答
closed:ICMP 端口無法抵達錯誤
filtered:ICMP 無法抵達錯誤
例 10:報文分段掃描
└─# nmap -f -v 192.168.1.63
使用-f 選項可以對 nmap 發送的探測數據包進行分段。這樣將原來的數據包分成幾個部分,目標網
絡的防御機制例如包過濾、防火墻等在對這些數據包進行檢測的時候就會變得更加困難。另外必須謹慎使
用這個選項,一些老舊的系統在處理分段的包時經常會出現死機的情況。
例 11:使用誘餌主機隱蔽掃描
在初始的 ping 掃描(ICMP、SYN、ACK 等)階段或真正的端口掃描,以及遠程操作系統檢測(-
O)階段都可以使用誘餌主機選項。但是在進行版本檢測或 TCP 連接掃描時,誘餌主機選項是無效的。
(1)、隨機 3 個誘餌
└─# nmap -D RND:3 192.168.1.63
(2)、使用自己 IP 作為誘餌
└─# nmap -D ME 192.168.1.63
(3)、指定單個 IP:192.168.1.14 作為誘餌
└─# nmap -D 192.168.1.14 192.168.1.63
(4)、指定多個 IP 作為誘餌對 192.168.1.63 進行探測
└─# nmap -D 192.168.1.14,192.168.1.18 192.168.1.63
例 12:偽造源端口為 8888 對目標進行掃描
└─# nmap --source-port 8888 101.200.128.35
或
└─# nmap -g 8888 101.200.128.35
例 13:從互聯網上隨機選擇 10 臺主機掃描是否運行 Web 服務器(開放 80 端口)
└─# nmap -v -iR 10 -p 80
例 14:將所有主機視為聯機,跳過主機發現,這種方式可以穿透防火墻,避免被防火墻發現
└─# nmap -Pn 101.200.128.35