相信各位做流量分析和应急响应的朋友经常需要使用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查看数据包