【滲透測試LAB】NMAP Part3,端口掃描(Port Scanning)
NMAP四項基本功能:
- 主機發現(Host Discovery)
- 端口掃描(Port Scanning)-本篇要說明的
- 版本偵測(Version Detection)
- 操作系統偵測(Operating System Detection)
在前期掃描完主機後,通常會依照掃描結果可以偵查的主機進行下個步驟的探測,而這就是端口掃描(Port Scaning)。
在執行NMAP 端口掃描前,勢必要了解下圖NMAP端口掃描6種結果,才能了解後續提及的端口掃瞄技術。
本篇練習環境如下圖2所示,目標端Mestaploitable IP :10.0.2.5;WIN10 IP:10.0.2.15。
端口掃描(Port Scanning)
nmap < -掃描方式 >< IP位址 >
1. TCP connection Scan
針對端口傳送TCP SYN、SYN+ACK、ACK 的旗標(Flags)的封包,建立完整連線。換而言之,就是我們稱的完成三向交握(完成建立溝通連線)
範例: nmap -sT -p- 10.0.2.5,如下圖3所示。
2. SYN Scan
針對端口傳送TCP SYN、SYN+ACK的旗標的封包,但不完成三向交握( Three-way Handshake),如下圖4。
範例: nmap -sS -p- 10.0.2.5,如下圖5所示。
3. UDP Scans
透過UDP Scans找出已開啟或可以連線的UDP類型之端口。
範例: nmap -sU -F 10.0.2.5 -v,如下圖6所示。
4. Xmas Scans
Xmas Scans(聖誕節掃描),這是一種同時發送三種(FIN, PSH, URG)Flags包的掃描方式,以透過三種封包掌握端口開啟或關閉的狀態,如下圖7與圖8所示。
TCP Communication 6項 Flags:
- URG : 高優先級封包,是屬於緊急指標欄位有效。
- ACK : 確認號欄位有效。
- PSH : 是帶有PUSH標誌的資料,指示接收方應該儘快將這個報文段交給應用層,不需等待緩衝區裝滿才傳送。
- RST : 出現傳送終非預期的錯誤,故需要重新建立TCP連接。同時可用於拒絕非法連結與拒絕連接請求。
- SYN : 這是連接請求或接受連線請求,用於建立訊號傳送連接同步化。
- FIN : 傳送方沒有資料要傳輸了,要求釋放連接。
(1).當端口是屬於開啟狀態,其會導致掃描結果是"無回應",如圖7所示。
(2).當端口是屬於關閉狀態,掃描結果會回傳RST封包,如圖8所示。另回傳細部資訊請參閱圖8。
範例: nmap -sX -p 1-65535 -v 10.0.2.5,如下圖9所示,抓包細節請參閱圖10所示。
5. FIN Scans
FIN Scans類似上述提及的Xmas Scans方式,但主要是發送FIN Flags的封包,來掌握端口開啟或關閉的狀態,如下圖11是端口屬於開啟狀態,圖12是端口關閉狀態。
(1).當端口是屬於開啟狀態,其會導致掃描結果是”無回應”,如圖11所示。
(2).當端口是屬於關閉狀態,掃描結果會回傳RST封包,如圖12所示。
範例1:目前80port已開始,來測試 nmap -sF -p80 -v 10.0.2.5掃描結果,如下圖13與圖14所示。
範例2:目前81port已關閉,來測試 nmap -sF -p81 -v 10.0.2.5掃描結果,如下圖15及圖16所示。
6. TCP ACK Scans
傳送ACK Flags的封包來檢查是否有防火牆封鎖端口進出,如果端口回傳"RST"代表是無防火牆的或相關過濾機制,如下圖17與圖18所示。
範例:此環境是未安裝防火牆,故用於nmap -sA -p- -v 10.0.2.5掃描來檢測TCP ACK Scans,如下圖19所示。
7. IP Protocol Scan
NMAP提供IP Protocol Scan功能用於找出目標端口所執行通訊協定,但前提該端口所預作的協定資訊是有建立於NMAP資料庫。
範例:nmap -sO -p- -v 10.0.2.5掃描來檢測目標主機全部端口的協定,如下圖20所示。
8. Randomize Target Scans
採用NMAP進行網域掃描時候,若是相同單一來源,Firewall或IDS肯定會偵測到,並採用管理人員所制定的規則進行攔截或阻擋,為此採用隨機掃描順序方式可以大幅降低被某些防禦機制偵測到掃描動作。
--randomize-hosts
(隨機掃描掃描)
範例:nmap -sS --randomize-host -p-10.0.2.0/24,如下圖21。
9. Cloak a scan with decoys (誘餌掩蓋掃描)
有關於第8項提及的Randomize Target Scans(--randomize-hosts
隨機掃描掃描)是針對目標端主機採用非固定順序掃描,但封包的來源端使用是來自相同的輸出源。因此這邊將介紹NMAP提供的"Cloak a scan with decoys",中文又稱為以誘餌掩蓋掃描(好直翻XD),這是一項透過NMAP偽造多個IP進行流量傳輸。
Cloak a scan with decoys公式: -D RND:數值
範例: nmap -sS -D RND:100 -p- 10.0.2.5,如下圖23與圖24。
有關本篇的端口掃描共介紹7項常用指令以及2項利於端口掃描使用的指令(隨機掃描以及偽照IP流量),同時本篇的指令也彙整如下表,供各位讀者參考。
後續會再分享版本偵測(Version Detection)、操作系統偵測(Operating System Detection)、NSE腳本實務演練資訊。
NMAP系列相關文章:
參考文獻: