Wireshark(原名Ethereal)是目前世界上最受欢迎的协议分析软件,利用它可将捕获到的各种各样协议的网络二进制数据流翻译为人们容易读懂和理解的文字和图表等形式,极大地方便了对网络活动的监测分析和教学实验。它有十分丰富和强大的统计分析功能,可在Windows,Linux 和UNIX等系统上运行。此软件于1998年由美国Gerald Combs首创研发,原名Ethereal,至今世界各国已有100多位网络专家和软件人员正在共同参与此软件的升级完善和维护。它的名称于2006年5月由原Ethereal改为Wireshark。至今它的更新升级速度大约每2~3个月推出一个新的版本,2007年9月时的版本号为0.99.6。但是升级后软件的主要功能和使用方法保持不变。它是一个开源代码的免费软件,任何人都可自由下载,也可参与共同开发。
1 安装
实验中提供两种安装软件“Wireshark 1.7.0 Development Release (32-bit).exe”和“wireshark-win32-1.4.9中文版.exe”。两者区别由名字已经可以看出,前者是英文版,后者是汉化后的中文版。
Wireshark软件安装包中,目前包含的网络数据采集软件是winpcap 4.0版本,保存捕获数据时可以用中文的文件名,文件名默认后缀为.pcap。winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。
2 界面功能
在此为了方便即时上手操作,以中文版界面进行讲解,英文版操作类同,可以自行使用。
安装后,双击桌面“Wireshark”图标,打开操作界面如图1所示。
图1 操作界面
以捕获数据包后的界面为例,将整个操作环境分为7个区域,如图2所示。
图2 捕获数据包后的界面
(1)菜单
其中常用【文件】打开或保存捕获的信息,【编辑】查找或标记包,【视图】设置Wireshark的视图,【定位】跳转到捕获的数据包,【抓包】设置捕捉过滤器并开始捕捉,【分析】设置分析选项,【统计】查看Wireshark的统计信息,【帮助】查看本地或者在线支持。
(2)快捷菜单
将鼠标移至到每个按钮上,可以获得按钮的功能提示信息。其中常用列出可以抓包的接口,显示抓包参数,开始抓包,停止抓包,重新开始抓包。
(3)过滤器
过滤器主要用于查找捕捉记录中的内容。从已经捕捉的数据包中,按照某种要求查找需要的数据包进行分析。比如,希望查找IP地址为192.168.0.1的IP数据报信息,可以在过滤器的文本框中输入表达式“ip.addr==192.168.0.1”,单击【应用】或回车进行筛选,则凡是目的地址、源地址为192.168.0.1的IP数据报均被筛选出来。
表达式可以自己写,也可以通过【表达式】按钮弹出界面帮助完成。【清除】用来清空过滤器文本框内容。
(4)数据包列表
数据包列表显示所有已经捕获的数据包的基本信息,默认的包括捕获编号、时间、源地址、目的地址、协议、报文信息等。列信息可以根据分析需要自己添加。鼠标移至列信息空白处,单击右键,在快捷菜单中选择【列首选项设置】,在弹出的窗口中可以进行列的添加、删除和修改等操作。
(5)数据包详细信息
显示被选中的数据包中的详细信息。信息按照网络体系结构中的不同层次进行了分组。可以展开每个项目进行展开查看。例如,图中红色部分即是IP数据报的首部信息。展开可以显示IP数据报首部中的每个字段信息。
(6)解析器窗口
“解析器”也可以称作“16进制数据查看面板”,以16进制的形式展示一个数据包。这里的内容和“数据包详细信息”中的内容相同,并且单击各首部、字段时,两个窗口的内容对应反白显示。
(7)状态信息
在操作窗口的最下端,可以显示当前Wireshark的状态,以及一些信息统计。
3 捕获数据包
捕捉数据包之前可以通过设置参数,选择希望捕捉的网络数据。
简单操作方法:单击快捷菜单中的按钮,弹出当前计算机上所有的网络接口列表,选择准备捕捉数据包的网络接口,单击【开始】按钮或者按钮,开始抓捕数据包。此时,“数据包列表”窗口中会不断变化,显示当前抓捕的数据包。单击按钮,停止抓捕。选择列表中的一个数据包进行分析。根据不同的分析需求,可以在过滤器中通过不同的表达式来对已经捕获的数据包进行筛选,然后再选择适当报文进行分析。
注意,这里谈到了两种过滤:捕捉过滤、显示过滤。两者的区别在于捕捉过滤是在捕捉数据包之前,先设置过滤原则,然后再捕捉符合原则的数据包;而显示过滤是在已经捕捉的数据包中进行选择性的显示。
4 分析MAC帧结构
MAC帧结构是符合Ethernet V2标准的帧结构。
MAC帧结构中主要包含硬件地址,因此首先对“数据包列表”窗口的列信息进行添加。鼠标移至列信息空白处,单击右键,在弹出的快捷菜单中选择【列首选项设置】,弹出【列信息配置窗口】,单击【添加】按钮,添加两列,调整到适当位置。分别修改“标题”为“源MAC”和“目的MAC”,“字段类型”为“Hw src addr”和“Hw dest addr”。如图3所示。
图3 列信息配置窗口
图4所示为一次抓捕的“数据包列表”界面。
图4 数据包列表界面
在图4中,鼠标单击某个数据包反蓝显示。与此同时,在“数据包详细信息”窗口、 “解析器窗口”中会分别显示这个数据包的所有信息以及16进制数据信息,如图5所示。
图5 显示选中数据包信息
在“详细信息”窗口内的“Ethernet II”项目,即是MAC帧的首部信息。双击改项展开,可见MAC帧首部的详细分析,对应“解析器”窗口中的16进制数据会反蓝显示。单击某个字段,对应的首部字段均会反蓝显示,如图6所示。
图6 单击首部字段显示