IVRE是一個網路滲透測試工具整合框架,可匯入滲透測試工具的掃描結果,儲存於資料庫內並以網頁的方式展示,以利分析與判讀。前面文章已經示範了如何安裝IVRE,並扼要說明過基礎操作方法,因此本文將接著介紹其進階使用方式。
接著,確認此設定是否有生效:
iptables -n -L | grep LOG
輸出結果如圖4所示,可以確定的是Syslog在產生Log時會補上IPTABLES的字串。
|
▲圖4 確認Syslog有補上IPTABLES字串。 |
緊接著,持續觀察Syslog相關檔案。以kern.log為例,執行如下指令,發現這個檔案已有IPTABLES的關鍵字(圖5):
grep IPTABLES /var/log/kern.log | more
|
▲圖5 確認kern.log中已有IPTABLES關鍵字。 |
然後,將有IPTALBES關鍵字的部分存成檔案,並複製到ivreclient的Container中,在此要留意的是,kern.log檔需要root權限才能讀取:
grep IPTABLES /var/log/kern.log > /tmp/
iptables.log
docker cp /tmp/iptables.log ivreclient:/
tmp/iptables.log
回到ivreclient,並匯入資料,將這些連線的Log匯入flow資料庫中:
ivre flow2db -t iptables /tmp/iptables.log
之後就可以使用flow的方式將Server與Client間的關係圖匯出,此部分是本文的重點,因此在後續Bro的部分一併進行介紹。
讀者可以先使用瀏覽器開啟flow的網頁(http://myhost/flow.html)進行驗證,其中的myhost請代換為自己的IP或網域名稱。
flow網頁的操作相當直覺式,可自行進行操作或參考在Bro章節中的介紹。
p0f資料的匯入
p0f是一個被動式的偵測軟體,當它安裝於主機上,用於被連線時可獲取對方主機的TCP/IP Stack Fingerprinting以識別遠端主機的作業系統,IVRE可匯入其資料以補足IP的相關資訊。
在此要特別留意,p0f 3.0及2.0版的參數和輸出格式不同。目前IVRE僅可匯入p0f 2.0的資料,但ivreclient預設安裝的p0f卻是3.0版,因此無法用來匯入資料,若有使用p0f,請將其刪除並置換回2.0版。
在Host或外部主機產生供IVRE匯入的cap檔時,亦需要使用p0f且同樣要確認其版本。
以筆者使用的Ubuntu 14.04而言,使用apt安裝,即為2.0版,可直接使用。在此步驟中,在ivreclient需要使用p0f來讀取cap檔再匯入IVRE,因此須特別留意p0f版本問題。
首先,登入ivreclient,並執行下列指令:
ivre p0f2db -s passiverecon iface:eth0
其中,-s參數用以指定sensor名稱,而iface參數則用來指定要讀取的網路卡。如此一來,就可以直接將即時性的資料匯入。如果要匯入的是在Host或其他主機預先儲存的資料,必須在該主機上先將資料存檔,所以執行下列指令,-w指的是使用tcpdump Snapshot格式:
p0f -w /tmp/p0f-20180508.cap
執行時,如圖6所示可以發現有部分IP已被識別出其作業系統的資訊。
|
▲圖6 在p0f執行時辨識出部分作業系統。 |
使用〔Ctrl〕+〔C〕快速鍵中斷,可以讓p0f多收集一些資訊,再將cap檔複製到ivreclient:
docker cp /tmp/p0f-20180508.cap ivreclient:
/tmp/p0f-20180508.cap
接著,使用以下指令來驗證資料匯入前後IPINFO的差異:
ivre ipinfo 106.51.126.35
ivre iphost 106.51.126.35
從中可以看出,在資料匯入前,兩者皆為空。接著,匯入資料:
ivre p0f2db /tmp/p0f-20180508.cap
匯入後同樣查詢「ivre ipinfo 106.51.126.35」,結果如圖7所示,ipinfo的資料有所變動,但這些資料若沒有主動掃描的資訊是無法呈現在網頁上,因此可以主動nmap該IP,並匯入其掃描結果,就可以讓已被補足的資料完備nmap的掃描結果並在網頁中顯示。
|
▲圖7 ipinfo資料已新增。 |
相似的工具尚有arp2db、airodump2db,其功能也是用以匯入相關資料,從其名稱可以理解其匯入的類型為tcpdump的arp資訊及Airodump的CSV檔。由於功能和操作方式相似,就不再重複介紹。
Bro資料的匯入
Bro是強大的網路分析框架,它與典型常見的IDS有很大的不同。在此階段,使用Bro讀入tcpdump的cap檔,接著匯出為Bro的Log後,再使用IVRE的工具將之轉入flow資料庫中,藉此分析每個flow的關連性。flow指的是每一條連線的相關資訊,對於理解伺服器的網路行為相當有幫助,IVRE能以動態網頁的方式讓管理者清楚知道每一個IP、每一個連線的相關資訊,對於網路的管理相當便利,因此這裡特地做介紹。
首先,在Host主機上使用tcpdump側錄封包,並將之存檔:
tcpdump -i eth0 -w /tmp/tcpdump-20180508.cap
接著,將之複製到ivreclient上:
docker cp /tmp/tcpdump-20180508.cap ivreclient:
/tmp/tcpdump-20180508.cap