流量分析学习
Wireshark的基本使用
基本界面介绍
点进去就是wireshark的主界面,包含主机上存在的流量文件和用于捕获流量的网卡
工作界面
这里选用了以太网网卡捕获了一些流量进行演示
一些菜单栏
文件菜单
文件菜单主要负责打开已经抓取的数据包、最近打开的数据包合并数据包、导入导出特定数据包。
编辑菜单
编辑菜单主要负责对数据包分类标记,以及在抓包过程中按照时间大小进行分包存储,还有整个软件的首选项也在编辑菜单中。
捕获菜单
捕获菜单用于设置捕获规则,其中选项菜单可以设置捕获的网卡,还可以设置捕获规则
分析菜单
分析菜单针对已经获取的数据包进行分析,通过制定相应的规则筛分数据包。
视图菜单
视图菜单主要是针对软件中的视图显示进行设置,重点需要关注的是解析名称、列显示中的着色规则。
统计菜单
统计菜单可以通过对已有数据进行图形化数据分析,这个功能对于分析大量数据是非常有帮助的。
数据包显示相关
数据包显示列信息
- No:编号,根据抓取的数据包自动分配
- Time:时间,根据捕获时间设定该列
- Source:源地址信息,如果数据包包含源地址信息比如:IP、MAC等,会显示在该列中
- Destination:目的地址信息
- Protocol:协议信息
- Length:数据包长度信息
- Info:wireshark对数据包解读的信息
修改显示列信息
我们可以选择想要加入显示列的子项右击并选择应用为列,就可以在上面看到该列
我们还可以删除已存在的显示列
我们还可以右击编辑列信息
修改显示列时间
默认给出的时间格式不好阅读,我们也可以自己进行修改
我们可以单击视图选择想要的时间格式
名字解析
默认情况下Wireshark只开启了mac地址解析,如果有需要我们可以开启解析网络名称、解析传输层名称。
点击捕获,在捕获选项中进行修改,比如传输层就会将能识别的端口号解析成对应的服务名称,解析不了就显示原始端口号
数据包操作
获取数据包后用户可以对其进行标记、注释、合并、打印以及导出等操作,这里记录一些比较有用的操作
标记数据包
标记数据包可以实现对比较重要的数据包进行标记,同时还可以修改数据包显示颜色。标记数据包的操作步骤如下:
在需要标记的数据包右击选择“标记/取消标记”
标记之后数据包就会高亮显示
添加注释操作
Wireshark提供对数据包注释的功能,在实际操作中如果感觉这个数据包有问题或者比较重要,可以添加一段注释信息
右击需要注释的数据包选择”分组注释”
打印数据包
点击文件菜单选择打印
合并数据包
在实际抓包过程中,如果网络流量比较大,不停止抓包操作,可能会出现抓包工具消耗掉所有内存,最终导致系统崩溃的状态。为解决这个问题,用户可以采取分段抓取,生成多个数据包文件,最后为了整体分析,再将这些分段数据包合并成一个包。
点击文件菜单选择合并,然后选择要合并的流量文件即可
导出数据包
Wireshark提供了数据包导出功能,用户可以进行筛选导出,还可以通过分类导出,还可以只导出选中数据包
点击文件菜单选择导出特定分组
还可以选择导出为不同格式
捕获选项
捕获选项主要针对抓取数据包使用的网卡、抓包前的过滤、抓包大小、抓包时长等进行设置。这个功能在抓包软件中也属于非常重要的一个设置。
数据包的过滤设置
Wireshark抓包过滤是基于libpcapWinpcap库实现的,所以遵循BPF(Berke-ley Packet Filter)语法,其中包括类型(Type)、方向(Dir)、协议(Proto)、逻辑运算符。
- 类型:host、net、port
- 方向:src、dst
- 协议:ether、ip、tcp、udp、http、ftp等
- 逻辑运算符:&&与、||或、!非
例如想要抓取源地址为192.168.0.100目的端口为80的流量,过滤语句为
|
想要抓取ip为192.168.0.100和192.168.0.101的流量,过滤语句为
|
想要抓取除广播外的所有包,过滤语句为
|
常用的过滤器写法
过滤mac地址
ether host <需要过滤的MAC地址>
ether src host <MAC地址>
ether dst host <MAC地址>过滤IP地址
host <需过滤的IP地址>
src host<IP地址>
dst host<P地址>过滤端口
prot 80
! prot 80
dst port 80
srcport 80
抓包过滤一旦设置后将只抓取符合规则的数据包,这样会过滤掉大量干扰数据包,从而提高抓包数据的准确率。
过滤数据包
过滤数据包时抓取完之后使用显示过滤器来进行过滤,显示出所需要的数据包
语法规则如下
- 比较操作符:==等于、!=不等于、>大于、<小于、>=大于等于、<=小于等于。
- 逻辑操作:and 与操作、or或操作、xor异或操作、not非操作。
- IP地址:ip.addr、ip.src、ip.dst。
- 过滤端口:tcp.port、tcp.srcport、tcp.dstport、tep.flags.syn、 tep.flags.ack。
- 过滤协议:arp、ip、icmp、udp、tcp、bootp、dns等
例如想要过滤指定ip的数据包
|
wireshark也会自带补全,类似代码补全提示的那样
更多语法可以参考这篇文章:https://cloud.tencent.com/developer/article/1442007
数据包分析
数据追踪
正常通信中如TCP、UDP、SSL等数据包都是以分片的形发送的,如果在整个数据包中分片查看数据包不便于分析,使用数据流追踪可以将TCP、UDP、SSL等数据流进行重组,以一个完整的形式呈现出来。
开启追踪流的方式有两种:
- 在数据流显示列表中选中要追踪的数据流,右击然后选择追踪流菜单命令。
- 选择”分析”菜单,然后选择追踪流。
比如我这里选择追踪一个http流,他就会显示有关这个这个数据前后相关的整个通信过程
红色是发送请求,服务器返回的结果是蓝色
然后我们还能看到该http请求之前的tcp三次握手的过程
后面则是传输完成后的四次挥手
顺便说明这个数据包的具体结构,拿这个http请求为例
上面从上到下对应着计算机网络中的五层模型:物理层、数据链路层、网络层、传输层、应用层;如果只是tcp协议的话他就只有前四层
统计数据包
通过对数据包的统计分析,可以查看更为详细的数据信息,进而分析网络中是否存在安全问题。
选择统计菜单中的”捕获文件属性”,在其中可以查看文件、事件、捕获、接口等信息
选择统计菜单中的”协议分级”,可以统计出每一种协议在整个数据包中的占有率
选择统计菜单中的”会话”,其中包括以太网、IPv4、IPv6、TCP、UDP等不同协议会话信息展示。
选择统计菜单中的”端点”,其中包含以太网和各种协议选项。
选择统计菜单中的”分组长度”,可以对不同大小的数据包进行统计
选择统计菜单中的”I/O图表”,其中包括一个坐标轴显示的图表,下方可以添加任意的协议,也可以选择协议显示的颜色,还可以调整坐标轴的刻度。
选择统计菜单中的”流量图”,其中包括通信时间、通信地址、端口以及通信过程中的协议功能
选择统计菜单中的”TCP流型图”,在其中可以根据实际需要设置相应的显示,还可以切换数据包的方向。
常见漏洞流量分析
这里采用dvwa靶场来进行流量分析