dig基本介绍+利用wireshark和dig命令学习dns整个过程

dig跟上次学到的nslookup用法大同小异,但是功能上更强大一些
dig语法

dig sina.com any 8.8.8.8 

在信息收集过程中可以尝试更换多个域名服务器对域名进行查询 因为会出现不同的结果 可以获得多个目标信息

反向查询

dig -x ip地址

在这里插入图片描述
查出对应域名

dig命令的强大之处

1.可以查询dns服务器的bind版本

dig -noall -answer txt chaos VERSION.BIND  @要查询的dns服务器的地址

// bind的版本信息在dns服务器中的格式是txt

目的是知道你的服务器版本后,通过寻找该版本的漏洞 尝试通过公攻破服务器 从而得到所有的主机记录
在这里插入图片描述
之后查询该版本是不是最新版本 如果不是最新版本 之后查看更新文件 寻找官方公布的已经修复的漏洞 从而对旧版本进行攻击

举例————

  1. 首先我们查询目标主机所使用的dns服务器地址

在这里插入图片描述

  1. 之后查询其中一个dns服务器的版本(注意要加@)
    在这里插入图片描述
    这是一条空记录
    在安全意识比较好的企业会将其服务器版本隐藏起来

2.对dns记录进行追踪

  dig +trace www.sina.com

之后来详细阐述一下dns的整个工作过程
首先要普及一些知识

1.域的划分

域有多级 根域之后是 顶级域也就是一级域 之后还有二级域 和三级域

baidu.com应该是baidu.com.(之后有一点)这就是所谓的根域名

baidu.com就是一个顶级域名 而www.baidu.com 是一个在该域名下的一台名为www的主机
顶级域名需要自己购买,购买后就可以在前面多加几个域(当然有长度限制)
在a.www.baidu.com 中 a为主机名 www.baidu.com 就是一个二级域名

dns查询过程

那么我们的DNS是怎么解析一个域名的呢?

1.现在我有一台计算机,通过ISP接入了互联网,那么ISP就会给我分配一个DNS服务器,这个DNS服务器不是权威服务器,而是相当于一个代理的dns解析服务器,他会帮你迭代权威服务器返回的应答,然后把最终查到IP返回给你。

2.现在的我计算机要向这台ISPDNS发起请求查询www.baidu.com这个域名了,(经网友提醒:这里其实准确来说不是ISPDNS,而应该是用户自己电脑网络设置里的DNS,并不一定是ISPDNS。比如也有可能你手工设置了8.8.8.8)

3.ISPDNS拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话就直接返回。这个时候拿到的ip地址,会被标记为非权威服务器的应答。

4.如果缓存中没有的话,ISPDNS会从配置文件里面读取13个根域名服务器的地址(这些地址是不变的,直接在BIND的配置文件中),

5.然后像其中一台发起请求。

6.根服务器拿到这个请求后,知道他是com.这个顶级域名下的,所以就会返回com域中的NS记录,一般来说是13台主机名和IP。

7.然后ISPDNS向其中一台再次发起请求,com域的服务器发现你这请求是baidu.com这个域的,我一查发现了这个域的NS,那我就返回给你,你再去查。

(目前百度有4台baidu.com的顶级域名服务器)。

8.ISPDNS不厌其烦的再次向baidu.com这个域的权威服务器发起请求,baidu.com收到之后,查了下有www的这台主机,就把这个IP返回给你了,

9.然后ISPDNS拿到了之后,将其返回给了客户端,并且把这个保存在高速缓存中。

抓包详解过程

之后我们通过抓包来详细了解下整个过程
(使用dig trace)

1.本机(192.168.31.113)向我的网关(192.168.31.1)发送数据报查询(因为本地dns服务器在网关上)要求查询根服务器的ns记录
在这里插入图片描述
在这里插入图片描述
(查询根服务器的ns记录)在这里插入图片描述
2.之后本地dns服务器(网关)对该请求进行回复 可以看到回复了一共十三个根服务器的ns记录(中国的根服务器还不能正常使用)

在这里插入图片描述
同时在附加内容中加入了根域服务器的a记录及ip地址
在这里插入图片描述
3.但是可以看到dig命令又对刚刚返回的13个根服务器ns记录依次进行解析
在这里插入图片描述
抽一个包详细说一下
向该根服务器询问其a记录及ip地址
AAAA是ipv6中的主机记录,相当于在ipv4中查询a记录在这里插入图片描述
根服务器返回所请求的a记录及主机地址
在这里插入图片描述
这就完成了dns查询的第一步

之后进入dns查询的第二步

在上面给出的ip地址中随便挑选出一个,因为发现sina.com属于com域,因此向com域服务器直接询问www.sina.com的a记录
在这里插入图片描述
但是com域服务器检查后发现这个是以com结尾的域名,但我不知道他的a记录,我可以告诉你他的ns记录

于是返回了com域服务器的ns记录在additional中加入了地址的a记录

在这里插入图片描述
但是我们的dig依然对这些com域服务器的ns记录逐一进行了查询,再一次的得到了13个com服务器的a记录在这里插入图片描述

之后来到了第三步

我们从中任选一个com域服务器,向其查询www.sina.com的a记录
在这里插入图片描述
但是该com域服务器并不清楚www.sina.com 的a记录它只知道sina.com的ns记录
于是返回了sina.com的全部ns记录 同样在additional中加入了其a记录
在这里插入图片描述
同样,dig使得主机再次查询以上给出的sina.com 的dns服务器的a记录
在这里插入图片描述

之后又向其中的一个发出请求
请求www.sina.com的a记录
在这里插入图片描述
发现这是一个cname记录之后层层解析
以上就是使用digtrace追踪的全部过程
之后再来看下我们所说的递归过程
在这里插入图片描述
主机向本地dns服务器发出请求,请求www.sina.com的a记录
之后本地dns服务器返回a记录
这就是递归过程

而迭代过程就是上述中本地dns服务器不断查询的过程,在真实的dns过程中,主机与本地dns服务器只交互了一次

如图左边为递归右边为迭代
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值