且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Nmap渗透测试指南》—第7章7.6节DNS信息搜集

更新时间:2022-09-27 18:26:11

本节书摘来自异步社区《Nmap渗透测试指南》一书中的第7章7.6节DNS信息搜集,作者 商广明,更多章节内容可以访问云栖社区“异步社区”公众号查看。

7.6 DNS信息搜集
表7.6所示为本章节所需Nmap命令表,


《Nmap渗透测试指南》—第7章7.6节DNS信息搜集


《Nmap渗透测试指南》—第7章7.6节DNS信息搜集

表中加粗命令为本小节所需命令——DNS信息搜集。

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

DNS系统中,常见的资源记录类型包括以下几种。

① 主机记录(A记录):RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。

② 别名记录(CNAME记录):RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。

③ IPv6主机记录(AAAA记录):RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。

④ 服务位置记录(SRV记录):RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname)、端口(port number)等。

⑤ NAPTR记录:RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。

DNS通过允许一个名称服务器把它的一部分名称服务(众所周知的zone)“委托”给子服务器,从而实现了一种层次结构的名称空间。此外,DNS还提供了一些额外的信息,例如系统别名、联系信息以及哪一个主机正在充当系统组或域的邮件枢纽。

任何一个使用IP的计算机网络可以使用DNS来实现自己的私有名称系统。尽管如此,当提到在公共的Internet DNS系统上实现的域名时,术语“域名”是最常使用的。

这是基于504个全球范围的“根域名服务器”(分成13组,分别编号为A至M)。从这504个根服务器开始,余下的Internet DNS命名空间被委托给其他的DNS服务器,这些服务器提供DNS名称空间中的特定部分。

操作步骤
使用命令“nmap --script dns-brute目标”进行DNS信息搜集。

root@Wing:~# nmap --script dns-brute www.xxxx.com

Starting Nmap 6.40 ( http://nmap.org ) at 2014-06-12 17:30 CST
Nmap scan report for nmap (221.192.153.46)
Host is up (0.00017s latency).
All 1000 scanned ports on nmap (221.192.153.46) are filtered

Host script results:
|_dns-brute: Can't guess domain of "nmap"; use dns-brute.domain script argument.

Nmap scan report for www.xxxx.com (xxx.237.1.160)
Host is up (0.024s latency).
Other addresses for www.xxxx.com (not scanned): xxx.10.91.49
rDNS record for xxx.237.1.160: hkhdc.laws.ms
Not shown: 994 filtered ports
PORT   STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
80/tcp  open  http
5900/tcp open  vnc
8080/tcp open  http-proxy
10082/tcp closed amandaidx

Host script results:
| dns-brute: 
|  DNS Brute-force hostnames
|   www.xxxx.com - xxx.237.1.160
|   corp.xxxx.com - xxx.10.91.49
|   corp.xxxx.com - xxx.237.1.160
|   whois.xxxx.com - xxx.237.1.160
|   whois.xxxx.com - xxx.10.91.49
|   ldap.xxxx.com - xxx.10.91.49
|   ldap.xxxx.com - xxx.237.1.160
|   mx0.xxxx.com - xxx.237.1.160
|   mx0.xxxx.com - xxx.10.91.49
|   linux.xxxx.com - xxx.10.91.49
|   linux.xxxx.com - xxx.237.1.160
|   mx1.xxxx.com - xxx.10.91.49
|   mx1.xxxx.com - xxx.237.1.160
|   mail.xxxx.com - xxx.237.1.160
|   mail.xxxx.com - xxx.10.91.49
|   server.xxxx.com - xxx.10.91.49
|   server.xxxx.com - xxx.237.1.160
|   citrix.xxxx.com - xxx.237.1.160
|   citrix.xxxx.com - xxx.10.91.49
|   ftp0.xxxx.com - xxx.237.1.160
|   ftp0.xxxx.com - xxx.10.91.49
|   cms.xxxx.com - xxx.10.91.49
|   cms.xxxx.com - xxx.237.1.160
|   erp.xxxx.com - xxx.10.91.49
|   erp.xxxx.com - xxx.237.1.160
|   ops.xxxx.com - xxx.237.1.160
|   ops.xxxx.com - xxx.10.91.49
|   host.xxxx.com - xxx.237.1.160
|   host.xxxx.com - xxx.10.91.49
|   pbx.xxxx.com - xxx.10.91.49
|   pbx.xxxx.com - xxx.237.1.160
|   log.xxxx.com - xxx.10.91.49
|   images.xxxx.com - xxx.10.91.49
|   images.xxxx.com - xxx.237.1.160
|   internal.xxxx.com - xxx.237.1.160
|   internal.xxxx.com - xxx.10.91.49
|   internet.xxxx.com - xxx.237.1.160
|_  internet.xxxx.com - xxx.10.91.49

Nmap done: 2 IP addresses (2 hosts up) scanned in 193.31 seconds
root@Wing:~#

分析
同过对脚本dns-brute的调用可以查询到目标域名所有地址,当然这是基于暴力破解的,并不是所有的域名都可以被暴力破解出来。

该脚本的默认线程是5,如果是扫描一个大型的网站,速度可能会较慢,可以设置一下扫描线程,nmap--script dns-brute dns-brute.threads=10 www.xxx.com,设置10个线程时相应的扫描速度会增加很多。如果需要查询多个域名我们也可以指定一个列表:nmap --script dns-brute dns-brute. threads=10,dns-brute.hostlist www.badu.com。