Docker 滲透測試 IVRE 網路

整合各大滲透測試工具 IVRE透視潛藏資安問題

2018-05-22
目前開源滲透測試工具有很多,但一部分僅有文字介面,不易判讀偵測結果,另外每一個滲透測試工具的測試項目及強項也有所不同,造成管理者在使用和整合上的不便。如果有共通的平台可以整合這些資訊,就能夠帶來許多便利性,而本文介紹的IVRE就是這類工具。

接下來,建立相關目錄:

mkdir -p /usr/local/ivre
cd /usr/local/ivre
mkdir –m 1777 var_lib_mongodb var_log_
mongodb ivre-share
若計畫使用其他使用者執行IVRE,相關檔案和目錄的權限必須加上該用戶可執行及可寫入的設定。緊接著,下載IVRE執行檔:
wget -q https://ivre.rocks/Vagrantfile
vagrant up --no-parallel
執行時,會有以下的錯誤訊息:
There are errors in the configuration of
 this machine. Please fix
the following errors and try again:
 
vm:
* The host path of the shared folder is
  missing: var_lib_neo4j
* The host path of the shared folder is
  missing: var_log_neo4j
此代表相關目錄不存在,因此將之建立:
mkdir var_lib_neo4j
mkdir var_log_neo4j
然後,再重新執行一次:
vagrant up --no-parallel
此時若無錯誤訊息,IVRE已順利執行,可透過Web頁面進行驗證。開啟瀏覽器,並於網址列輸入伺服器的IP。此時尚未匯入資料,因此IVRE的頁面目前尚無任何資訊,如圖1所示。


▲圖1 IVRE操作頁面。

IVRE操作說明

啟動IVRE之後,可使用「docker ps」指令來查看目前執行中的Container有哪些,如圖2所示。


▲圖2 IVRE相關Container。

Vagrant執行完畢,會回到Linux的Shell Prompt。可使用「docker ps」指令來確認這三個Container是否都在執行中,若確認均在執行中,就可使用「docker attach ivreclient」指令,進入ivreclient的Container進行後續操作。

在啟用過程中,可以發現ivredb、ivreweb及ivreclient依序被啟動,之後若在執行「ivre/client」內的指令時造成異常中止(例如匯入資料時因程式異常造成ivredb停止運作),或者手動中止ivreclient執行時(在ivreclient的Shell輸入「exit」),可以視當時情形手動執行「ivre/db」或「ivre/web」,再執行並連接「ivre/client」。

實務上,建議使用「docker stop」指令依序將所有Container停止(Stop)再重新以「vagrant up --no-parallel」啟動。手動執行以及連接ivreclient的指令內容如下:

docker start ivreclient
docker attach ivreclient
在attach ivreclient之後就可以執行後續的資料庫初始化。筆者在測試過程中,在匯入Nmap掃描結果時也曾遇過Container ivre/db停止運作的情形,同樣也可透過「docker start ivredb」指令將之重新啟動。

資料庫初始化

IVRE順利執行之後,第一次使用前,必須對IVRE的相關資料庫進行初始化,以便於後續資料匯入。首先,將舊的掃描結果清空:

ivre scancli --init
顯示This will remove any scan result in your database. Process ? [y/N] ,鍵入y。

然後,把被動資訊初始化:

ivre ipinfo --init
出現This will remove any passive information in your database. Process ? [y/N],按下〔y〕 鍵。

接下來,初始化國籍及BGP的自治系統資訊:

ivre ipdata --init
跳出This will remove any country/AS information in your database. Process ? [y/N],選擇 y。

最後,將agent/scan資料庫初始化:

ivre runscansagentdb --init
詢問This will remove any agent and/or scan in your database and files. Process? [y/N],回答 y。

清除動作完成後,就可以開始進行資料庫更新的動作。依序更新各資料庫的資訊,先更新IP對應的地理資訊:

ivre ipdata --download
這些資訊包含了GeoLiteCity:Geo的IP城市對照表、GeoIPASNum:Geo的IP及AS Number對照表、BGP的AS Number所屬表、GeoIPCountry:Geo的IP國家對照表及ISO 3166的國家代碼。

接著匯入所有的資料,此階段需時較久,所以請耐心等候:

ivre ipdata --import-all --no-update-passive-db

使用Nmap進行測試

先做一個簡單的測試,使用Nmap隨機掃描台灣的100個站台,並將掃描結果匯入IVRE,指令內容如下:

ivre runscans --routable --limit 100
--country TW --output=XMLFork


追蹤我們Featrue us

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

我知道了!