DNS信息收集

Author Avatar
kabeor 2月 07, 2018

DNS信息收集

1. DNS

域名系统(英文:Domain Name System,DNS)是因特网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

域名解析

举一个例子,zh.wikipedia.org作为一个域名就和IP地址208.80.154.225相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打wikipedia的名字来代替电话号码(IP地址)。DNS在我们直接调用网站的名字以后就会将像zh.wikipedia.org一样便于人类使用的名字转化成像208.80.154.225一样便于机器识别的IP地址。

DNS查询有两种方式:递归和迭代。DNS客户端设置使用的DNS服务器一般都是递归服务器,它负责全权处理客户端的DNS查询请求,直到返回最终结果。而DNS服务器之间一般采用迭代查询方式。

以查询zh.wikipedia.org为例:

客户端发送查询报文”query zh.wikipedia.org”至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。
如果记录老化或不存在,则

  1. DNS服务器向根域名服务器发送查询报文”query zh.wikipedia.org”,根域名服务器返回.org域的权威域名服务器地址,这一级首先会返回的是顶级域名的权威域名服务器。
  2. DNS服务器向.org域的权威域名服务器发送查询报文”query zh.wikipedia.org”,得到.wikipedia.org域的权威域名服务器地址。
  3. DNS服务器向.wikipedia.org域的权威域名服务器发送查询报文”query zh.wikipedia.org”,得到主机zh的A记录,存入自身缓存并返回给客户端。

当 DNS 客户端需要查询程序中使用的名称时,它会查询 DNS 服务器来解析该名称。客户端发送的每条查询消息都包括三条信息,指定服务器回答的问题:

  • 指定的 DNS 域名,规定为完全合格的域名 (FQDN)

  • 指定的查询类型,可根据类型指定资源记录,或者指定查询操作的专用类型。

  • DNS 域名的指定类别。

DNS 查询进程分两部分进行:

  • 名称查询从客户端计算机开始,并传输至解析程序即 DNS 客户端服务程序进行解析。

  • 不能在本地解析查询时,可根据需要查询 DNS 服务器来解析名称。

2. WhoIs查询

一个域名的所有者可以通过查询WHOIS数据库而被找到;对于大多数根域名服务器,基本的WHOIS由ICANN维护,而WHOIS的细节则由控制那个域的域注册机构维护。

对于240多个国家代码顶级域名(ccTLDs),通常由该域名权威注册机构负责维护WHOIS。

域名基本信息查询

  1. DNS服务器查询

除了whois查询之外,我们还可以通过host命令来查询dns服务器,命令格式为:

host -t ns domainName

  1. A记录查询

A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的子域名。通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。
通过
host -t a domainName
可以查询a记录

MX记录查询

MX记录也叫做邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的IP地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。
简单的说,通过操作MX记录,您才可以得到以您域名结尾的邮局。

通过
host -t mx domainName
可以查询该域名下的mx记录,从而可以得到邮件服务器信息。

域名枚举

在得到主域名信息之后,如果能通过主域名得到所有子域名信息,在通过子域名查询其对应的主机IP,这样我们能得到一个较为完整的信息。

fierce

fierce -dns domainName

DNSenum

cd /usr/bin
./dnsenum --enum adomainnameontheinternet.com

我们可以使用一些额外的选项来运行DNSenum,它们包括这些东西:

-- threads [number] 允许你设置一次所运行的线程数量。
-r 允许你开启递归查找。
-d 允许你设置在WHOIS请求之间的时间延迟,单位为秒。
-o 允许我们制定输出位置。
-w 允许我们开启WHOIS查询。

我们可以使用另一个命令 snmpwalk 来检测Windows主机。Snmpwalk是一个使用SNMP
GETNEXT请求在网络实体中查询信息树的SNMP应用。在命令行中键入下列命令:

snmpwalk -c public 192.168.10.200 -v 2c

获取windows系统进程数

snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1.6

这条命令的意思是:使用v1版本,共同体为public,来对192.168.1.200的.1.3.6.1.2.1.25.1.6分支进行walk。

获取windows系统总内存

snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.2.2

获取windows系统的IP地址

snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.4.20.1.1

获取windows系统信息

snmpwalk -v 1 -c public 192.168.1.200 system

获取windows系统的网卡信息

snmpwalk -v 1 192.168.1.200 -c public ifDescr

反向地址解析

我们经常使用到得DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”,正向查找区域就是我们通常所说的域名解析,反向查找区域即是这里所说的IP反向解析,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名,当然,要成功得到域名就必需要有该IP地址的PTR记录。PTR记录是邮件交换记录的一种,邮件交换记录中有A记录和PTR记录,A记录解析名字到地址,而PTR记录解析地址到名字。地址是指一个客户端的IP地址,名字是指一个客户的完全合格域名。通过对PTR记录的查询,达到反查的目的。

反向域名解析系统(Reverse DNS)的功能确保适当的邮件交换记录是生效的。反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应。IP反向解析主要应用到邮件服务器中来阻拦垃圾邮件,特别是在国外。多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就可以大大降低垃圾邮件的数量。

比如你用 [email protected] 这个邮箱给我的邮箱 [email protected] 发了一封信。163邮件服务器接到这封信会查看这封信的信头文件,这封信的信头文件会显示这封信是由哪个IP地址发出来的。然后根据这个IP地址进行反向解析,如果反向解析到这个IP所对应的域名是name.com 那么就接受这封邮件,如果反向解析发现这个IP没有对应到name.com,那么就拒绝这封邮件。

由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。这样欲解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域

名”in-addr.arpa”结尾。

例如一个IP地址:222.211.233.244,其逆向域名表达方式为:244.233.221.222.in-addr.arpa

两种表达方式中IP地址部分顺序恰好相反,因为域名结构是自底向上(从子域到域),而IP地址结构是自顶向下(从网络到主机)的。实质上逆向域名解析是将IP地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部分可以纳入正向解析中。

linux中常用的反向解析工具为nslookup和dig。

使用dig进行反向解析的命令格式为:

dig -x ip @dnsserver        #用 dig 查看反向解析

DNS区域传送漏洞

很多dns探测工具,都会首先尝试dns区域传送,然后才是暴力枚举,那么什么是DNS区域传送漏洞呢?

区域传送操作指的是一台后备服务器使用来自主服务器的数据刷新自己的zone数据库。这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主域名服务器因意外故障变得不可用时影响到全局。一般来说,DNS区域传送操作只在网络里真的有后备域名DNS服务器时才有必要执行,但许多DNS服务器却被错误地配置成只要有人发出请求,就会向对方提供一个zone数据库的拷贝。如果所提供的信息只是与连到因特网上且具备有效主机名的系统相关,那么这种错误配置不一定是坏事,尽管这使得攻击者发现潜在目标要容易得多。真正的问题发生在一个单位没有使用公用/私用DNS机制来分割外部公用DNS信息和内部私用DNS信息的时候,此时内部主机名和IP地址都暴露给了攻击者。把内部IP地址信息提供给因特网上不受信任的用户,就像是把一个单位的内部网络完整蓝图或导航图奉送给了别人。

使用dig工具可以检测dns 区域传送漏洞,语法如下:

dig axfr @域名服务器 被检测域名

From https://kabeor.github.io/DNS信息收集/ bye

This blog is under a CC BY-NC-SA 4.0 Unported License
本文链接:https://kabeor.github.io/DNS信息收集/