今天我們來談談網路安全與系統管理領域中,如同偵察兵一般不可或缺的傳奇工具——Nmap。
如果你把網路滲透測試比作一場軍事行動,那麼 Nmap 就是你派出的第一位、也是最得力的偵察兵。在發動任何攻擊之前,你必須先用它來繪製出目標戰場的詳細地圖。
Nmap 的全名是 Network Mapper (網路對應器),它是一款開源、免費且功能極其強大的網路掃描工具。它被網路管理員、滲透測試工程師、資安研究人員等廣泛使用,用於:
簡單來說,Nmap 的核心工作就是向目標主機發送精心製作的網路封包,然後分析其回應,從而「描繪」出目標的輪廓和特徵。
Nmap 的強大之處在於它將多種偵測技術整合在一個工具中。
這是掃描的第一步:確認目標是否「活著」。
nmap -sn <target>
(Ping Scan)ping
指令)、TCP SYN/ACK 封包等多種探針,來判斷主機是否在線上。這是 Nmap 最核心、最著名的功能。如果說主機是一棟房子,那麼連接埠就是這棟房子上的門窗。
nmap -sS <target>
(TCP SYN Scan / Stealth Scan):預設且最受歡迎的掃描方式。它只發送 TCP 連線的第一個封包 (SYN),如果收到 SYN/ACK 表示埠口開放,收到 RST 則表示關閉。因為沒有完成完整的三向交握,所以比較隱蔽且快速。nmap -sT <target>
(TCP Connect Scan):執行完整的三向交握。比較不隱蔽,容易被記錄下來,但適用於執行掃描的使用者沒有 root/administrator 權限的場景。nmap -sU <target>
(UDP Scan):掃描 UDP 埠口,速度較慢且較不穩定。知道了哪些門是開的還不夠,你還需要知道門後面是什麼。
nmap -sV <target>
nmap -O <target>
這是讓 Nmap 從一個掃描器進化為多功能安全工具的超級武器。
nmap -sC <target>
:執行預設的、被認為是安全且有用的指令碼。nmap --script=<script-name> <target>
:執行指定的指令碼。smb-vuln-ms17-010
)。http-title
)、抓取網頁。假設目標 IP 為 192.168.1.101
僅確認主機是否存活:
nmap -sn 192.168.1.101
快速掃描預設的 1000 個 TCP 埠口:
nmap 192.168.1.101
掃描所有 65535 個 TCP 埠口,並進行服務與版本偵測 (常用):
nmap -sV -p- 192.168.1.101
(-p-
代表掃描所有埠口 1-65535)
進行一次「侵略性」掃描 (Aggressive Scan):
nmap -A 192.168.1.101
這是一個非常方便的複合指令,它等同於同時啟用 OS 偵測 (-O
)、版本偵測 (-sV
)、預設指令碼掃描 (-sC
) 和 Traceroute。雖然掃描行為較為高調,但能一次性獲取大量資訊。
Nmap 會告訴你每個埠口的狀態,最常見的三種是:
合法性與道德:Nmap 是一個強大的工具,但也是一把雙面刃。絕對不要在未經明確授權的情況下,對任何不屬於你的網路或系統進行掃描。未經授權的掃描行為在許多國家和地區都是非法的。
對於不習慣命令列介面的使用者,Nmap 官方也提供了一個名為 Zenmap 的圖形化前端工具,讓你可以透過點擊按鈕來執行掃描並以視覺化的方式查看結果。
Nmap 是網路世界中的「基礎設施普查工具」。無論你是要保護自己的網路(藍隊),還是要評估目標的防禦(紅隊),第一步都是要先有一張精準的地圖。而 Nmap,就是繪製這張地圖最權威、最可靠的工具。