您的位置  > 互联网

数据包抓取与分析目录(2015年4月14日)

目录

1 实验目的

学习安装和使用协议分析软件,掌握基本的数据报捕获、过滤和协议分析技能,并能够对捕获的数据包进行分析。

2.实验内容

安装和使用协议分析软件,学习如何捕获数据包并分析捕获的数据包。

3、实验环境使用操作系统; 连接到抓包软件。4。 实验步骤和过程的使用选择接口过滤器

安装完成后打开,会看到如图1所示的界面,提示我们选择对应界面的过滤器。 这里我选择“以太网”来抓包。

图1 选择接口过滤器

界面

打开后可以看到如图2所示的界面。该界面主要分为以下几个部分:

显示过滤器:主要用于过滤数据包。 数据包列表:显示所有捕获的数据包、源地址、目的地址、端口号。不同颜色代表不同的数据包类型和状态。 数据包详细信息:显示数据包的内容和各个字段。 十六进制数据:以十六进制显示数据包的原始数据。 地址栏:显示数据包的统计信息和杂项信息。

图2 主界面图

筛选

上一节我们介绍了界面和各个功能。 接下来我们重点介绍一下过滤器的功能。 过滤器可以快速、准确地在大量数据中找到我们需要的信息。

图3 捕获滤波器

过滤器主要有两种类型,图2主界面中的显示过滤器和图3中的捕获过滤器。显示过滤器用于显示捕获的记录中所需的记录。 捕获过滤器主要用于过滤要捕获的数据包,避免捕获过多的记录。

图 4 显示过滤器

如图4所示,显示过滤器通过过滤表达式实现过滤。 具体可以通过以下规则进行过滤:

协议过滤:如果是tcp,则仅显示tcp协议。 IP过滤:ip.src==192.168.1.102显示源地址为192.168.1.102的报文,ip.dst==192.168.1.102显示目的地址为192.168.1.102的报文。 包。 端口过滤:例如tcp.port ==80,则仅显示端口80的TCP协议的数据包。 另一个例子,tcp。 == 80,只显示TCP协议源端口为80的报文。 HTTP过滤:如http..==“GET”,只显示HTTP GET方法的数据包。

此外,还可以通过逻辑运算符or、and等组合来过滤表达式,实现更复杂的过滤效果。

数据包详细信息

数据包详细信息是数据包捕获过程中最重要的。 它包括以下五个字段:

帧:数据帧概述 物理层:数据链路层以太网帧头信息 4:互联网层 IP 数据包头信息:传输层 T 的数据段头信息,这里是:应用层信息,这里是 HTTP 协议

图5 数据包详情

如图5所示,可以看到某个数据包的详细信息。 将显示数据包的长度、数据链路层信息等。

图6 数据包详情对应16进制

如图6所示,对于数据包中的每一条数据,点击对应的数据即可显示下面十六进制原始文件中对应的字节段。 接下来,我们将分别介绍每种类型的数据包。

DNS分析

域名系统(英文:Name,缩写:DNS)是互联网的一项服务。 作为一个将域名和IP地址相互映射的分布式数据库,它可以让人们更方便地访问互联网。 DNS使用UDP端口53。在 中,域名需要经过DNS解析才能获得对应的IP地址,才能访问网络资源。

首先通过DNS抓包检查域名解析情况。 打开网卡的数据包捕获。 然后对域名进行 ping 操作。 从前面的实验我们知道,ping操作首先需要解析域名,然后通过IP地址访问并得到回复。 通过ping得到域名解析后的IP如图7所示。

图7 通过ping获取解析后的IP地址

接下来打开,在过滤框中输入DNS,过滤掉DNS解析包,如图8所示。从结果来看,正好有两个DNS解析包,分别对应于解析请求的发送和回复。

图8 过滤DNS结果

首先查看DNS解析发送的数据包,如图9所示。首先,从互联网层来看,DNS解析采用ipv4协议,向223.5.5.5(阿里云公网DNS)发送DNS解析请求。 从传输层可以看到,使用的是UDP协议(User),端口为53端口。接下来是DNS协议的详细信息:第一个是ID标识字段,长度为2个字节,用于标识DNS响应消息是对哪个请求消息的响应。 第二个是Flags字段,它有2个字节长。 通过分析不同的信息可以获得详细的数据:

:查询/响应,1为响应,0为查询。 :查询或响应类型,其中0表示标准,1表示反向,2表示服务器状态请求。 :截断,1表示超过512字节,已经被截断,0表示没有发生截断。 TC:截断,1表示超过512字节,已经被截断,0表示没有发生截断。 零:所有 0 保留字段。 :是否想得到递归答案。

分析以上信息可知,该数据包是一个标准的DNS请求,没有被截断,希望得到递归的答案。

接下来是请求部分。 字段是查询或响应的主体部分,分为Name、Type和Class。 name为需要请求的域名,可变长度以0结尾; type为查询类型,这里是主机A记录; 最后一个类中,IN 代表数据。

图9 发送DNS请求报文

接下来分析回复部分的DNS数据包,如图10所示。可以看出,ID仍然是发送时的标记,用于表明这是对当时请求的回复的标记; 从0到1的变化意味着这是回复的DNS; new为1,表示服务器可以使用递归查询; 回复码全为 0 数据表示没有发生错误。 与请求相比,回复多了一项。 由于ping操作只请求一个域名,因此其中只有一张表名,域名也只有一种解析。 查看解析的域名时,可​​以看到域名的名称为Name,Type为A,表示是IPv4地址,Class为In,表示是互联网数据,Time to Live (TTL)表示资源记录的生命周期。 ,从取出记录到擦除记录缓存的时间为9分26秒。 Data(资源数据长度)以字节为单位。 这里的4表示IP地址的长度为4个字节,也就是解析出的IP的长度。 Addr(资源数据):返回的IP地址210.39.4.1就是我们想要的结果。 IP与ping命令行中的信息一致。

图10 DNS回复

开启网卡抓包,然后使用ping命令测试域名的连通性(相关操作略)。

打开它,在过滤框中输入DNS,过滤掉DNS请求数据包,得到如图11所示的两个数据包,分别代表DNS请求和回复。

图11 过滤后的DNS相关数据包

首先打开请求的数据包,如图12所示。从结果中我们可以看到协议使用UDP,端口为53; 请求发送至223.5.5.5(阿里云公网DNS); 数据包的ID是。 从Flags字段可以断定这是一个请求的数据包。 该请求是标准查询,未截断,并且请求递归查询。 然后从字段中获取请求域名的解析只有一种,类型是ipv4,是网络数据类型。

图12 DNS解析请求报文

接下来分析得到的响应,如图13所示,可以看到ID仍然是发送时的标记,用于表明这是当时对请求的回复的标记; 从0到1的变化意味着这是回复的DNS; new为1,表示服务器可以使用递归查询; 回复码全为 0 数据表示没有发生错误。

查看正在解析的域名,我们可以看到首先返回了一个 CNME 类型的项目。 CAME 是一个标准化名称,很快就会标准化。 然后,再次解析它并获取第二项,也是 CNME。 该项目再次标准化名称,将标准化为。 此时再次进行域名解析,得到第三个项目。 此时最终返回的是A的Ipv4地址,Class为In,说明这是互联网数据。 生存时间(TTL)表示资源记录的生命周期,从记录被取出到记录缓存被擦除的时间。 这里是 21 秒。 Data(资源数据长度)以字节为单位。 这里的4表示IP地址的长度为4个字节,也就是解析出的IP的长度。 Addr(资源数据):返回的IP地址106.11.35.97。

图13 DNS解析回复报文

打开网卡抓包,然后使用ping命令测试域名的连通性,如图14所示。

图14 ping操作

打开它,在过滤框中输入DNS,过滤掉DNS请求数据包,得到如图15所示的两个数据包,分别代表DNS请求和回复。

图15 DNS报文过滤

首先打开请求的数据包,如图16所示。从结果中我们可以看到协议使用UDP,端口为53; 请求发送至223.5.5.5(阿里云公网DNS); 数据包的ID是。 从Flags字段可以断定这是一个请求的数据包。 该请求是标准查询,未截断,并且请求递归查询。 然后从字段中获取请求域名的解析只有一种,类型是ipv4,是网络数据类型。

图16 DNS解析请求报文

接下来分析得到的响应,如图17所示。可以看出,ID仍然是发送时的标记,用于表明这是当时对请求的回复的标记; 从0到1的变化意味着这是回复的DNS; new为1,表示服务器可以使用递归查询; 回复码全为 0 数据表示没有发生错误。

图17 DNS解析回复报文1

查看正在解析的域名(图 18),我们可以看到首先返回一个 CNME 类型的项目。 CAME 是一个标准化名称,很快就会标准化。 然后,再次解析它并获取第二项,也是 CNME。 该项目再次标准化名称,将标准化为。 此时再次进行域名解析,得到剩余13个项目。 此时返回的都是A类型的IPv4地址,Class为In,表明这是互联网数据。 可以发现,ping命令只对第一个ipv4地址进行操作。 DNS将一个域名解析为多个IP,这样一旦其中一个IP出现故障,可以快速访问其他IP进行连接,从而增加了服务的可靠性。

图18 解析后的域名