iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
自我挑戰組

滲透測試新手的 HTB Academy 30天學習日記系列 第 13 篇

Day 13 Nmap 教學 Part 2 Port Scan

  • 分享至 

  • xImage
  •  

延續昨天的結果,當我們發現透過主機探測 ( 主機發現 ) 後,就可以來做下一步開始對該主機的 Port 來做掃描。

Port Scan

基本 Port Scan 指令的樣式

nmap [目標IP位址] -p [要掃描的 Port] [其他選項(可有可無)]

實例 ( 目標為 metasploitable2 ) :

  • 指定掃描 21 Port :
nmap 192.168.184.135 -p 21    
Starting Nmap 7.99 ( https://nmap.org ) at 2026-09-22 23:46 -0400
Nmap scan report for 192.168.184.135
Host is up (0.00066s latency).

PORT   STATE SERVICE
21/tcp open  ftp
MAC Address: 00:0C:29:91:2F:D9 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.67 seconds
  • 不指定掃描的 Port ( 預設掃描常見的 1000 個 Port )
nmap 192.168.184.135 
Starting Nmap 7.99 ( https://nmap.org ) at 2026-09-23 05:17 -0400
Nmap scan report for 192.168.184.135
Host is up (0.0030s latency).
Not shown: 979 closed tcp ports (reset)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8180/tcp open  unknown
MAC Address: 00:0C:29:91:2F:D9 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 4.83 seconds

Port 狀態

當我們掃描完後可以從結果看出有一個是 STATE 的欄位,這欄位用來代表 Port 的狀態,上面的實例我們可以看到目標的 21 Port 為 open ( 開啟 ) 的狀態,open 表示這個 Port 運行著某種服務等著其他裝置去做連線。

而我們也可以從結果發現有這段敘述 Not shown: 979 closed tcp ports (reset) ,代表有 979 closed 關閉的 Port 沒有顯示來,close 代表目標 Port 有接收及回應 Nmap 的探測封包,只是因為服務沒有在運行所以沒有在 Port 上監聽 ( listening )。

註 : 這邊只介紹兩種狀態實際上 Nmap Port Scan 的狀態會有 6 種,我會在延伸閱讀放上 Nmap 官方的文件上面會有記載,有興趣的人可以再去研究看看

掃瞄範圍 ( Port )

  • 只掃描單一 Port :
nmap [目標IP位址] -p 80 # 掃描 80 Port
  • 掃描複數 不連續 Port ( 用 , 隔開 ) :
nmap [目標IP位址] -p 21,80,443 # 掃描 20,21,80,443 Port
  • 掃描複數 連續 Port ( 用 - 表示範圍 ) :
nmap [目標IP位址] -p 1-100 # 掃描 1~100 Port
  • 也可以混用 :
nmap [目標IP位址] -p 1-100,443 # 掃描 1~100 , 443 Port
  • 掃描全部 Port ( Port 1-65535 ,掃描時間較長 ) :
nmap [目標IP位址] -p- # 掃描 1~65535 Port

效果等同 :

nmap [目標IP位址] -p 1-65535 # 掃描 1~65535 Port

掃描種類

針對同一件功能之所以會有多種不同種類的技術,主要是每種技術有著他的優缺點,像是等下會提到的 TCP SYN Scan 這個技術的優點就是速度快由於做 Port Scan 時通常不會只掃描單一個 Port,所以速度就是掃描中一個很重要的考量點。

==下面所做的實例 192.168.31.131 為被掃瞄的目標;192.168.31.129 則為發出掃描的裝置==

TCP SYN Scan -sS

TCP SYN Scan 是 Nmap 預設的 Port scan 類型,SYN 指的是 TCP 三向交握 ( 建立連線 ) 中的會用到的一個 flag,TCP SYN Scan 優點為速度快且因為這種掃描的方式沒有完全建立完連線,而是在正常連線快完成的最後一個步驟直接中斷,也因為不算是正常建立連線的情況被目標發現的機率更低。

實例 :

nmap 192.168.31.131 -sS -p 21
Starting Nmap 7.95 ( https://nmap.org ) at 2026-09-23 10:49 EDT
Nmap scan report for 192.168.31.131
Host is up (0.00036s latency).

PORT   STATE SERVICE
21/tcp open  ftp
MAC Address: 00:0C:29:37:BF:EF (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds
  • -sS : TCP SYN Scan 掃描模式
  • -p 21 : 指定掃描 21 Port

Wireshark 抓到的封包,可以看到這個 TCP Stream 有三個封包
![[Pasted image 20260923225953.png]]

TCP Scan -sT

TCP connect Scan ( TCP 連線掃描 ) 跟上面的 SYN Scan 是同樣的原理,但由於 TCP 連線掃描會建立完完整的連線才中斷連線,相較於 SYN Scan 速度就慢下了不少,也因為連線為完整建立後才斷線,且容易被目標的 IDS ( Intrusion Detection System 入侵偵測系統 ) 捕捉到並直接將來源 ( 發出掃描方 ) 的 IP 給加入黑名單,通常還是使用 SYN Scan 比較多。

實例 :

nmap 192.168.31.131 -sT -p 21
Starting Nmap 7.95 ( https://nmap.org ) at 2026-09-23 10:49 EDT
Nmap scan report for 192.168.31.131
Host is up (0.00041s latency).

PORT   STATE SERVICE
21/tcp open  ftp
MAC Address: 00:0C:29:37:BF:EF (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
  • -sT : TCP Connect Scan 掃描模式
  • -p 21 : 指定掃描 21 Port

跟上面的 SYN Scan 比較一下可以發現結果沒什麼差異但耗時差了 0.04 秒,差了約 1.3 倍,單獨一個 Port 體感還感覺不出來但 Port 的數量一多就會有很明顯的差距了。

Wireshark 抓到的封包,可以看到這個 TCP Stream 有四個封包
![[Pasted image 20260923225204.png]]

TCP ACK Scan -sA

TCP ACK Scan 跟上面兩者的目的不同,雖然一樣都是要做 Port Scan,但 ACK Scan 主要用於探測防火牆 ( Firewall ) 的規則,而不會檢查出 Port 是否為 open/closed。

通常有回應 RST Flag 封包的情況就代表封包沒有被過濾掉能夠確實送到指定的 Port,沒有回應或者回傳 ICMP 的錯誤訊息的狀況就是代表封包被過濾掉了。

實例 :

nmap 192.168.31.131 -sA -p 21
Starting Nmap 7.95 ( https://nmap.org ) at 2026-09-23 11:38 EDT
Nmap scan report for 192.168.31.131
Host is up (0.00038s latency).

PORT   STATE      SERVICE
21/tcp unfiltered ftp
MAC Address: 00:0C:29:37:BF:EF (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds

Wireshark 抓到的封包,可以看到被掃瞄的目標回傳 RST 封包代表傳送的封包沒有被防火牆給過濾掉,或者是目標沒有防火牆的保護。
![[Pasted image 20260923234008.png]]

總結

這次算比較詳細的介紹了 Nmap 的 Port Scan ,包含怎麼看結果與選項的使用,也介紹了三種 Port Scan 的類型,我目前有在使用是只有 SYN Scan,透過這次的機會也重新看了一次官方的文件,了解了不同類型掃描的差異,算是也學到了不少,建議讀者在實作的時候也可以跟我一樣一邊用 Wireshark 來看封包的傳送,也能順便了解原理,惡補一點網路的知識,原本今天還想說要多加個補充來介紹一下 TCP 三向交握的運作,但發現好像沒辦法用很容易理解的方式來解釋,鐵人賽後我會再寫一篇來介紹一下關於三向交握。

明天預計會介紹 Nmap 的 Service Scan 也是一個非常關鍵的功能,那就明天見啦!

參考資料來源

延伸閱讀


上一篇
Day 12 Nmap 教學 Part 1 - Host Discovery
下一篇
Day 14 Nmap 教學 Part 3 Service ( Version ) & OS Scan
系列文
滲透測試新手的 HTB Academy 30天學習日記 共 15 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言