2023年7月23日发(作者:)
实验二 网络抓包及协议分析实验
(网络协议分析工具Ethereal,Sniffer,Tcpdump等)
目的及意义:利用网络协议分析工具截获网络中传送的数据包,通过观察分析,从而了解和认识(理解)协议的运行机制。
Ethereal较为流行的一种计算机网络调试和数据分组捕捉软件,开放源代码,支持Linux和Windows平台。最初由Gerald Combs开发,随后由一个Ethereal团队进行维护和开发,如今可以支持五百多种协议的网络协议分析器,它提供了强大的协议分析功能,可以与商业的网络分析系统相媲美。主要用于网络的故障分析和修复、软件和协议开发,以及教学领域。
技术方面:网络协议分析系统基于一套捕捉网络数据分组的函数库。该套数据库工作在网络分析系统模块的最底层,其作用是从网卡上取得数据分组或者根据过滤规则取出数据分组的子集,再转交给上层分析模块。Ethereal在linux下采用libpcap函数库捕捉数据分组,在Windiows下采用Winpcap函数库捕捉数据分组。
(小知识:1992年Berkeley实验室的Steven McCanne和Van Jacobson提出在Linux下分组过滤规则的一种实现:BPF。Libpcap正是基于BPF的开放源码的捕捉数据分组的函数库,现有的大部分Linux捕捉数据分组系统都是基于这套函数库的,或者在其上面做了些改进。意大利人Fulvio Risso和Loris Degioanni提出并实现了Windows下的函数库Wipcap,称之为NPF(Netgroup Packet Filter))
下载与安装:在Windows下安装Ethereal,然后执行安装。Ethereal 在0.10.12版本后都内置了Winpcap,如没内置的Winpcap,可先安装Winpcap。
一.实验目的:
1.了解抓包与协议分析软件的简单使用方法。 2.了解并验证网络上数据包的基本结构。
二.实验环境
1.硬件:PC、配备网卡,局域网环境。
2.软件:Windows 2000或者XP操作系统、winpcap、analyzer。
三.实验内容
利用Ethereal软件抓取网络上的数据包,并作相应分析。
四.实验范例
(1) 安装
Etheral的安装非常简单,只要按照提示安装即可。
(2) 运行
双击桌面的Ethereal,显示“The Ethereal Network Analyzer”的主界面,菜单的功能是:
(3) 设置规则
这里有两种方式可以设置规则:
使用interface
1) 选择Capture—>interfaces,将显示该主机的所有网络接口和所有流经的数据包,单击“Capture”按钮,及执行捕获。
2) 如果要修改捕获过程中的参数,可以单击该接口对应的“Prepare”按钮。在捕获选项对话框中,可以进一步设置捕获条件:
Interface——确定所选择的网络接口
Limit each packet to N bytes——指定所捕获包的字节数。
选择该项是为了节省空间,只捕获包头,在包头中已经拥有要分析的信息。
Capture packet in promiscuous mode——设置成混杂模式。
在该模式下,可以记录所有的分组,包括目的地址非本机的分组。
Capture Filter——指定过滤规则
有关过滤规则请查阅以下使用Filter方式中的内容。
Capture files——指定捕获结果存放位置
Update list of packets in real time——实时更新分组
每个新分组会随时在显示结果中出现,但在重网络流量时会出现丢包现象。
Stop Capture limits——设置停止跟踪的时间
如捕获到一定数量的分组(…after N packets)、跟踪记录达到一定的大小(…after N megabytes)或在一个特定的时间后(…after N minutes)。
Name resolution——设置名字解析
如启用MAC地址转换(Enable MAC name resolution),可以将地址转换成厂商、网络地址转换(Enable network
name resolution),可以将地址转换成主机名、传输名字转换(Enable transport name resolution),可以将端口号翻译成协议,但在重网络流量时会出现丢包现象。 3) 设定完毕后,单击“OK”按钮将按照新设定的条件执行捕获。
使用filter
1) 选择Capture—>Capture Filter,显示过滤器对话框,该过滤器可以过滤掉不感兴趣的数据包,使捕获的结果减少。
2) 单击“New”按钮,在Filter Name和Filter Sting中填入过滤器名称和过滤规则,最后单击“Save”按钮保存过滤规则。
(4) 捕获数据包
选择Capture—>Start,将按照事先设定的过滤规则进行捕获。捕获结束时,单击“Stop”按钮。没有设定过滤条件时,表示捕获流经本机的所有数据包。
(5) 产生一个满足捕获条件的动作
如要捕获本机HTTP协议的数据包,可以在本机打开浏览器后访问一个网站。
(6) 分析结果
捕获结束后,捕获结果将按时间顺序显示在跟踪列表框(第一个窗口)中,包括序号、发送时间、源地址、目的地址、协议等信息,其中源地址和目的地址是物理地址。单击表头中的标题,可以重新按照该标题排序。
1) 在跟踪列表框中,单击指定数据分组时,在协议框(第二个窗口)中将显示分组的各层协议:物理层帧、以太网帧及其首部、IP数据包及其首部、UDP数据包及其首部信息等。
2) 在协议框中,单击指定协议或者协议的组成部分时,在原始分组框(第三个窗口)中将突显该协议或组成部分中所含数据的每个字节,窗口的左边显示的是十六进制数据,右边显示的是ASCII码。
3) 选择Analyze——>Follow TCP Stream,可以查看控制通道传输的所有内容。
(7) 统计分组
1) 选择Statistic——>Summary,可以查看跟踪记录的概要,显示的结果包括通信的总字节数、通信的频率、分组的平均大小等。
2) 选择Statistic——>Protocol Hierarchy,可以按照协议层次统计,显示结果包括指定协议分组的数据包数(Packets)、字节数(Bytes)、指定协议是最后一个协议(嵌套最深)的数据包数(End Packets)和字节数(End
Bytes)。
3) 选择Statistic——>Converstion,指定协议类型后,可以观察指定协议的连接过程。
(8) 改变显示结果
1) 选择View——>Coloring Rules Dialog,显示颜色过滤器,可以改变跟踪列表框中指定分组的颜色。
2) 在Coloring Rules对话框中,单击“New”按钮,完成显示规则的名称、颜色过滤器的表达式以及前景色(Foreground Color)和背景色(Background Color)设置后,单击“OK”按钮,则跟踪列表中分组将以新的颜色过滤规则显示。
如果对描述颜色过滤器表达式的语法不熟悉,可以单击“+Expression”按钮,利用帮助菜单中协议的组成元素创建一个表达式。
3) 在Ethereal的主窗口的Filter文本框中,输入显示过滤器的规则后,单击“Apply”按钮,将按新规则显示结果。
显示过滤器与颜色过滤器对规则描述的语法是相同的,如果对描述显示过滤器表达式的语法不熟悉,可以单击“+Expression”按钮,利用帮助菜单中协议的组成元素创建一个表达式。也可以选择Analyze——>Display
Filter完成显示过滤器规则的编辑。
(9) 搜索分组
1) 选择Edit——>Find Packet,通过设置显示过滤器的规则可以快速定位到指定分组。
2) 选择Edit——>Find Next,可以按照已设定的显示过滤器规则定位到后一个满足条件的分组。
3) 选择Edit——>Find Previous,可以按照已设定的显示过滤器规则定位到前一个满足条件的分组。
Filter string 语法输入的格式
[src|dst] host
ether [src|dst] host
gateway host
[src|dst] net
[tcp|udp] [src|dst] port
less|greater
ip|ether proto
ether|ip broadcast|multicast
描述 允许设定主机IP或名称过滤器。可以使用前缀操作符 src 或 dst 指定此主机为源地址还是目的地址。如果没有指定前缀操作符,则抓取与此主机相关的所有数据包。 允许设置以太网主机地址(MAC地址)过滤器。可以在ether 和host之间随意包含src|dst前缀操作符,指定此主机为源地址还是目的地址。如果没有指定前缀操作符,则抓取与此主机相关的所有数据包。 设定以此主机为网关的数据包过滤器。即那些以太网源或目的地址为此主机以太网地址(MAC地址),而IP地址却不是此主机IP地址的数据包都被取。 设置希望抓取数据的网络数。可是使用前缀操作符 src或dst指定你希望抓取的是源网络或是目标网络。如果不加前缀操作符,则抓取于此网络相关的所有数据。如果与您主机的掩码或CIDR不同,可以通过mask 掩码和len CIDR设置。 设置tcp或udp过滤端口号。可以使用前缀tcp或udp 和 src或dst设置你要过滤的是tcp还是udp,是源端口还是目的端口。Tcp|udp必须在src|dst前面。 设置过滤数据包长度。被抓取得数据包长度小于等于或大于等于设定的长度。 元素介绍:表格 1 Primitive [src|dst] host Ether [src|dst] host Gateway host [src|dst] net [{mask [tcp|udp] [src|dst] port Less|greater Ether|ip broadcast|multicast 设定ip或以太网层成滤协议。 设定过滤以太网或IP层的广播或多播 设置一个复合过滤表达式,去选择数据包中的字节或字节范围 实验语法示例: 1)捕获 MAC地址为 00:d0:f8:00:00:03 网络设备通信的所有报文 ether host 00:d0:f8:00:00:03 2) 捕获 IP地址为 192.168.10.1 网络设备通信的所有报文 host 192.168.10.1 3) 捕获网络web浏览的所有报文 tcp port 80 4) 捕获192.168.10.1除了http外的所有通信数据报文 host 192.168.10.1 and not tcp port 80 ARP实验 ARP协议分析: ➢ ARP协议是“Address Resolution Protocol” 的缩写。在局域网中,网络中实际传输的是帧,帧里面是有目标主机的MAC地址的。 ➢ 在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。 ➢ 所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 ➢ ARP缓存 • 在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址一一对应 。 • 查看arp缓存:arp -a • 清除arp缓存:arp -d 试验过程 定义过滤器 清除arp缓存(arp -d) 开始抓包 利用ping命令,迫使主机发出arp请求。 停止抓包,进行数据分析。 IP协议分析 ➢ IP是TCP/IP协议集的核心之一,它提供了无连接的数据包传输和互联网的路由服务。IP的基本任务是通过互联网传输数据包,每个IP数据包是独立传输的。 ➢ 主机上的IP层基于数据链路层向传输层提供传输服务,IP从源传输层实体获得数据,再通过物理网络传送到目的机器的IP层。(下图为IP协议格式:) 试验过程 定义过滤器 (无需定义过滤器,见下图) 开始抓包 停止抓包,数据分析 实验报告 (1) 设计一个捕获HTTP实现的完整过程,并对捕获的结果进行分析和统计。 (2) 设计一个捕获TCP实现的完整过程,并对捕获的结果进行分析和统计。 (3) 设计一个捕获ICMP实现的完整过程,并对捕获的结果进行分析和统计 例: 1) Tcp port 23 and host 10.0.0.5 需要抓取所有进出主机10.0.0.5的telnet(端口是23, TCP协议)协议数据包。 2) Tcp port 23 and not host 10.0.0.5 需要抓取除进出主机10.0.0.5之外的所有telnet协议数据包。 Netstat -an
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690105189a306229.html
评论列表(0条)