網路掃描與探測工具Nmap簡介-NSE應用

NEITHNET 情資分享

NEITHNET 資安實驗室

  在4月份NEITHNET資安電子報裡,有介紹過一篇「網路掃描與探測工具Nmap」的文章,這次進一步介紹NSE 的實際操作,對於腳本引擎(NSE) 有想深入探索的朋友,建議可以往下閱讀。

  Nmap裡的NSE script分成許多類別auth、brute、dos、exploit、fuzzer、intrusive、broadcast、default、discovery、external、version、safe、malware以及vuln。在執行script時可以利–script後方接上想使用的script名稱,有些script會需要參數就要–script-args後方加上參數。

  如下圖使用了dns-brute.nse,這個script是用來暴力列舉DNS的主機名稱,也會讀取DNS SRV紀錄。他可以基本的只下這個指令,也可以增加一些參數,這個script裡可使用的參數有dns-brute.hostlist、dns-brute.threads、dns-brute.srv、dns-brute.srvlist、dns-brute.domain,假如有需要可以給予參數得到更高效率。

  另外內部提供NSE script的都有上tag方便辨識類別,在執行script也可以以類別來下指令。如下圖,使用了vuln類別,因此會執行所有有vuln標籤的script,另外假如擔心檢查中有攻擊行為,也可以使用safe類別進行安全的檢測。

  除了單一script和整個類別執行之外,也可以利用–script http* 或是–script “default or safe”等能夠被expression表示的寫法來執行想要的script。

  其他幾個常用的簡單script還有enum相關的script,假如知道目標機器的架構是甚麼可以直接使用相關的enum,包含了http-wordpress-enum、citrix-enum-servers、dns-nsec-enum、dns-srv-enum、http-drupal-enum、http-gitweb-projects-enum。

        smb相關的script也很實用,利用smb-os-discovery.nse可以探測smb服務以及OS基本狀況,可以看到OS、NetBIOS computer name、Workgroup等資訊,利用smb-protocols.nse會列舉出有支援的版本,在smb的版本中V2增加了signature輔助完整性機制來防止中間人攻擊,V3增加了encryption來防止封包內容洩漏。

  利用smb-enum-shares.nse可以查看有哪些smb share以及會進行幾種常見的測試,像是下圖中透過smb-share可以發現有幾個可以用匿名登入的資料夾(IPC$和share_files),因此可以匿名登入進去看看,成功登入會看到一些可以下載的檔案。

  另外,也可以做到smb登入的爆破密碼,有個smb-brute.nse可以使用,可自訂參數設定帳號密碼表單進行爆破,如果沒有給參數也會跑預設的表單,利用d參數可以看到更多細節,不然只會顯示成功的例子。

  跟smb相關的有名漏洞還有ms17-010漏洞,nse script裡也有可以用來偵測的script存在,執行之後會去進行檢查,利用d參數查看詳細封包可以看到檢查方式,會先連上IPC$再檢查錯誤回應內容來判斷是否有上patch。

  把更新patch上上去之後,利用d參數查看詳細封包會發現回傳的錯誤回應改變了,因此被script判斷已經上了patch。

參考資料:

https://nmap.org/book/nse-usage.html

  更多資安訊息及防護策略,歡迎與NEITHNET資安專家聯繫:info@neithnet.com