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狀況。


Nmap(Network Mapper)

Nmap(Network Mapper)


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


Nmap(Network Mapper)

Nmap(Network Mapper)

二、六種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

()攻擊

brutedosexploitfuzzerintrusive

()情資

broadcastdefaultdiscoveryexternalversionsafe

()漏洞偵測

malwarevuln


使用A全面性掃描其實就已包含了基本的script使用,假如想單獨使用基本script,可以使用sC參數,如下圖,即可以搭配Pn取得機器狀況和服務的基本資訊。


script


以上是nmap簡易的掃描範例,可用來取得電腦基本資訊,並且可以大量掃描,也利用oA等參數便於留存分析,會產生三個檔案.xml, .nmap, .gnmap。

有任何資安問題,歡迎隨時與NEITHNET團隊聯繫!

參考資料

https://nmap.org/
https://nmap.org/book/man-port-scanning-basics.html