相信各位做流量分析和应急响应的朋友经常需要使用WireShark进行网络流量包分析,比如NTA的全流量包,但不得不说,一旦数据包过大,日志条目过多,加载就变得异常缓慢,分析起来也是特别麻烦,WireShark也会显得力不从心。而最近,我了解到Brim神器,在试用过之后,觉得真是懒人的福音,所以特来介绍给大家。
![34d696be460318d123d8ac71554f98e8.png](https://i-blog.csdnimg.cn/blog_migrate/6b5224f31f47dca773d071b067da4d72.jpeg)
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搜索起来很轻松。
![c7241de23b3727c71cb0514a53c2e6f8.png](https://i-blog.csdnimg.cn/blog_migrate/fa4eb2f5c33f8c635f8b90932dbabecc.jpeg)
安装是非常简单的,我们从官网下载https://www.brimsecurity.com/download/后双击允许即可,并没有复杂的安装界面和配置界面,打开直接可以使用。
![12d52c9635d81b0f8046f8bbaef10e06.png](https://i-blog.csdnimg.cn/blog_migrate/24146901a9a6671a795068020a3397b3.jpeg)
Brim载入Pcap包之后,会以KV的结构显示所有数据内容,每一个BLOCK块均为一个键名=键值,比如截图中所示,”CbLZFm13mbz1BVuu88”是键名为”uid”的键值,使用鼠标悬停到键名的位置即可看到键名。
![40368a2d27b955d511f70c4bb74f1946.png](https://i-blog.csdnimg.cn/blog_migrate/73a493c3c819436612653887834fdfb1.jpeg)
每一个值均对应了一个键名,当想要搜索的时候,可以简单的直接输入键名或者通过K=V的方式输入匹配的键值对,那么搜索的结果更加准确,快速。
![a2840b3999e5480a8d0e3e3985086356.png](https://i-blog.csdnimg.cn/blog_migrate/4d916b49df2ea9102b844c740b989603.jpeg)
Brim的界面没有太多可以设置的需要,也非常简单,不需要花时间去对菜单进行一一解释了。我们以实战者的角度来使用Brim进行数据分析.
那么我们先来看看如何在Wireshark里面查找DHCP流量中的主机信息
任何在网络中产生流量的主机都应该有三个标识符:MAC地址、IP地址和主机名。
在大多数情况下,可疑活动的警报是基于IP地址的。如果你捕获到了网络流量的完整数据包,那么在内部 IP 地址上检索的 pcap 包应该会显示相关的 MAC 地址和主机名。
我们如何使用Wireshark找到这样的主机信息呢?我们对两种类型的活动进行过滤,DHCP或NBNS。DHCP流量可以帮助识别连接到网络中的几乎所有类型的计算机的主机。NBNS流量则主要由运行Microsoft Windows的计算机或运行MacOS的苹果主机产生。我们先试用DHCP过滤流量包数据。
![5c15c4523da4797a88ac012830d90fc9.png](https://i-blog.csdnimg.cn/blog_migrate/701b26673a86cefb3cc94a59ff93b801.jpeg)
选择其中一个在信息栏中显示DHCP请求的帧。转到帧详细信息部分,展开DHCP协议(请求)的行,如图所示。展开Client Identifier和Host Name的行。客户端标识符详细信息应显示分配给172.16.1[.]207的MAC地址,主机名详细信息应显示主机名。
![90246729bf383a75dfb4dcf57c356cdc.png](https://i-blog.csdnimg.cn/blog_migrate/fd93e590e4799f22081e1d1821d3946c.jpeg)
![dd9673b34fe5058931ac428fb190ed5b.png](https://i-blog.csdnimg.cn/blog_migrate/ea3a0d844e4cf5bd75e97c5d0b871044.jpeg)
那么如果是Brim进行搜索的话,又是一种什么情况呢?同样一个包拉进Brim后,在搜索框中输入dhcp
我们可以看到结果已经直接被显示出来了。
![26e3fb397baae1d687f66c2f0e26dcc8.png](https://i-blog.csdnimg.cn/blog_migrate/4a0055869ee041203c719bfeed6e9290.jpeg)
又比如我要查询User-Agent的信息,在Wireshark中可能需要先通过过滤器查找http.request,然后使用Follow -> TCP Stream去展示我们需要了解到的User-Agent信息。
![92189f11da36a6731b02812485848ae6.png](https://i-blog.csdnimg.cn/blog_migrate/09026803798504921c3440c53073beec.jpeg)
![5d8ae45ee1c6639a44958100862c97fe.png](https://i-blog.csdnimg.cn/blog_migrate/801c307c3daf91d4751d935ca79a5f99.jpeg)
那么我们在Brim中,右键点击数据流,然后选择Filter = Value 或者直接手打_path=”http”,Brim会立即将我们需要的HTTP数据流呈现出来,如下图所示
![41764e50be0779dc80571dce4365d014.png](https://i-blog.csdnimg.cn/blog_migrate/341f0d1d94c2052fcd1dbdf8ad6d392e.jpeg)
![ba62906e7c53840509fc2902f5c4619a.png](https://i-blog.csdnimg.cn/blog_migrate/44237e9db79517345121a7dae86d8d18.jpeg)
直接就可以看到所对应的User-Agent信息
![90544babd5811f1d1f192c0b9007fd3f.png](https://i-blog.csdnimg.cn/blog_migrate/ac5ce8204ef03599310f7cf274968324.jpeg)
同样的,当我们想要知道流量包中的用户名的时候,在Wireshark中,我们需要
![5e9ba1841d65f3b3bb45578a5c1a75b0.png](https://i-blog.csdnimg.cn/blog_migrate/619c650b0bee6c4286edbc2f78645986.jpeg)
这样,我们就可以获得用户名
![5a644a4ad0a029e69f8d1dd73e97f73f.png](https://i-blog.csdnimg.cn/blog_migrate/3c8cc9b50d78a9d002c0f0bf8930b367.jpeg)
或者在过滤器中使用“kerberos.CNameString and !(kerberos.CNameString contains $) “
而brim中则直接输入kerberos,则会非常快捷地显示相关信息
![938b670a3ee50fa0c584bd843f09b17e.png](https://i-blog.csdnimg.cn/blog_migrate/4609b88ddb5978e6ccec95f5529cfd0c.jpeg)
下面我们来分析一下NetWireRC病毒的流量包,将包导入brim之后,我们了解到这是一个HTTP请求,简单输入http后,我们直接发现可疑文件
![118661cd996dc5ee931101c5e9706205.png](https://i-blog.csdnimg.cn/blog_migrate/f32eb3da9f9632e9093cefe4a9ee7d51.jpeg)
右键可疑的Invoice&MSO-Request.doc文件,点击Open Details将展开该包的详细信息
![098ed5b3be1d8ea2d426c33aa48735bd.png](https://i-blog.csdnimg.cn/blog_migrate/4285f6fbf3db11b09966fe672cfa802b.jpeg)
点击conn按钮,将显示握手协议处理情况
![2165ba94685ce4ba7a2bc09b6ec12a0b.png](https://i-blog.csdnimg.cn/blog_migrate/956d8823534a8b468bdefd3dcec4f3ae.jpeg)
如果该数据包为文件类型,点击”files”标签则将显示该文件的具体信息,比如这个将会显示访问的是一个word文件,也会显示其MD5/SHA1哈希值,通过右键点击VirusTotal查询反病毒引擎检查结果。
![6ff11c04cc1fbefcb47603e3ecbbb30c.png](https://i-blog.csdnimg.cn/blog_migrate/315095d6df4416d783994d9bb9bdb577.jpeg)
如图所示,非常快速地得到了相应结果,如果是WireShark中,我们可能需要使用导出HTTP Object对象后再使用哈希工具计算对象的哈希值等操作。
![771f109de5fced9aef6d45d4b94623e2.png](https://i-blog.csdnimg.cn/blog_migrate/74972de2c7274a3fa55cfd1705ba2843.jpeg)
当然,也可以点击上方的“Log Details“右边的小箭头,将开启一个新的窗口,点击Wireshark图标将使用Wireshark打开该数据包,这样也可以使用Wireshark将该数据包中的HTTP对象保存下来进行进一步的测试。
![3da18b14b5446fbc3b096382c5556840.png](https://i-blog.csdnimg.cn/blog_migrate/762bbcd3cf4ed781f1ea7ecd74e4312a.jpeg)
同样,你也可以直接在原始的搜索结果中双击任何一个标签数据,比如/knr.exe,也将直接打开新窗口显示详细信息。
Brim也支持自然语言,通过管道命令符进行计算,熟悉SHELL的或者使用SPLUNK的一定会比较熟悉这种语法,比如,我想统计有多少个HTTP请求,可以通过如下命令实现。
![2f6e50b489b5f76f8f927412252f6322.png](https://i-blog.csdnimg.cn/blog_migrate/832b410cf2ba75d8b6bb0cfde7d2e960.jpeg)
或者统计下DNS请求,可以迅速发现可疑的DNS数据请求,便于发现诸如DNS隧道攻击等行为。
![b2c17ea388326c33882c7c81859909f8.png](https://i-blog.csdnimg.cn/blog_migrate/4938561b07b4a04039b714f75751de79.jpeg)
右键想要查询的DNS域名,点击”Pivot to logs”后,我们可以看到以瀑布流形式呈现的DNS访问请求
![de0e4202c759515e44d393b361f08e08.png](https://i-blog.csdnimg.cn/blog_migrate/1119b1107c03c89e76fe60d49d6d4619.jpeg)
也许你会说,这些Wireshark都可以做得到,确实,但是不要忘记,当数据包越大,WireShark打开的速度则越慢,而同样的一个包使用Brim进行数据处理比Wireshark要快得太多太多。
![eb6690cbb23fd9935be8b6d0916d5c43.png](https://i-blog.csdnimg.cn/blog_migrate/47a3bbcf494338c6a3375725763cac1c.jpeg)
![43d68255aee190513f685b2b81f0f2e3.png](https://i-blog.csdnimg.cn/blog_migrate/8b373bab6675aaf9f4cc87f149b20d8c.jpeg)
简而言之,Brim这个网络数据包分析神器有如下好处:
• 快速加载并解析大PCAP包
• 拥有强大的搜索语言
• 拥有非常快速的响应
• 具有历史和可视化的直观UI
• 可随时跳转到WireShark查看数据包
项目地址
Brim项目地址:【Github传送门】