一、Wireshark简介
Wireshark也成为协议分析软件,是免费、通用、强大的抓包软件之一。Wireshark作为一款好用的开源网络包分析器,能在多种平台(Windows、Linux、Mac)抓取和分析网络包,对网络数据包进行细致入微地分析,显示出数据包的详细内容,从而帮助技术人员分析网络级别的估值,判断这些信息是否满足用户的需求,并在优化网络性能方面有发挥重要作用。同时,使用Wireshark工具帮助学习和分析常见的网络协议。
Wireshark有图形界面,也有命令行形式Tshark。
二、获取、安装、快速开始
1、官方网站:可获取Windows-32bit、Windows-64bit、Mac OS、Linux OS上的Installer包、Source Code、User's Guide。学习版本Wireshark-32bit-V3.0.0。
Get and Install: https://www.wireshark.org/download.html
Wireshark User's Guide: https://www.wireshark.org/docs/wsug_html_chunked
Wiki site for Wireshak Network Protocol analyzer: https://wiki.wireshark.org/ 有些过滤示例
2、Windows平台上直接运行exe,根据向导安装完毕,过程中自动安装Npcap。
Npcap取代WinPcap,能支持Windows平台的回环(Loopback)数据包采集、回环(Loopback)数据包发送。
3、运行安装好的Wireshark,认识主界面,从上到下分为:标题栏、菜单栏、工具栏(开始捕获、停止捕获、重新捕获、捕获接口选项、保存捕获文件,导出/打开/加载捕获文件、放大/缩小/还原分组显示等)、(显示)过滤器栏、数据包列表区、数据包解析细节区、数据包字节区(显示十六进制字节和对应ASCII码)、状态栏(显示抓包总数)。
区分: CaptureFilters:捕获过滤器,菜单栏-->捕获-->捕获过滤器...
DisplayFilters:显示过滤器,主界面中的过滤器栏,https://www.wireshark.org/docs/wsug_html_chunked/ChUseFilterToolbarSection.html
4、有疑问随时查找 菜单栏-->帮助
5、Tshark命令有多个可选项,无选项时作用类同Linux中的 tcpdump命令
6、查看数据包列表区的色彩标识:菜单栏-->视图-->着色规则
7、查看Wireshark捕获过滤器支持的协议列表,过滤器表达式使用的部分memership:菜单栏-->视图-->内部-->support protocal。
8、主界面中数据包列表区选中一条数据包-->右键菜单-->跟踪流-->xx流,将显示在服务器和目标端之间的全部会话,关闭窗口之后,会发现过滤条件自动被引用了——Wireshark显示构成会话的报文。
9、Wireshark能抓到的包及抓包环境:1、穿越网络以装有Wireshark的这台设备作为最终目的地的数据包;2、装有Npcap捕获软件,可抓取Windows平台本机的回环数据包;3、计算机装有Wireshark并启动杂合模式,交换机支持配置端口镜像技术(或管理员通过插拔设备方式),使装有协议分析软件的计算机和目标PC处于同一个广播域中,能抓取所有去往这台目标PC以及所有从这台目标PC发出来的数据包。
Wireshark默认启动promiscuous(杂合)模式,这样才能抓到并不是以这台设备作为最终目的地的数据包。否则,需在“Wireshark·捕获接口”窗口中勾选“在所有接口上使用混杂模式”。
10、保存捕获文件的操作:菜单文件-->另存为... ,Wireshark默认保存.pcapng格式。
11、Wireshark抓包实质捕获的是数据链路层的帧。
三、创建过滤器表达式
1、认识过滤器栏、过滤器表达式语法、过滤器对话窗
3.16. The “Filter” Toolbar: https://www.wireshark.org/docs/wsug_html_chunked/ChUseFilterToolbarSection.html
6.4. Building Display Filter Expressions https://www.wireshark.org/docs/wsug_html_chunked/ChWorkBuildDisplayFilterSection.html
过滤表达式语法可使用:协议类型、值比较操作符(==,!=,<,>,contains,matches,&等等)、多个过滤表达式联合使用逻辑运算名称、成员运算符(.)、片运算符([:])、函数
6.5. The “Filter Expression” Dialog Box https://www.wireshark.org/docs/wsug_html_chunked/ChWorkFilterAddExpressionSection.html 见下图显示的“Wireshark·显示过滤器表达式”窗口。
2、创建过滤器表达式
方法一:在过滤栏直接输入 符合伯克利数据包过滤语法(BPF语法)的过滤器表达式
BPF语法是一种行业标准,很多协议分析软件都可以使用,因此不同协议分析软件的过滤器配置可以相互迁移。
方法二:使用 过滤器栏 -->表达式...-->显示过滤器表达式 对话窗口来生成
3、常见的错误:意图过滤掉某个ip,过滤表达式 !(ip.addr == 1.2.3.4) ,不是 ip !=1.2.3.4.