從零開始的 Nmap 生活
2024-06-28 13:38:38

安裝

直接到 https://nmap.org/download 下載,或是要用像是 apt、yum、brew 等等(應該)也都可以安裝的了 nmap

指令懶人包

  • nmap {ip}:掃描單個 IP。
  • nmap {ip1} {ip2}:同時掃描多個 IP。
  • nmap {ip_range}:掃描整個 IP 範圍 (CIDR)。
  • nmap -p {port} {ip}:針對指定端口進行掃描。
  • nmap -sS:執行 TCP SYN 掃描,速度較快。
  • nmap -sT:執行 TCP connect 掃描,速度較慢。
  • nmap -sU:執行 UDP 掃描。
  • nmap -O:進行作業系統偵測。
  • nmap -sO:執行 IP 協議掃描。
  • nmap -PS:使用 TCP SYN Ping 進行開放端口掃描。
  • nmap -sL:僅列出要掃描的 IP 及其數量,而不執行實際掃描。
  • nmap -vv:顯示詳細的掃描過程。

sS、sT、sU、sO 以及 PS 的差異

-sS:TCP SYN 掃描

  • 在 TCP SYN 掃描中,Nmap 送出 SYN 封包 (TCP 的 SYN flag),並等待回應。如果目標主機回應 SYN/ACK 封包 (TCP 的 SYN/ACK flag),表示端口是開啟的。如果收到 RST 封包 (TCP 的 RST flag),表示端口是關閉的。
  • 這種掃描方式速度較快,因為它不需要完全建立 TCP 連接,只發送一個 SYN 封包。

-sT:TCP connect 掃描

  • 在 TCP connect 掃描中,Nmap 試圖建立完整的 TCP 連接。它向目標主機的指定端口發送 TCP SYN,如果主機回應 SYN/ACK 封包,則完成三路握手建立連接,然後立即關閉連接。
  • 這種掃描方式比較慢,因為它建立了完整的 TCP 連接,與真正的應用程式一樣,可能會被目標主機的入侵偵測系統 (IDS) 或入侵防禦系統 (IPS) 檢測到。

-sU:UDP 掃描

  • 在 UDP 掃描中,Nmap 嘗試向目標主機的 UDP 端口發送數據包,然後根據回應來判斷端口是否開啟。因為 UDP 不像 TCP 那樣具有確認的連接機制,所以 UDP 掃描需要更多的時間和資源。
  • 由於 UDP 掃描需要向目標主機發送大量的數據包,因此可能會被目標主機或網絡設備規則 (如防火牆) 誤認為洪水攻擊而被阻擋。

-PS:TCP SYN Ping 開放端口掃描

  • 在 TCP SYN Ping 掃描中,Nmap 使用 TCP SYN 封包來掃描目標主機,同時也能檢測主機上的開放端口。這種掃描方式通常用於快速識別目標網絡上的存活主機和開放端口,並不進行全面的掃描。
  • 與常規的 ping 不同,TCP SYN Ping 掃描對目標主機上的開放端口進行掃描,因此能夠提供更多關於目標主機的信息,而不僅僅是存活狀態。

-sO:IP 協議掃描

  • 在 IP 協議掃描中,Nmap 探查目標主機上支持的 IP 協議。這些協議可以是 ICMP (Internet Control Message Protocol),IGMP (Internet Group Management Protocol),以及其他的一些協議。
  • 這種掃描方式可用於識別目標主機上運行的協議類型,以及可能存在的網絡服務或設備。

常見應用

TCP SYN 掃描單個主機的常見端口

nmap -sS -p 1-1024 192.168.1.100
這個命令使用 TCP SYN 掃描 (-sS) 和指定的端口範圍 (-p 1-1024) 來掃描單個主機。

掃描多個主機的特定端口

nmap -p 22,80,443 192.168.1.100 192.168.1.101 192.168.1.102
這個命令掃描多個主機 (192.168.1.100, 192.168.1.101, 192.168.1.102) 的指定端口 (22, 80, 443)。

UDP 掃描單個主機的常見端口

nmap -sU -p 53,67,123 192.168.1.100
這個命令使用 UDP 掃描 (-sU) 和指定的 UDP 端口範圍 (-p 53,67,123) 來掃描單個主機。

掃描整個 IP 範圍的存活主機和開放端口

nmap -sP -p 22,80 192.168.1.0/24
這個命令使用 Ping 掃描 (-sP) 和指定的端口範圍 (-p 22,80) 來掃描整個 IP 範圍 (例如,192.168.1.0/24) 的存活主機和開放端口。

同時檢測 TCP、UDP 端口以及作業系統

nmap -sS -sU -O 1.1.1.1
通常只會掃描 1000 個常見端口,結果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-07 16:08 CST
Nmap scan report for one.one.one.one (1.1.1.1)
Host is up (0.0075s latency).
Not shown: 998 open|filtered udp ports (no-response), 993 filtered tcp ports (no-response)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
113/tcp closed ident
443/tcp open https
8008/tcp open http
8080/tcp open http-proxy
8443/tcp open https-alt
53/udp open domain
33459/udp closed unknown
Device type: general purpose|firewall|media device|WAP
Running (JUST GUESSING): Linux 3.X|2.6.X (89%), IPCop 2.X (86%), Tiandy embedded (86%), HP embedded (85%)
OS CPE: cpe:/o:linux:linux_kernel:3.18 cpe:/o:linux:linux_kernel:3.4 cpe:/o:ipcop:ipcop:2 cpe:/h:hp:msm410 cpe:/o:linux:linux_kernel:2.6.32
Aggressive OS guesses: Linux 3.18 (89%), IPCop 2 firewall (Linux 3.4) (86%), Tiandy NVR (86%), HP MSM410 WAP (85%), Linux 2.6.32 (85%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 8 hops