Brim:網絡數據包分析神器
相信各位做流量分析和應急響應的朋友經常需要使用WireShark進行網絡流量包分析,比如NTA的全流量包,但不得不說,一旦數據包過大,日志條目過多,加載就變得異常緩慢,分析起來也是特別麻煩,WireShark也會顯得力不從心。而最近,我了解到Brim神器,在試用過之后,覺得真是懶人的福音,所以特來介紹給大家。

Brim的官方網站:https://www.brimsecurity.com/
Brim被打包成桌面應用,和Slack一樣用Electron構建,免費,開源。安裝后,你可以用Brim打開一個PCAP包,它將把PCAP包轉換成ZNG格式的Zeek日志。通過Brim可以搜索日志,也可以協同WireShark來深入分析來自特定流量的數據包。目前Brim僅支持桌面端搜索,將來也會支持云端,集群搜索功能。
大家一般都是使用WireShark來解析特定的流量或協議。但是,WireShark如上所述,有個不得不面對的問題,如果加載的是一個巨大的PCAP包,并需要針對這個PCAP包進行分析,那就會非常痛苦了。而有了Brim,你可以快速地加載巨大的PCAP包,并可以立即開始搜索,且在幾秒鐘內得到響應,當你發現需要刻意分析的流量條目時,還可以直接解析到WireShark來進行分析。一個多GB的PCAP包一般會提煉出幾百MB的ZNG日志,用Brim搜索起來很輕松。

安裝是非常簡單的,我們從官網下載https://www.brimsecurity.com/download/后雙擊允許即可,并沒有復雜的安裝界面和配置界面,打開直接可以使用。

Brim載入Pcap包之后,會以KV的結構顯示所有數據內容,每一個BLOCK塊均為一個鍵名=鍵值,比如截圖中所示,”CbLZFm13mbz1BVuu88”是鍵名為”uid”的鍵值,使用鼠標懸停到鍵名的位置即可看到鍵名。

每一個值均對應了一個鍵名,當想要搜索的時候,可以簡單的直接輸入鍵名或者通過K=V的方式輸入匹配的鍵值對,那么搜索的結果更加準確,快速。

Brim的界面沒有太多可以設置的需要,也非常簡單,不需要花時間去對菜單進行一一解釋了。我們以實戰者的角度來使用Brim進行數據分析.
那么我們先來看看如何在Wireshark里面查找DHCP流量中的主機信息
任何在網絡中產生流量的主機都應該有三個標識符:MAC地址、IP地址和主機名。
在大多數情況下,可疑活動的警報是基于IP地址的。如果你捕獲到了網絡流量的完整數據包,那么在內部 IP 地址上檢索的 pcap 包應該會顯示相關的 MAC 地址和主機名。
我們如何使用Wireshark找到這樣的主機信息呢?我們對兩種類型的活動進行過濾,DHCP或NBNS。DHCP流量可以幫助識別連接到網絡中的幾乎所有類型的計算機的主機。NBNS流量則主要由運行Microsoft Windows的計算機或運行MacOS的蘋果主機產生。我們先試用DHCP過濾流量包數據。

選擇其中一個在信息欄中顯示DHCP請求的幀。轉到幀詳細信息部分,展開DHCP協議(請求)的行,如圖所示。展開Client Identifier和Host Name的行。客戶端標識符詳細信息應顯示分配給172.16.1[.]207的MAC地址,主機名詳細信息應顯示主機名。


那么如果是Brim進行搜索的話,又是一種什么情況呢?同樣一個包拉進Brim后,在搜索框中輸入dhcp
我們可以看到結果已經直接被顯示出來了。

又比如我要查詢User-Agent的信息,在Wireshark中可能需要先通過過濾器查找http.request,然后使用Follow -> TCP Stream去展示我們需要了解到的User-Agent信息。


那么我們在Brim中,右鍵點擊數據流,然后選擇Filter = Value 或者直接手打_path=”http”,Brim會立即將我們需要的HTTP數據流呈現出來,如下圖所示


直接就可以看到所對應的User-Agent信息

同樣的,當我們想要知道流量包中的用戶名的時候,在Wireshark中,我們需要

這樣,我們就可以獲得用戶名

或者在過濾器中使用“kerberos.CNameString and !(kerberos.CNameString contains $) “
而brim中則直接輸入kerberos,則會非常快捷地顯示相關信息

下面我們來分析一下NetWireRC病毒的流量包,將包導入brim之后,我們了解到這是一個HTTP請求,簡單輸入http后,我們直接發現可疑文件

右鍵可疑的Invoice&MSO-Request.doc文件,點擊Open Details將展開該包的詳細信息

點擊conn按鈕,將顯示握手協議處理情況

如果該數據包為文件類型,點擊”files”標簽則將顯示該文件的具體信息,比如這個將會顯示訪問的是一個word文件,也會顯示其MD5/SHA1哈希值,通過右鍵點擊VirusTotal查詢反病毒引擎檢查結果。

如圖所示,非常快速地得到了相應結果,如果是WireShark中,我們可能需要使用導出HTTP Object對象后再使用哈希工具計算對象的哈希值等操作。

當然,也可以點擊上方的“Log Details“右邊的小箭頭,將開啟一個新的窗口,點擊Wireshark圖標將使用Wireshark打開該數據包,這樣也可以使用Wireshark將該數據包中的HTTP對象保存下來進行進一步的測試。

同樣,你也可以直接在原始的搜索結果中雙擊任何一個標簽數據,比如/knr.exe,也將直接打開新窗口顯示詳細信息。
Brim也支持自然語言,通過管道命令符進行計算,熟悉SHELL的或者使用SPLUNK的一定會比較熟悉這種語法,比如,我想統計有多少個HTTP請求,可以通過如下命令實現。

或者統計下DNS請求,可以迅速發現可疑的DNS數據請求,便于發現諸如DNS隧道攻擊等行為。

右鍵想要查詢的DNS域名,點擊”Pivot to logs”后,我們可以看到以瀑布流形式呈現的DNS訪問請求

也許你會說,這些Wireshark都可以做得到,確實,但是不要忘記,當數據包越大,WireShark打開的速度則越慢,而同樣的一個包使用Brim進行數據處理比Wireshark要快得太多太多。


簡而言之,Brim這個網絡數據包分析神器有如下好處:
- 快速加載并解析大PCAP包
- 擁有強大的搜索語言
- 擁有非常快速的響應
- 具有歷史和可視化的直觀UI
- 可隨時跳轉到WireShark查看數據包