Nmap 是一款功能強大的開源網路掃描與探測工具!本文將帶您熟悉簡易的掃描方法,詳細解析常見的 port 狀態意義,並介紹如何運用內建的 NSE script 深入偵測漏洞,助您輕鬆搞定端點資安與主機盤點。
一、什麼是Nmap(Natwork Mapper)?
Nmap(Network Mapper)是一款Open source的網路掃描與探測工具,通常會用來列舉網路主機、查看主機port及服務執行狀況、偵測機器作業系統版本和偵測服務版本。
最簡易的掃描方法是利用A參數全面掃描,根據狀況也可以只掃部分port或是使用ping掃描等等,根據不同需求使用不同參數。而基本掃描只會掃最常用的1000個port,假如想要全部port都掃描,需要自行加入指令p後方接1-65535。
舉個例子,使用最基本的掃瞄,如下圖,使用了A 與T4,代表全面掃描加上設置等級4的timing template,全面性掃描裡包含了基本的script檢查,因此會顯示port、服務名稱及版本、服務相關資訊、主機OS版本猜測與traceroute狀況。


假如遇到主機明明開著,但利用A掃描不到,就代表有一些原因造成機器不通,例如機器無法利用ping查詢,那就可以改成利用Pn進行掃描,如下面兩張圖。前述的方法無法掃到機器,但換個方式就可以掃到了,因此需要根據機器實際狀況去改變參數。


二、六種port狀態介紹
最基本的掃描容易遇到的狀況是,執行掃描之後port無法被得知有無開啟,port狀態有六種open、closed、filtered、unfiltered、open|filtered、closed|filtered,其代表的意義如下:
(一)open
開啟
(二)close
關閉
(三)filtered
被防火牆或其他網路設備阻止利用nmap得知port有沒有開啟
(四)unfiltered
可以訪問(accessible),但無法得知port是開啟或關閉
(五)open|filtered和closed|filtered
代表nmap被過濾,因此無法判斷,但nmap認為是比較接近open|filtered或closed|filtered。
假如遇到和filtered相關可以利用其他掃描參數,例如sS、sA、f (分段掃描)等其它參數來改變偵測方式,以查看更多偵測結果,總結後再下判斷。
除了nmap提供的掃瞄port方式之外,nmap還提供了NSE script可以使用,也有提供架構可以自己撰寫,網路上也有許多人會提供nse檔案。
三、NSE script總共分成4種類別、14種類型
(一)繞過
auth
(二)攻擊
brute、dos、exploit、fuzzer、intrusive
(三)情資
broadcast、default、discovery、external、version、safe
(四)漏洞偵測
malware、vuln
使用A全面性掃描其實就已包含了基本的script使用,假如想單獨使用基本script,可以使用sC參數,如下圖,即可以搭配Pn取得機器狀況和服務的基本資訊。

以上是nmap簡易的掃描範例,可用來取得電腦基本資訊,並且可以大量掃描,也利用oA等參數便於留存分析,會產生三個檔案.xml, .nmap, .gnmap。
有任何資安問題,歡迎隨時與NEITHNET團隊聯繫!
參考資料
https://nmap.org/
https://nmap.org/book/man-port-scanning-basics.html