2021-08-21 网安实验-Wireshark数据抓包分析之DNS协议

Posted 愚公搬代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-08-21 网安实验-Wireshark数据抓包分析之DNS协议相关的知识,希望对你有一定的参考价值。

实验步骤一

根据实验环境,本实验的步骤如下:

1、测试环境中获取DNS数据包。

2、分析DNS数据包。

任务描述:获取两种类型的DNS数据包

(1)通过浏览器访问域名(www.baidu.com)来获取DNS数据

虽然合天实验室环境下,无法抓取此部分数据包(其实也可以自己搭建服务器,配置DNS服务器,但设计者比较懒,就将就下吧),但设计者希望学习的人能根据例子在自己的笔记本上抓取,然后分析。

我们以登录www.baidu.com来获取DNS数据,启动Wireshark,在Filter中输入dns。打开浏览器,访问www.baidu.com,截图如下:
此抓包文件,设计者会沟通合天,放在实验机中,方便学生学习和对比下面的方法的不同。注意分析时请求和响应的帧号,比如帧号1284和帧号1338是一个完整的数据包。

(2)通过ping未知域名(www.hetianlabdns.com)来获取DNS数据

与上面常用的方法相比,下面的方法比较另类,并且响应的数据中,缺少域名对应的IP(因为我们ping的域名,就没有对应的ip,哈哈哈哈哈)。

启动Wireshark,过滤条件选择dns。打开命令行窗口,ping上面的域名,截图如下:
因为这个域名,是设计师虚构出来的,没有对应的IP,所以ping命令返回了提示。但这不影响我们获取到了DNS的数据包,按照之前讲解的DNS解析流程,这个请求域名在com域名后没有被找到,就返回给本地域名服务器,在由本地域名服务器告知DNS客户机。

其产生的相应数据包如下:
下面实验,我们来分析分析数据包。也希望学习者能自己分析下baidu的数据包,其与ping产生的,有一点点不同。

实验步骤二

任务描述:分析DNS数据包

DNS只有两种报文,分别是查询报文和响应报文。他们的报文格式相同,如下:

(1)DNS报文格式。
下面我们解释一下字段含义,方便下面的分析。

  DNS ID号(DNS ID Number):用来对于DNS查询和DNS响应。

  查询/响应(Query/Response,QR):用来指明这个报文是DNS查询还是响应,占1个比特位。如果是1,表示响应。如果是0,表示查询。

  操作代码(OpCode):用来定义消息中请求的类型,占4个比特位。

  权威应答(Authoritative Answer,AA):如果响应报文中设定了这个值,则说明这个响应是由域内权威域名服务器发出的,占1个比特位。

  截断(Truncation,TC):用来指明这个响应由于时间太长,无法接入报文而被截断。该标志位占1个比特位,当该标志位值为1时,表示响应已经超过512字节并以被截断。

  期望递归(Recursion Desired,RD):当请求中设定了这个值,则说明DNS客户端在目标域名服务器不含有所请求信息的情况下,要求进行递归查询。该标志位占1个比特位。

  可用递归(Recursion Available,RA):当响应中设定这个值,说明域名服务器支持递归查询,占1个比特位。

  保留(Z):在RFC1035的规定中全被设为0,但有时会被用来作为RCode域的扩展,占3比特位。

  响应代码(Response  Code):在DNS响应中用来指明错误,占4个比特位。该字段的值通常为0和3,可取的值已经含义如下:

  1)0表示没有错误。

  2)1表示格式错误。

  3)2表示在域名服务器上存在问题。

  4)3表示域参数问题。

  5)4表示查询类型不支持。

  6)5表示在管理上被禁止。

  7) 6~15表示保留。

  问题计数(Question Count):在问题区段中的条目数。

  问答计数(Answer Count):在回答区段中的条目数。

  域名服务器计数(Name Server Count):在权威区段的域名资源记录数。

  额外记录计数(Additional Records Count):在额外信息区段中的其他资源记录数。

  问题区段(Question section):大小可变,包含有被发送到DNS服务器的一条或多条信息查询的部分。

  回答区域(Answer section):大小可变,含有用来回答查询的一条或多条资源记录。

  权威区段(Authority section):大小可变,含有指向权威域名服务器的资源记录,用以继续解析过程。

  额外信息区域(Additional Information section):包含资源记录且大小可变的区段,这些资源记录用来存储完全没有必要回答的查询相关的额外信息。

(2)DNS查询数据包

下面,我们以dns-ping文件来分析DNS协议,抓包如下图:
上图中的Info信息中,可以看出是DNS的查询包,其他协议这里不多介绍,不理解的,可以去相关的实验中学习,我们来主要看DNS协议。

  Domain Name System (query)                                                                                 #DNS 查询

  Response In: 2078                                                                                                            

  Transaction ID: 0x3061                                                                                            #DNS ID号

  Flags: 0x0100 Standard query                                                                                 #标志

  0... .... .... .... = Response: Message is a query                                                           #响应消息,值为0,表示是DNS查询

  .000 0... .... .... = Opcode: Standard query (0)                                                           #操作代码

  .... ..0. .... .... = Truncated: Message is not truncated                                                #截断

  .... ...1 .... .... = Recursion desired: Do query recursively                                           #期望递归

  .... .... .0.. .... = Z: reserved (0)                                                                                   #保留

  .... .... ...0 .... = Non-authenticated data: Unacceptable 

  Questions: 1                                                                                                            #问题计数为1

  Answer RRs: 0                                                                                                         #回答计数为0

  Authority RRs: 0                                                                                                      #域名服务器计数为0

  Additional RRs: 0                                                                                                    #额外计数为0

  Queries                                                                                                                   #问题区段

  wwww.hetianlab.com: type A, class IN

  Name: wwww.hetianlab.com                                                                                 #请求的域名

  Name Length: 18                  

  Label Count: 3

  Type: A (Host Address) (1)                                                                                   #域名类型为A(主机地址)

  Class: IN (0x0001)                                                                                                #地址类型为IN(互联网地址)

以上信息就是DNS协议包的详细信息,在标志位字段,可以看到该包是一个DNS请求包,请求的域名为www.hetianlabdns.com,类型为A。将以上信息对应到DNS报文格式中,如下:

(3)DNS响应数据包

下面,我们来分析下相应的数据包,如下图:
在上图中Info列可以看出,这是个DNS相应的数据包.下面我们来详细的看下:



      Domain Name System (response)                                                                            #DNS相应

      Request In: 2029                                                                                                                 

      Time: 0.471163000 seconds                                                                                     #DNS 相应时间

      Transaction ID: 0x3061                                                                                             #DNS ID

      Flags: 0x8183 Standard query response, No such name                                         #标志

      1... .... .... .... = Response: Message is a response                                                      #相应消息,1,表示是DNS响应

      .000 0... .... .... = Opcode: Standard query (0)                                                           #操作码

      .... .0.. .... .... = Authoritative: Server is not an authority for domain                        #权威应答

      .... ..0. .... .... = Truncated: Message is not truncated                                                #截断

      .... ...1 .... .... = Recursion desired: Do query recursively                                           #期望递归

      .... .... 1... .... = Recursion available: Server can do recursive queries                        #可用递归

      .... .... .0.. .... = Z: reserved (0)                                                                                    #保留

      .... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server

      .... .... ...0 .... = Non-authenticated data: Unacceptable

      .... .... .... 0011 = Reply code: No such name (3)                                                       #响应代码

      Questions: 1                                                                                                            #问题计数为1

      Answer RRs: 0                                                                                                         #回答计数为0(此处表示没有找到域名对应的IP)

      Authority RRs: 1                                                                                                     #域名计数器计数为1

      Additional RRs: 0                                                                                                    #额外记录计数为0

      Queries                                                                                                                   #问题区域

      wwww.hetianlab.com: type A, class IN                                                                               

      Name: wwww.hetianlab.com                                                                                 #请求的域名

      Name Length: 18                                                                                                    

      Label Count: 3                                                                                                           

      Type: A (Host Address) (1)                                                                                     #域名类型

      Class: IN (0x0001)                                                                                                  #地址类型为IN(互联网地址)

      Authoritative nameservers                                                                                    #权威域名服务器,其下面的是一些解释信息,不过多介绍

      之前说过,我们使用ping一个未知的域名来获取DNS数据,而域名本身没有在互联网上注册,按照DNS解析的原理就会知道,最后是无法得到域名对应的IP。所以上面的Answer RRS为0 。

      而同学有些兴趣可以看下实验环境中,访问百度的DNS抓包,就会发现其Answer RRs不为0,并且在问题区域(Queries)的下面,会列出回答区域。请同学们自己查看分析。

      我们将上面分析的数据,填入DNS报文中,具体如下:


好了,DNS协议,就先分析到这里,还是希望同学们自己通过合天的基础知识学习后,能访问互联网来抓取DNS进行详细分析,增加自己的知识储备。

以上是关于2021-08-21 网安实验-Wireshark数据抓包分析之DNS协议的主要内容,如果未能解决你的问题,请参考以下文章

2021-08-29 网安实验-WEB专题-GG

2021-09-10 网安实验-漏洞扫描与利用之Nmap网络扫描脚本使用

合天网安实验室做完第一题怎么跳转第二题

计算机网络原理实验_使用网络协议分析仪Wireshark

使用Wireshark分析-以太网帧与ARP协议-IP协议-ICMP-UDP协议-TCP协议-协议HTTP-DNS协议

Wireshark HTTP实验—Wireshark Lab: HTTP v7.0(计算机网络自顶向下第七版)