网络分析程序(Network Packet Analyzer)可以帮助网络管理员捕获网络中传输的数据包 和分析数据包信息。比较常用的网络分析工具有 Wireshark、Microsoft Network Monitor、Capsa Packet Sniffer、NetworkMiner 等。网络分析工具的用途广泛,网络管理员使用它来检测网络问 题, 网络安全工程师使用它来检查信息安全的相关问题, 开发者可以使用它来为新的通信协议 除错,普通使用者可以使用它来学习网络协议的相关知识。当然,也会有少数“居心叵测”的 人用它来寻找一些敏感信息。
网络包分析工具 Wireshark,其前身是 Ethereal,是目前最流行的开源网络分析工具之一,
它具有的主要功能和特性如下:
l 支持 UNIX 和 Windows 平台。
l 在网络接口实时捕捉包。
l 能显示包的详细协议信息。
l 可以打开/保存捕捉的包。
l 可以导入/导出其他捕捉程序支持的包数据格式。
l 可以通过多种方式过滤包。
l 可以通过种方式查找包。
l 通过过滤以多种色彩显示包。
l 创建多种统计分析。
下面简单介绍如何安装和使用网络分析工具 Wireshark。
2.6.1 Wireshark 的安装 1.下载
可 以 从 Wireshark 官 方 网站 下载 最新 版 本的 软件, 网 址为 http://www.wireshark.org/
download.html。Wireshark 通常在 4~8 周内发布一次新版本,目前的最新版本为 1.8.4。还可 以订阅 Wiresharkannounce 邮件列表获得 Wireshark 发布的消息。
2.安装环境
Wireshark 可以运行在 Windows 和 UNIX 的多个系统平台上, 其中 Windows 操作系统包括 Windows 2000/XP/2003/Vista 等;UNIX/Linux 操作系统平台包括 Apple Mac OSX、Debian GNU/Linux、FreeBSD、Solaris、OpenPKG 等。Wireshark 的最低运行环境要求为:
l 任何 32 位 x86 或 64 位 AMD64(x8664)处理器;
l 128MB 可用系统内存;
l 75MB 可用磁盘空间(如果想保存捕捉文件,需要更多空间);
l 800×600(建议 1280×1024 或更高)分辨率,最少 65536(16bit)色。
支持的网卡包括:以太网、无线局域网网卡。由于 Wireshark 底层使用 Libpcap/Winpcap,
因此与它们具有相同的局限性,对于 Wireshark 在不同平台上能捕获哪些接口上的数据,这里 不再详细介绍,参见http://wiki.wireshark.org/CaptureSetup/NetworkMedia。
3.在 Windows 下安装 Wireshark
本节将探讨在 Windows 下安装 Wireshark 二进制包。
下载的 Wireshark 二进制安装包的名称类似 Wiresharksetupx.y.z.exe,如 Wireshark
win321.8.4.exe。Wireshark 安装包已经包含 Winpcap,所以不需要单独下载安装它,只需要下 载 Wireshark 安装包并执行它即可。在安装的过程中,如果不了解设置的作用,尽量保持默认 的设置。安装中还可以选择想要的组件,如图 229 所示。
图 229 选择组件 这些组件包括:
(1)Wireshark:Wireshark GTK 是一个基于图形用户界面的协议分析器。
(2)TShark:一个基于命令行的网络分析工具。
(3)插件/扩展(Wireshark,TShark 分析引擎):
l Dissector Plugins:分析插件,带有扩展分析的插件。
l Tree Statistics Plugins:树状统计插件,统计工具扩展。
l Mate Meta Analysis and Tracing Engine(experimental):可配置的显示过滤引擎,参 考http://wiki.wireshark.org/Mate。
l SNMP MIBs:SNMP、MIBS 的详细分析。
(4)Tools/工具(处理捕捉文件的附加命令行工具):
l Editcap:用来读一个捕获文件并把其中的部分或全部包写入另一个文件的程序。
l Text2Pcap:用来将 ASCII 形式的十六进制转存成 libpcap 格式的捕获文件。
l Mergecap:用于将多个捕获文件合并成一个单独的输出文件的程序。
l Capinfos:提供捕获文件的信息。
l Rawshark:是一个原始包过滤器。
(5)User’s Guide(用户手册) :本地安装的用户手册。如果不安装用户手册,单击“帮 助”菜单的大部分按钮的结果可能是访问 Internet。
2.6.2 Wireshark 主窗口 1.启动 Wireshark
Wireshark 软件安装成功后, 可以通过 “开始” 菜单启动 Wireshark 程序。 在主界面或 Capture 菜单项中可以选择要捕获的网络接口并启动捕获过程,主窗口界面如图 230 所示。
图 230 Wireshark 主窗口 2.主窗口界面及功能
和大多数图形界面程序一样,Wireshark 主窗口由如下部分组成:
l 菜单:用于开始各种功能。
l 主工具栏:提供快速访问菜单中经常用到的项目的功能。
l 过滤工具栏:提供处理当前显示内容所使用的过滤方法。
数据包 列表栏
数据包 细节栏
数据包 字节栏
l 数据包列表栏:如图 230 中数据包列表栏中显示打开文件或当前捕获的每个包的摘 要。单击其中的一条项目,该数据包的详细情况将显示在另外两栏(数据包细节栏及 数据包字节栏)中。
l 数据包细节栏:显示在数据包列表栏中选中的数据包的更多详情。
l 数据包字节栏: 显示在数据包列表栏中被选中的数据包的数据, 并且当在数据包细节 栏中选择某一字段的内容时,会在此栏中高亮显示对应的字节的内容。
其他菜单项的功能不再一一描述,仅介绍最常用的菜单项 Capture、Analyze,它们包括 的子菜单项分别如图 231、图 232 所示。其中几个常用子菜单项的功能描述如表 23、表 24 所示。
图 231 Capture 子菜单项 图 232 Analyze 子菜单项
表 23 Capture 子菜单项及功能说明
菜单项 说明
Interfaces... 在弹出的对话框中选择要进行捕捉的网络接口 Options... 打开设置捕捉选项的对话框
Start 立即开始捕捉,默认参照最后一次设置
Stop 停止正在进行的捕捉
Restart 正在进行捕捉时停止捕捉,并按同样的设置重新开始捕捉,仅在认为有必要时使用 Capture Filters... 打开对话框,编辑捕捉过滤设置,可以命名过滤器,保存为其他捕捉时使用
表 24 Analyze 主要子菜单项及功能说明
菜单项 说明
Display Filters... 打开过滤器对话框编辑过滤设置,可以命名过滤设置,保存为其他场合使用 Apply as Filter 更改当前过滤显示并立即应用。根据选择的项,当前显示字段会被替换成在 Detail
面板选择的协议字段
Prepare a Filter 更改当前过滤显示,但不会立即应用。同样根据当前选择项,过滤字符会被替换成 在 Detail 面板选择的协议字段
Enabled Protocols... 是否允许协议分析
2.6.3 数据包捕获 1.选择接口
在 Capture 菜单中选择子菜单项 Interfaces…,打开 Capture Interfaces(捕获接口)对话框,
如图 233 所示。选择相应的端口,按 Start 按钮开始捕获数据包。若选择 Options 按钮,则可 弹出 Capture Options(捕捉选项)对话框,如图 234 所示,可以对一些捕捉选项进行设置。
图 233 Capture Interfaces 对话框
图 234 Capture Options 对话框
首先, 在图 234 中双击 Capture 栏中的某个接口, 弹出图 235 所示的 Edit Interface Settings
(接口设置)对话框,显示以下内容,可对其中一些选项进行设置:
l Interface:该字段显示用于进行捕捉的接口。
l IP address:显示接口的 IP 地址。如果系统未指定 IP 地址,将会显示为 unknown。
l Linklayer header type:链路层包头类型,除非有些特殊应用,尽量保持默认选项。
l Buffer size:输入用于捕捉的缓冲区的大小。该选项用于设置写入数据到磁盘前保留 在核心缓存中捕捉数据的大小,如果发现丢包,尝试增大该值。
l Capture packets in promiscuous mode: 指定 Wireshark 捕捉包时, 设置接口为混杂模式。
如果未指定该选项,Wireshark 将只能捕捉进出计算机的数据包(不能捕捉整个局域 网段的包)。
l Limit each packet to n bytes:指定捕捉过程中,每个包的最大字节数。如果禁止该选 项,默认值为 65535,这个长度适用于大多数协议。
l Capture Filter:指定捕捉过滤器,默认情况下是空的。
图 235 Edit Interface Settings 对话框
在图 234 中,还可以对 Capture File(s)、Stop Capture、Display Options、Name Resolution 等选项进行设置,如:
l File:指定将用于捕捉的文件名。该字段默认是空白。如果保持空白,捕捉数据将会 存储在临时文件夹。可以单击文本框右侧的按钮打开浏览窗口,设置文件存储位置。
l Use multiple files:如果指定条件达到临界值,Wireshark 将会自动生成一个新文件,
而不是使用单独文件。如 Next file every n megabyte(s)是指如果捕捉文件容量达到指 定值,将会切换到新文件。
其他的关于 Stop Capture、 Display Options、 Name Resolustion 的各选项本文不再详细介绍,
具体内容参考软件的使用手册。
2.过滤器定义
Wireshark 基于 Winpcap 过滤器对捕获数据进行过滤。过滤器是一个包含过滤表达式的 ASCII 字符串,如果没有给定的过滤表达式,过滤引擎将会接收所有的数据包;否则,只有带 入表达式之后其值为 true 的包才会被接收。过滤表达式可以包括关系运算和标准二进制操作,
如“ether[0] &1!= 0”表示捕获所有的多播流量。更复杂的过滤表达式还可以综合运用逻辑运 算符 and(&&)、or(||)和 not(!) 。如使用过滤器“ip.dst == 122.97.252.78 && http” ,将过 滤目的 ip 地址 122.97.252.78 的 http 数据包,如图 236 所示。
3.数据包捕获解析
图 236 所示是对捕获的报文进行解码的显示界面,目前大部分网络分析工具都采用这种 三层的显示结构。要求解码分析人员对协议比较熟悉,这样才能看懂解析出来的报文,如图 237 和图 238 所示分别是对 IP 协议、TCP 协议的 HTTP 协议的解码分析。关于协议方面的细 节,这里不再详细讨论,请参阅有关协议方面的资料来理解这些解码的含义。
图 236 捕获符合条件的数据包
图 237 对 IP 协议的解码分析
图 238 对 TCP 和 HTTP 协议的解码分析
习题 2
一、思考题
1.说明 OSI 安全体系结构中,定义了哪些安全服务和安全机制。
2.说明 TCP/IP 的网络层安全和应用层安全是如何实现的。
3.分析 TCP 和 UDP 协议的异同。
4.分析 ping 命令可能造成的安全威胁。
5.根据 ICMP 协议的定义来分析 ICMP 攻击的机制。
6.net 命令可以实现哪些网络管理功能?
7.tracert 命令实现路径跟踪的原理是什么?
8.通过 netstat 命令可以了解什么信息?
9.使用命令 ping www.sohu.com l 6000,返回的信息为 Reply from 199.188.36.12: bytes=6000 time=127ms TTL=128,请解释命令及返回信息中每个方框中部分表示的含义。
二、实践题
1.如何使用 net 来添加用户?如何把添加的用户提升到管理员组?如何显示共享和关闭共享?
2.使用 Sniffer 进行数据包的捕获及数据包结构的分析,理解协议对数据的封装。
3.如何登录 ftp 服务器并下载文件?
4.利用 tracert 命令跟踪到达www.amazon.com的路由。
5.查阅相关资料,研究 IPC$共享的用途及可能存在的威胁,并讨论如何降低 IPC$共享带来的风险。