wireshark简单使用

Posted by 周思进 on August 14, 2021

如果是 Mac 使用 wireshark 进行抓包时提示 You don’t have permission to capture on that device,可以通过如下方式解决:

执行命令 sudo chown user_name /dev/bpf*
其中 user_name 可以用命令 whoami 查询

顺便发一篇以前整理的笔记(真的好久没学习整理了.. 太罪过了)。


本文简单说明wireshark的抓包操作,便于日常数据包的抓取分析等操作。如有错误,麻烦指正,谢谢。 详细说明操作可参看书籍《wireshark数据包分析实战》。 软件版本:V 1.12.1

安装软件wireshark就不说了~ 记得安装WinPcap驱动。

打开软件,在进行抓包前先说下一些常用的选项 如图先选择所要监听的接口,在开始之前,先点击Options按钮。

image

出现如下对话框:

image

开启混杂模式:这种模式下,网卡将抓取一个网段上所有的网络通信流量,而不单单是发往它的数据包(默认开启) Display Options: 可以都勾选上,实时的将抓取到的数据包显示在面板上。 Name Resolution: 可以都去掉勾选,避免产生额外的数据包(DNS名字解析)。 捕获过滤器:常用的一般就指定主机ip地址:如host192.168.1.10;或指定要抓取设备的mac地址:如ether host 00:08:15:00:08:15,可以点击左边的按钮 CaptureFilter按钮方便选择过滤。(除非非常明确自己要抓取什么包,否则可以指定要抓取哪台设备,在抓取的包中再进行显示过滤)

进行相应的选项设置后,单击start开始抓包。

进行相应的网络操作后,暂停抓包 界面分三个面板,红色标记的是所抓包的列表;选择其中一个包后,中间绿色标记的面板会显示该包的详细信息;最下面用蓝色标记的面板则是该数据报的原始数据。 从红色面板可以简单看出一个包在列表中所对应的序号、被捕获的相对时间、原地址、目标地址、协议、包的长度和概要信息。 中间面板分层次的显示一个数据包的内容,个人自行在旁边进行了分层,可依次展开,查看每层的详细内容。 最下面的面板为原始数据,平常不大会进行分析查看。

image

开始最为重要的一部分,分析数据 首先筛选出所要分析类型的数据包,便于查找分析,在Filter:控件后面输入过滤表达式。 这个时候可以运用上面我在第二面板旁边标注的层次关系来考虑编写过滤表达式,可能好记一点。

比如你想过滤出mac地址为44:19:B6:66:93:40的数据包,则对应链路层,表达式可写:eth.addr == 44:19:B6:66:93:40 (注意这边用==)。 比如你想过滤出192.168.2.1的数据包,ip对应网络层,表达式可写:ip.addr == 192.168.2.1,如是源ip过滤,则写ip.src== 192.168.2.1。 比如你想过滤出端口8000的数据包,端口对应在传输层,这个时候再考虑是tcp协议还是udp协议,如tcp,则写tcp.port == 8000;若只想过滤源端口,则是tcp.srcport == 8000

如果有些数据包一时写不出表达式,那么可以找个类似的数据包,然后展开对应分层,进行如图操作后,会给出具体的过滤表达式:

image

常用的一些协议并不需要那么麻烦,如arp、dns、dhcp(应该输bootp)、http可以直接输入过滤。 单击选择你要分析的数据包,可以按Ctrl+M,将其标记,以黑底白字显示。 如果想查看确切发生的时间点,可以按如下所列快捷键,

image

或者将此数据包作为基准,而之后的数据包以此计算相对时间戳,可以右键单机该数据包,选择set time reference

将刷选的数据进行选择保存 如果是1.8版本之前的,则选择File->Save As 如果是1.8版本之后的,则选择File->Export Specified Packets

image

在弹出的对话框默认选择了显示过滤的包,并选择了所有。