Nmap扫描教程之DNS服务类

发表于:2015-7-17 13:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:skykent    来源:51Testing软件测试网采编

  Nmap DNS服务类
  DNS(Domain Name System,域名系统)的作用就是将主机名解析为对应IP地址的过程。通常主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。所以,DNS服务器在解析一个主机名时,需要一级一级的进行解析,即递归查询。为了方便用户下次访问,DNS服务器会将解析过的主机名临时缓存。通过对DNS服务器进行扫描,可以获取到一些基本信息。如版本、服务器地址及缓存的域名等。本节将介绍DNS服务扫描方法。
  Nmap获取DNS信息
  通过请求DNS服务器的ID,并且访问ID,可以获取DNS名称服务的相关信息。在Nmap中,dns-nsid脚本可以用来发送ID请求,并且获取DNS的详细信息。其中,包括NSID、ID的服务及版本。dns-nsid脚本的语法格式如下所示:
  nmap -sSU -p 53 --script dns-nsid [目标]
  以上语法中的“-sSU”选项表示进行UDP和TCP SYN扫描。
  【示例1-4】获取目标主机RHEL 6.4上DNS信息。执行命令如下所示:
  root@localhost:~# nmap -sSU -p 53 --script dns-nsid 192.168.1.104
  Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-28 16:04 CST
  Nmap scan report for localhost (192.168.1.104)
  Host is up (0.00033s latency).
  PORT   STATE SERVICE
  53/tcp open  domain
  53/udp open  domain
  | dns-nsid:
  |_  bind.version: 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6                                    #版本
  MAC Address: 00:0C:29:2A:69:34 (VMware)
  Nmap done: 1 IP address (1 host up) scanned in 0.54 seconds
  从以上输出信息中,可以看到获取到目标主机上DNS服务的版本信息为9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6。
  Nmap DNS服务发现协议
  DNS服务发现协议允许客户端发现一个服务器列表。通过发送DNS-SD查询广播包,可以从响应包中获取到一个服务列表。在Nmap中,broadcast-dns-service-discovery脚本可以发送DNS-SD广播包,并且获取一个服务列表。其中,语法格式如下所示:
  nmap --script=broadcast-dns-service-discovery
  【示例1-5】使用broadcast-dns-service-discovery脚本发送DNS-SD广播包。执行命令如下所示:
  root@localhost:~# nmap --script=broadcast-dns-service-discovery
  Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-21 13:56 CST
  Pre-scan script results:
  | broadcast-dns-service-discovery:
  |   192.168.1.101
  |     47989/tcp nvstream                                                                                    #nvstream服务信息
  |_      Address=192.168.1.101 fe80:0:0:0:744c:a0ee:dbfd:769     #nvstream服务地址
  WARNING: No targets were specified, so 0 hosts scanned.
  Nmap done: 0 IP addresses (0 hosts up) scanned in 7.06 seconds
  从以上输出信息中,可以看到收到一个地址为192.168.1.101主机的响应包。从该响应包中,可以看到目标主机192.168.1.101上有一个使用DNS服务发现协议的服务。其中,服务名称为nvstream、端口号为47989、协议为TCP、服务的地址为192.168.1.101。
  Nmap 探测主机是否允许DNS递归查询
  DNS服务器的主要作用就是进行域名解析。DNS进行域名解析时,通常会使用递归查询和迭代查询。其中,递归查询是最常见的查询方式。在Nmap中,dns-recursion脚本可以用来探测一台主机是否允许DNS递归查询。其中,语法格式如下所示:
  nmap -sU -p 53 --script=dns-recursion [目标]
  【示例1-6】探测目标主机RHEL 6.4是否允许DNS递归查询。执行命令如下所示:
  root@localhost:~# nmap -sU -p 53 --script=dns-recursion 192.168.1.104
  Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-28 16:10 CST
  Nmap scan report for localhost (192.168.1.104)
  Host is up (0.00030s latency).
  PORT   STATE SERVICE
  53/udp open  domain
  |_dns-recursion: Recursion appears to be enabled                                        #递归查询已启用
  MAC Address: 00:0C:29:2A:69:34 (VMware)
  Nmap done: 1 IP address (1 host up) scanned in 2.58 seconds
  从输出的信息,可以看到目标主机上的DNS递归查询已开启。
  Nmap枚举DNS服务器的主机名
  主机名就是计算机的名字,网上邻居就是根据主机名来识别的,该名字可以随时更改。通过暴力破解通用的子域,可以枚举DNS服务器的主机名。在Nmap中,dns-brute脚本可以枚举DNS服务器的主机名。其中,语法格式如下所示:
  nmap --script dns-brute --script-args dns-brute.domain=[域名],dns-brute.threads=[number],dns-brute.hostlist=[主机名列表],newtargets -sS -p 80 [域名]
  以上语法中“dns-brute.domain” 参数是用来指定破解的域名,如baidu.com;“dns-brute.threads”参数是用来指定破解的线程数,默认是5;“dns-brute.hostlist”参数是用来指定一个主机名列表文件的,用于dns-brute脚本进行破解。默认,破解使用的主机名列表文件是/usr/share/nmap/nselib/data/vhosts-default.lst文件。当然,以上参数也可以不指定。
  【示例1-7】枚举DNS服务器benet.com的主机名。执行命令如下所示:
root@localhost:~# nmap --script dns-brute mail.benet.com
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-01 16:47 CST
Nmap scan report for mail.benet.com (69.172.201.208)
Host is up (0.26s latency).
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https
Host script results:                                                                      #脚本扫描结果
| dns-brute:
|   DNS Brute-force hostnames:                                          #暴力破解出的主机名
|     admin.benet.com - 69.172.201.208
|     stats.benet.com - 69.172.201.208
|     devel.benet.com - 69.172.201.208
|     host.benet.com - 69.172.201.208
|     mx.benet.com - 69.172.201.208
|     development.benet.com - 69.172.201.208
|     administration.benet.com - 69.172.201.208
|     http.benet.com - 69.172.201.208
|     mx0.benet.com - 69.172.201.208
|     devsql.benet.com - 69.172.201.208
|     ads.benet.com - 69.172.201.208
|     mx1.benet.com - 69.172.201.208
|     devtest.benet.com - 69.172.201.208
......
|     mobile.benet.com - 69.172.201.208
|     helpdesk.benet.com - 69.172.201.208
|     monitor.benet.com - 69.172.201.208
|     home.benet.com - 69.172.201.208
|     mssql.benet.com - 69.172.201.208
|_    mta.benet.com - 69.172.201.208
Nmap done: 1 IP address (1 host up) scanned in 60.25 seconds
  从以上输出信息中,可以看到枚举出的DNS服务器benet.com所有域名及域名对应的IP地址。例如,主机名为admin.benet.com的IP地址是69.172.201.208。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号