前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【工具篇】通过kali进行DNS信息收集

【工具篇】通过kali进行DNS信息收集

作者头像
一名白帽的成长史
发布2019-10-24 16:10:56
5.9K0
发布2019-10-24 16:10:56
举报

众所周知,在对目标发起渗透之前,我们需要先进行信息收集。

信息收集是否详细很大程度上决定了我们渗透测试的成功率。

如果我们拿到的是一个域名,那么第一步就是对该域名进行解析。

今天就来看看利用kali,如何来收集DNS信息吧。

Part.1

域名解析流程

DNS解析过程

首先我们来看一下DNS的一些基础知识。

(1)域名

域名是设计成层次型,分别是根域、顶级域、二级层域、子域和主机。

一个完整的域名能够代表主机在网络中的具体位置,如下:

//ruijie.com.cn为域名的主体

//www.ruijie.com.cn是URL统一资源定位符,而不是域名,www为主机名,上面运行着服务器。

访问IP和域名都可以访问到对应的服务器,但域名便于记忆。

(2)域名解析

当我们访问一个域名的时候,会先将域名解析成ip地址。客户端会按以下步骤进行域名解析:

  1. 浏览器先检查缓存中有没有域名对应的ip地址。
  2. 浏览器没有缓存,就检查操作系统中的hosts文件,windows在 C:\windows\System32\drivers\etc\hosts文件,linux在/etc/hosts文件中配置。
  3. hosts没有配置就会向本地DNS域名服务器发起查询请求。
  4. 本地DNS服务器没有缓存的话,就会继续向另外一台DNS服务器查询,直到解析出需访问主机的IP地址,回复给PC,并缓存到本地。

//DNS查询请求分为迭代查询和递归查询两种,基于TCP/UDP的53端口。

(3)迭代查询

客户机发出查询请求后,若该DNS服务器中不包含所需数据,它会告诉客户机另外一台DNS服务器的IP地址,使客户机自动转向另外一台DNS服务器查询,依次类推,直到查到数据,否则由最后一台DNS服务器通知客户机查询失败。

(4)递归查询

客户机发出查询请求后,DNS服务器必须告诉客户机正确的数据(IP地址)或通知客户机找不到其所需数据。如果DNS服务器内没有所需要的数据,则DNS服务器会代替客户机向其他的DNS服务器查询。

客户机只需接触一次DNS服务器系统,就可得到所需的节点地址。

Part.2

nslookup

nslookup

Nslookup是一款kali自带的DNS解析测试工具,主要借助DNS服务器的递归查询,解析的过程对测试用户不可见。

输入nslookup进入,如下:

(1)查询a记录

a记录:指定主机名(或域名)与其对应的IP地址的记录。

解析www.baidu.com:

首先解析成了www.a.shifen.com,是一个cname记录。

//cname记录:别名记录,允许将多个域名映射到同一个IP地址。

再解析cname,最终得到真实地址61.135.169.121和61.135.169.125

上面的dns服务器是192.168.211.2,还可以指定任意server进行查询:

(2)查询其他类型记录

mx记录:邮件交换记录,它指向一个邮件服务器。

ns记录:用来明确当前你的域名是由哪个DNS服务器来进行解析的。

例如查询一下mx记录:

//当有多个邮件服务器时,权重越低越优先(此处10最底)

再解析上面得到的邮件服务器地址:

查询ns记录:

根据IP反查域名:

set type=any,会查出所有信息:

nslookup还可以不进入交互界面查询:

//-type也可以写成-q;指定server为114.114.114.114进行解析

Part.3

dig工具

dig工具

除了nslookup以外,还有一款DNS信息收集软件dig。

不同于nslookup,dig查询主要进行DNS迭代查询,其具体的解析过程对测试用户是可见的。

(1)基本功能

//指定DNS服务器114.114.114.114进行解析

解析mx记录:

反向解析获取域名:

(2)结果筛选功能

dig还可以对查询到的结果进行筛选:

+noall 过滤掉所有参数

+noall +answer 只显示最后的查询结果

(3)bind版本查询

查询DNS服务器bind版本信息,如果该版本有漏洞,可以把DNS记录都获取下来。

比如我们先获取某高校的ns记录:

查询相应DNS服务器的bind版本信息:

//txt chaos VERSION.BIND代表bind版本记录

当然有时候什么都查不到,因为被使用者过滤了:

(4)DNS追踪功能

从根域服务器开始,逐级进行迭代查询。

例如追踪www.baidu.com,首先查询根域服务器:

从根域服务器拿到com.域地址:

再挑选一个com.域服务器查询baidu.com:

最后选取ns3.baidu.com查询www.baidu.com:

(5)DNS区域传输

首先查询百度的ns记录:

选取一个域名服务器,请求baidu.com的区域传输记录:

这里失败了,因为有访问控制,我们没有权限。

如果因为管理员的疏忽,没有设置权限管理,就可以拿到DNS服务器里面的主机记录。

Part.4

whois

whois

通过whois命令,我们可以收集DNS的注册信息。

利用收集到的信息可以做一些社会工程学相关的东西。

以某域名为例:

Part.5

DNS字典爆破

DNS字典爆破

kali自带很多DNS爆破工具,以fierce为例。

使用hosts.txt字典爆破baidu.com:

可以看到,工具先查询了ns记录:

然后再通过这些DNS服务器进行爆破,得出域名:

其他工具的原理类似。

这里推荐一个李姐姐的神器:

https://github.com/lijiejie/subDomainsBrute

通过高并发DNS暴力枚举,可以发现其他工具无法探测到的域名。

Part.6

结语

以上就是kali中我们可以用来进行DNS信息收集的一些工具了。大家都明白了吗?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一名白帽的成长史 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档