2024年2月6日 星期二

NMAP 用於主動掃瞄的手法

學習目標
  • 在 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高優先權封包

重要步驟
  1. 啟動 Kali Linux 作業系統,並且以 Kali 帳號登入系統。
  2. 使用 Terminal,先進行系統更新的動作:
    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt dist-upgrade
    
  3. NMAP 指令使用說明:(忘記參數時,很有幫助)
    $ sudo nmap --help
    
  4. 基本掃瞄 Ping Scan 整個網段:
    $ sudo nmap -sn 192.168.123.0/24
    

  5. 縮小範圍,對單一IP位置,進行 Port 掃瞄:
    $ sudo nmap 192.168.123.10
    

  6. 掃瞄主機上的作業系統:
    $ sudo nmap -O 192.168.123.10
    

  7. 開啟 OS 偵測、版本偵測、Script 掃瞄、路由掃瞄:
    $ sudo nmap -A 192.168.123.10
    

  8. 掃瞄持定範圍 Port:
    $ sudo nmap -p 1-1024 192.168.123.10
    

  9. 縮短掃瞄時間,數字0~5,數字愈大時間愈短:(T0:5分鐘,T1:15秒,T2:0.4秒,T3:預設值,但無說明,T4:10 ms,T5:5ms)
    $ sudo nmap -T4 192.168.123.10
    

  10. 執行 ARP 掃瞄:
    $ sudo nmap -Pn 192.168.123.10
    

  11. TCP 連結掃瞄:
    $ sudo nmap -v -sT 192.168.123.10
    

  12. 執行 SYN 掃瞄:
    $ sudo nmap -v -sS 192.168.123.10
    

  13. 執行 TCP SYN 掃瞄:
    $ sudo nmap -PS 192.168.123.10
    

  14. 執行 TCP ACK 掃瞄:
    $ sudo nmap -PA 192.168.123.10
    

  15. 執行 UDP ping 掃瞄:
    $ sudo nmap -v -PU 192.168.123.10
    

  16. 執行 IP Protocol Ping 掃瞄:
    $ sudo nmap -PO 192.168.123.10
    

  17. 更新 Nmap Script 資料庫:
    $ sudo nmap --script-updatedb
    

  18. 使用 ftp Script 進行掃瞄:
    $ sudo nmap 192.168.123.10 -p 21 –-script=ftp*
    

  19. 使用 NSE 預設腳本進行掃瞄:
    $ sudo nmap -sC 192.168.123.10
    

  20. PS: 若不知道 NMAP 腳本(Script)有哪些樣式,可以查詢: $ sudo nmap --script-help default,或是使用關鍵字,例如:$ sudo nmap --script-help ftp* 可查出與 ftp 功能相關的使用方式
參考文獻