# Nmap 是什麼

nmap 是一個掃描工具,可以掃描已知或未知的 IP, 或者端口。

# 大部分命令

命令 說明
-iflist 顯示自身的網卡訊息
-sT 全 TCP 掃描
-sS 半開放式掃描
-sF -sN -sX 有關防火牆的掃瞄
-O 操作系統
-sV 端口服務版本
-Pn 禁止使用探測是否有開機的封包
-T<0~7> 掃描速率,通常建議為 T4, 預設為 T3。最快為 T7
-D 偽裝 IP 來源
-g 偽裝 port 來源
–spoof-mac mac 欺騙

# 常用指令

$ nmap <ip> -sS -sV # 顯示 port 伺服器版本
$ nmap <ip>or<domain> # 掃描目的
$ nmap <ip> -sS # TCP SYN 半開掃描
  • 半開掃描
    這是指在 tcp 三次握手的時候,只做前面的兩次。這樣可以比較快,也可以不留紀錄的掃瞄。客戶端回發送 SYN 的封包,伺服器會發送 SYN+ACK。至此結束就稱為半開掃描。

  • 常用的命令

$ -sn 使用半開放式TCP 掃描主機是否在線
$ -sS 使用半開式TCP
$ -sV 使用完整的TCP
$ -O  探測操作系統

# 防火牆阻擋

這邊留個小筆記,nmap 有參數可以偵測防火牆是否打開。

Starting Nmap 7.01 ( https://nmap.org ) at 2021-04-25 10:45 CST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.00 seconds

在 nmap 掃描之前會發送 TCP 的 SYN 封包,如果防火牆拒絕回應 TCP port 80 or 443, 就會觸發拒絕。
因此在確定掃描目標開啟之後,可以避開發送 TCP, 直接對其進行刺探。

$ nmap -T4 -Pn <ip>
  • Port State
open:           port是開放
closed:         port是關閉
filtered:       防火牆被IDS/IPS, 無法確定狀態
unfiltered:     沒有被屏蔽, 但狀態還要再進一步確定
open|filtered:  Port 開啟/遮蔽
closed|filtered:Port 關閉/遮蔽

# 阻擋

被阻擋後可以使用 -Pn
如果出現 Not shown: 998 filtered ports , 代表其他 998 個 port 被過濾了,如果顯示 STATE close , 為防火牆有開啟此連線,但目標主機並沒有開啟使用這一項服務。 STATE open 為防火牆有開啟此連線,並且也有此服務啟動。

# Reference

  • 9 個常用的 nmap 掃描
  • 常用的命令