Nmap 網路掃描工具基礎使用

A comprehensive guide to Nmap network scanning tool basics, including installation, common scan types, output formats, and practical examples

Nmap 簡介

Nmap(Network Mapper)是一款開源的網路探索和安全稽核工具。它被設計用來快速掃描大型網路,但也能用於單一主機的掃描。Nmap 使用原始 IP 封包來判斷網路上有哪些主機可用、這些主機提供什麼服務(應用程式名稱和版本)、它們執行什麼作業系統(以及作業系統版本)、使用什麼類型的封包過濾器/防火牆,以及其他特徵。

主要功能

  • 主機發現:識別網路上的活動主機
  • 連接埠掃描:列舉目標主機上開放的連接埠
  • 版本偵測:判斷遠端裝置上執行的應用程式名稱和版本號碼
  • 作業系統偵測:判斷目標的作業系統和硬體特徵
  • 腳本掃描:使用 Nmap 腳本引擎(NSE)進行更進階的偵測

安裝 Nmap

Linux(Debian/Ubuntu)

1
2
sudo apt update
sudo apt install nmap

Linux(CentOS/RHEL)

1
sudo yum install nmap

macOS

1
brew install nmap

Windows

Nmap 官方網站 下載安裝程式,執行安裝精靈即可。

驗證安裝

1
nmap --version

基本掃描指令

掃描單一主機

1
nmap 192.168.1.1

掃描多個主機

1
nmap 192.168.1.1 192.168.1.2 192.168.1.3

掃描 IP 範圍

1
nmap 192.168.1.1-254

掃描子網路

1
nmap 192.168.1.0/24

掃描主機名稱

1
nmap example.com

從檔案讀取目標清單

1
nmap -iL targets.txt

排除特定主機

1
nmap 192.168.1.0/24 --exclude 192.168.1.1

常用掃描類型

TCP SYN 掃描(半開放掃描)

這是最常用的掃描類型,也是預設的掃描方式。它不會完成 TCP 三向交握,因此相對隱蔽。

1
sudo nmap -sS 192.168.1.1

TCP Connect 掃描

完整的 TCP 連線掃描,不需要 root 權限。

1
nmap -sT 192.168.1.1

UDP 掃描

掃描 UDP 連接埠,速度較慢但對於發現 DNS、SNMP 等服務很重要。

1
sudo nmap -sU 192.168.1.1

Ping 掃描(主機發現)

只進行主機發現,不進行連接埠掃描。

1
nmap -sn 192.168.1.0/24

版本偵測

偵測服務的版本資訊。

1
nmap -sV 192.168.1.1

作業系統偵測

嘗試識別目標的作業系統。

1
sudo nmap -O 192.168.1.1

積極掃描

啟用作業系統偵測、版本偵測、腳本掃描和路由追蹤。

1
sudo nmap -A 192.168.1.1

連接埠選項

掃描特定連接埠

1
2
nmap -p 80 192.168.1.1
nmap -p 80,443,8080 192.168.1.1

掃描連接埠範圍

1
nmap -p 1-1000 192.168.1.1

掃描所有連接埠

1
nmap -p- 192.168.1.1

快速掃描(常用連接埠)

1
nmap -F 192.168.1.1

掃描最常用的 N 個連接埠

1
nmap --top-ports 100 192.168.1.1

輸出格式

標準輸出

1
nmap 192.168.1.1

儲存為一般文字檔

1
nmap -oN scan_result.txt 192.168.1.1

儲存為 XML 格式

1
nmap -oX scan_result.xml 192.168.1.1

儲存為 Grepable 格式

1
nmap -oG scan_result.gnmap 192.168.1.1

同時儲存所有格式

1
nmap -oA scan_result 192.168.1.1

時間與效能選項

Nmap 提供時間範本來控制掃描速度:

選項名稱說明
-T0Paranoid極慢,用於 IDS 規避
-T1Sneaky較慢,用於 IDS 規避
-T2Polite降低速度以減少頻寬和目標資源使用
-T3Normal預設模式
-T4Aggressive假設網路快速可靠,加速掃描
-T5Insane極快,可能犧牲準確性
1
nmap -T4 192.168.1.1

Nmap 腳本引擎(NSE)

NSE 允許使用者撰寫腳本來自動化各種網路任務。

執行預設腳本

1
nmap -sC 192.168.1.1

執行特定腳本

1
nmap --script=http-title 192.168.1.1

執行多個腳本

1
nmap --script=http-title,http-headers 192.168.1.1

執行腳本類別

1
nmap --script=vuln 192.168.1.1

常用腳本類別:

  • auth:認證相關腳本
  • default:預設腳本
  • discovery:發現相關腳本
  • vuln:弱點掃描腳本
  • safe:安全腳本(不會造成服務中斷)

實用範例

範例 1:快速掃描網路中的活動主機

1
nmap -sn -T4 192.168.1.0/24

範例 2:掃描 Web 伺服器常用連接埠

1
nmap -p 80,443,8080,8443 -sV 192.168.1.1

範例 3:完整的滲透測試初始掃描

1
sudo nmap -sS -sV -sC -O -T4 -p- 192.168.1.1 -oA full_scan

範例 4:掃描並檢查弱點

1
nmap --script=vuln 192.168.1.1

範例 5:隱蔽掃描(規避 IDS)

1
sudo nmap -sS -T2 -f --data-length 24 192.168.1.1

參數說明:

  • -f:分割封包
  • --data-length 24:附加隨機資料

範例 6:掃描防火牆後的主機

1
sudo nmap -Pn -sS 192.168.1.1

-Pn 選項會跳過主機發現,直接進行連接埠掃描。

注意事項

  1. 取得授權:在進行任何掃描之前,請確保您已獲得目標系統擁有者的書面授權。未經授權的掃描可能違反法律。

  2. 避免影響服務:某些掃描類型(特別是使用 -T5 或積極的腳本)可能會對目標系統造成負載,請謹慎使用。

  3. 記錄掃描:建議將掃描結果儲存下來,以便日後分析和報告使用。

  4. 了解輸出:學會解讀 Nmap 的輸出結果,包括連接埠狀態(open、closed、filtered)的含義。

連接埠狀態說明

狀態說明
open連接埠正在接受連線
closed連接埠可存取但沒有應用程式監聽
filteredNmap 無法判斷連接埠是否開放(可能被防火牆過濾)
unfiltered連接埠可存取,但無法判斷是開放還是關閉
`openfiltered`
`closedfiltered`

參考資源

總結

Nmap 是資訊安全專業人員和網路管理員的必備工具。透過本文介紹的基本指令和技巧,您應該能夠開始使用 Nmap 進行網路探索和安全評估。隨著經驗的累積,您可以進一步探索更進階的功能,如自訂 NSE 腳本和複雜的掃描策略。

記住,負責任地使用這些工具,並始終在獲得適當授權的情況下進行掃描。

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy