本文將介紹一套在開源碼社群中頗富盛名的弱點掃描工具OpenVAS,可用來掃描主機系統,找出系統潛在的漏洞,讓管理者能夠儘早修補系統漏洞,進而降低主機系統被攻擊的機率。
首先啟動OpenVAS執行環境,執行下列指令:
在執行完畢後,可利用「ps aux | grep openvas」指令來檢查是否啟動成功。要注意的是,由於openvassd在啟動時需載入NVTS的資訊,所以必須等到完全載入NVTS的資訊後才可進行掃描,如圖5所示。
|
▲圖5 完全載入NVTS資訊後開始掃描。 |
啟動完成後,基本上要完成一個掃描工作(Task)需經過下列步驟。在此將以omp程式來執行O.M.P指令(以XML形式下達指令,這裡僅說明基本指令)。首先必須產生欲掃描主機(以下簡稱為target)的targetID,由於OpenVAS是以targetID來辨別各台主機,所以要先將個別主機轉換成targetID。假設target的IP為140.117.100.5,而產生targetID的指令如下:
如圖6所示,已成功地新建一個IP為140.117.100.5的TARGETID,其targetid為「69b3b79a-97a0-4e2a-92b5-e6505ca3a0d8」。
|
▲圖6 產生targetID。 |
如果想要知道目前有多少的targetID資訊,則執行如圖7所示的指令:
|
▲圖7 查詢現有的targetID資訊。 |
緊接著,新建欲對此targetID進行掃描的工作(Task)並產生相對應的taskID,建立指令如下:
其中要特別說明的掃描組態ID(configID),所謂的掃描組態指的是用什麼模式進行掃描,例如快速掃描、完整掃描等模式等。在OpenVAS裡預設有下列掃描模式,如圖8所示。
|
▲圖8 有預設掃描模式可供挑選。 |
一般預設掃描會使用「Full and very deep」模式,因此執行如圖9所示的建立掃描作業指令:
|
▲圖9 建立掃描作業。 |
成功建立掃描作業之後,就會回傳taskID資訊。也可以利用「omp -u [使用者名稱] -w [使用者帳
號] –G」指令來取得目前的掃描作業狀態,如圖10
所示。
|
▲圖10 取得目前的掃描作業狀態。 |
其中執行狀態表示目前此工作(Task)的狀態,OpenVAS將執行狀態定義成如下的狀態:
·New:表示新建的掃描工作,尚未開始執行掃描。
·running:表示掃描工作正在執行中,並會顯示目前執行的進度。
·Done:表示掃描工作已執行完畢。
在建立掃描工作之後,接下來即可啟動掃描作業,如圖11所示。圖中的指令分為兩個部分,第一個指令為啟動該掃描工作的指令,在此啟動掃描成功後,就會回覆報表編號(reportID),此編號可用來取得後續掃描的結果。在啟動掃描工作後,可利用如圖11所示的第二個部分指令查看該掃描工作目前掃描的進度。
|
▲圖11 啟動掃描作業,並查看目前的掃描進度。 |
當掃描完成後,可利用報表編號(reportID)的編號來取得相對應的報表,OpenVAS提供了多種不同的報表格式,例如HTML、PDF、XML等。可使用如圖12中的指令來取得支援的格式(目前支援10餘種格式)及格式編號(format_id)。
|
▲圖12 取得支援的格式以及格式編號。 |
如表3所示,這裡僅列出常用的報表格式及其報表編號(formatID)。
表3 常用的報表格式及其報表編號
以輸出HTML格式的掃描報表為例,如圖13中的指令表示要輸出HTML格式的掃描報表,並且將其儲存至
「/tmp/test.html」檔案(report_id為所需的報表編號,format_id為報表的輸出格式,在此為HTML格式)。
|
▲ 圖13 輸出HTML格式的掃描報表,並儲存至「/tmp/test.html」檔案。 |
成功執行後,掃描報表就會儲存到「/tmp/test.html」檔案內,在此要特別提醒的是,在輸出為HTML格式的情況下,OpenVAS會將此輸出的檔案以base64編碼加密,使用者必須自行以base64的解碼解開,然後就會得到如圖14所示之HTML格式的掃描報表。
|
▲圖14 製作出HTML格式的掃描報表。 |
進行至此,一個完整的弱點掃描系統即告完成!
<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>