script nmap 掃描軟體 系統安全

掃port利器開外掛 輕鬆擴充nmap掃描能力

2013-12-06
如果想知道主機目前正在運作的服務,相信多數的網管人員腦海裡浮現的第一個解決方案,應該就是利用Nmap掃描軟體來掃描系統。自Nmap軟體推出以來,挾著其優異的掃描能力及免費的優點,早已成為掃描軟體的代名詞。
所謂半連接的掃描技術,是指在未與通訊埠完成正常的網路通訊行為(例如三向交握)時,即由該通訊埠的回覆來判別結果。常用的半連接掃描技術如下所述:

.SYN封包掃描
在上述的三向交握機制中,當傳送端主機要傳送資訊至接收端主機時,會先發出SYN封包到接收端主機,一旦接收端主機接收到之後,會回覆SYN/ACK封包給傳送端主機,而後傳送端主機將再回覆ACK封包至接收端主機,至此連線階段建立,方可開始傳送資訊。

而SYN封包掃描即是在發出SYN封包至對方主機後,如果對方主機有正常地回應SYN/ACK封包,即表示埠(Port)是開啟的情況,並立即發出RST封包,切斷該次連線。由於並未完整地完成三向交握連線,所以防火牆或IDS(入侵偵測系統)並不會記錄該次的連線。

.SYN/ACK封包掃描技術
SYN/ACK掃描是利用繞過三向交握第一步的SYN封包傳送,而直接利用傳送SYN/ACK封包至目的主機上的埠口,由於TCP協定具有連接性的性質,當目的埠口接收到此封包後,如果它是開啟的狀態,就知道此封包並不是合法的封包(因為沒有相對應SYN封包),而直接丟棄(Drop)。

但如果目的埠口是關閉的狀態,則會回傳RST封包(直接重置該連線),SYN/ACK掃描即可利用此種特性來確認埠是否在開啟的狀態。

.FIN封包掃描技術
FIN掃描是利用繞過三向交握第一步的SYN封包傳送,而直接利用傳送FIN封包至目的主機上的埠口。

當目的埠口接收到此封包後,如果它是開啟(Open)的狀態,就知道此封包並不是合法的封包(因為沒有相對應SYN封包),而直接丟棄(Drop),但如果目的埠口是關閉的狀態,則會回傳RST封包(重置該連線),FIN掃描即可利用此種特性來確認埠口是否處於開啟的狀態。

可以利用下列指令來掃描被探測主機所開啟的埠及服務資訊(圖2):



▲圖2 利用SYN掃描來探測被探測主機所開啟埠資訊。

以下列出常用的Nmap通訊埠掃描參數,詳見表3所示。

表3 Nmap常用通訊埠掃描參數

藉由上述的相關參數,即可以輕易地掃描出遠端主機目前通訊埠的服務狀況,甚至其服務的程式名稱以及版本等敏感資訊都能夠輕易地掃描出來。介紹完Nmap的傳統應用,接下來便為讀者說明如何利用Nmap掃描軟體外掛的Script功能來增強Nmap自身的掃描能力。

Script簡介

就如同其他類似的掃描軟體(例如病毒掃描軟體)常會使用外掛程式的方式來增強其掃描能力,好比防毒軟體用這個方法來更新自身病毒碼,而著名的弱點掃描軟體Nessus就藉此來更新外掛。

在Nmap軟體上即提供NSE程式語言(某種Script語言)來為自身編寫相關的Script程式,以便提供額外的掃描能力。搜尋Nmap安裝目錄下的「/share/nmap/scripts/」,即可查閱相關的Script。

具有程式能力的管理人員,甚至可改寫該Script以更加符合自己的需求。但其實僅需使用如下的語法即可使用Script的功能(其中的targetIP為欲掃描的IP位址):


舉例來說,「nmap --script=http-backup-finder 127.0.01」即是表示使用名稱為「http-backup-finder」的Script來掃描本機(127.0.0.1)。若未設定「--script-args」參數,則表示使用預設參數。

另外,也可利用萬用字元(*)來載入相關的Script,如下例即表示載入HTTP相關的Script來進行掃描:


接著,介紹幾個可用於掃描網站伺服器相關漏洞的Script用法。

http-backup-finder

一般在程式開發時,經常會直接在網站伺服器上修改網頁程式,而某些編輯器或開發工具在修改程式的當下,會為了安全的理由而新建一個原先程式的暫存檔或備份檔。

以UltraEdit編輯器為例,在修改完原先的程式後,將在同目錄下產生一個副檔名為.swap的暫存檔案。程式設計師往往會忽略此類檔案,而將此類檔案置於網站上,因而造成潛在的資安問題。

Nmap則提供了一個相當好用的Script,名稱為「http-backup-finder」。利用此Script可用來搜尋網站上相關的備份檔。

表4列出了「http-backup-finder」Script的相關參數。

表4 http-backup-finder相關參數


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!