- 在 Kali Linux 上使用 NMAP 指令工具,進行主動掃瞄的方式。
- Kali Linux 作業系統的安裝,請參考這一篇內容
- 利用 Metasploitable 2 擔任被掃瞄的主機,架設方式請參考這一篇內容
- NMAP Port (連結埠)狀態值基本認知:
Port (連結埠)狀態值 說明 Open 應用程式正在該連接埠接收TCP連接或UDP封包。 closed 關閉的連接埠對於Nmap是可存取的(它接受 Nmap 的探測封包並做出回應),但是沒有應用程式在其上監聽。 filtered 由於有封包過濾阻止探測訊息抵達連結埠,Nmap 無法確定該連結埠是否開放。 unfiltered 未過濾狀態表示該連接埠可訪問,但 Nmap 不能確定該埠是開放還是關閉。僅用於對應防火牆規則集的 ACK 掃描會將連接埠分類出這種狀態。 open | filtered 當無法確定連接埠是開放還是被過濾的時,Nmap 就會將該連接埠分類出這種狀態,例如:開放的連接埠不回應時,就會產生此類狀態值。常出現在 UDP,IP,FIN,Null,和Xmas掃描。 closed | filtered 此狀態為 Nmap 無法確定連接埠是關閉的還是被過濾的,只可能出現在IPID Idle掃描中。 - TCP 網路協定旗標值:
旗標值 說明 SYN 連結請求或接受連結請求 ACK 回應確認連結請求 FIN 傳送方沒有資料要傳輸,通知請求方釋放連結 RST 傳送端產生非預期的錯誤,需重新建立TCP連結 PSH 帶有 PUSH 標籤的資料,要求接收端儘快將該封包傳給應用層,不需等待緩衝區裝滿才傳送 URG 高優先權封包
重要步驟
- 啟動 Kali Linux 作業系統,並且以 Kali 帳號登入系統。
- 使用 Terminal,先進行系統更新的動作:
$ sudo apt update $ sudo apt upgrade $ sudo apt dist-upgrade
- NMAP 指令使用說明:(忘記參數時,很有幫助)
$ sudo nmap --help
- 基本掃瞄 Ping Scan 整個網段:
$ sudo nmap -sn 192.168.123.0/24
- 縮小範圍,對單一IP位置,進行 Port 掃瞄:
$ sudo nmap 192.168.123.10
- 掃瞄主機上的作業系統:
$ sudo nmap -O 192.168.123.10
- 開啟 OS 偵測、版本偵測、Script 掃瞄、路由掃瞄:
$ sudo nmap -A 192.168.123.10
- 掃瞄持定範圍 Port:
$ sudo nmap -p 1-1024 192.168.123.10
- 縮短掃瞄時間,數字0~5,數字愈大時間愈短:(T0:5分鐘,T1:15秒,T2:0.4秒,T3:預設值,但無說明,T4:10 ms,T5:5ms)
$ sudo nmap -T4 192.168.123.10
- 執行 ARP 掃瞄:
$ sudo nmap -Pn 192.168.123.10
- TCP 連結掃瞄:
$ sudo nmap -v -sT 192.168.123.10
- 執行 SYN 掃瞄:
$ sudo nmap -v -sS 192.168.123.10
- 執行 TCP SYN 掃瞄:
$ sudo nmap -PS 192.168.123.10
- 執行 TCP ACK 掃瞄:
$ sudo nmap -PA 192.168.123.10
- 執行 UDP ping 掃瞄:
$ sudo nmap -v -PU 192.168.123.10
- 執行 IP Protocol Ping 掃瞄:
$ sudo nmap -PO 192.168.123.10
- 更新 Nmap Script 資料庫:
$ sudo nmap --script-updatedb
- 使用 ftp Script 進行掃瞄:
$ sudo nmap 192.168.123.10 -p 21 –-script=ftp*
- 使用 NSE 預設腳本進行掃瞄:
$ sudo nmap -sC 192.168.123.10
PS: 若不知道 NMAP 腳本(Script)有哪些樣式,可以查詢: $ sudo nmap --script-help default,或是使用關鍵字,例如:$ sudo nmap --script-help ftp* 可查出與 ftp 功能相關的使用方式