Nmap扫描教程之DNS服务类

Nmap扫描教程之DNS服务类

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。

NmapDNS缓存探测

DNS缓存就是当用户访问某个网址后,操作系统将会把该地址记录到缓存中,方便用户下次访问。这样,就可以节省用户每次访问时,多次解析时间了。但是,这个缓存只是临时缓存,超过设定的时间将会被清除。在Nmap中,dns-cache-snoop脚本可以探测一个主机中的DNS缓存条目。其语法格式如下所示:

  • nmap -sU -p 53 --script dns-cache-snoop.nse --script-args ‘dns-cache-snoop.mode=timed,dns-cache-snoop.domains={host1,host2,host3}‘

以上语法中“-sU”选项表示扫描UDP端口;“-p”选项指定的是DNS协议默认的端口53;“dns-cache-snoop.mode”参数是用来指定运行模式的,可设置的模式有两种,分别是nonrecursive和timed。其中,nonrecursive是默认模式。“dns-cache-snoop.domains”选项表示可以指定探测缓存的主机名。如果同时指定多个主机名时,中间使用逗号分割。

【示例1-8】探测目标主机RHEL 6.4上的DNS缓存条目。执行命令如下所示:

  • root@localhost :~# nmap -sU -p 53 --script dns-cache-snoop.nse 192.168.1.104
  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-03 16:42 CST
  • Nmap scan report for localhost (192.168.1.104)
  • Host is up (0.00036s latency).
  • PORT   STATE SERVICE
  • 53/udp open  domain
  • | dns-cache-snoop: 1 of 100 tested domains are cached.          #探测结果
  • |_www.baidu.com
  • MAC Address: 00:0C:29:2A:69:34 (VMware)
  • Nmap done: 1 IP address (1 host up) scanned in 0.52 seconds

从以上输出信息中,可以看到探测了100个域名,其中有一个被缓存。从输出信息中,可以看到缓存的主机名为www.baidu.com。

Nmap探测主机是否支持黑名单列表

这里所说的黑名单就是指支持防止DNS反垃圾和打开proxy黑名单。在Nmap中,dns-blacklist脚本可以探测目标主机是否支持防止DNS反垃圾和打开proxy黑名单。其中,语法格式如下所示:

  • nmap -sn --script dns-blacklist [目标]

以上语法中“-sn”选项表示不进行Ping扫描。

【示例1-9】探测目标主机RHEL 6.4是否支持黑名单列表。执行命令如下所示:

  • [email protected]:~# nmap -sn --script dns-blacklist 192.168.1.104
  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-05 16:00 CST
  • Nmap scan report for localhost (192.168.1.104)
  • Host is up (0.00028s latency).
  • MAC Address: 00:0C:29:2A:69:34 (VMware)
  • Host script results:
  • | dns-blacklist:
  • |   PROXY                                                                         #PROXY协议
  • |     dnsbl.tornevall.org - PROXY
  • |       IP marked as "abusive host"
  • |       ?
  • |     dnsbl.ahbl.org - PROXY
  • |   SPAM                                                                                    #SPAM协议
  • |     dnsbl.ahbl.org - SPAM
  • |     l2.apews.org - FAIL
  • |_    list.quorum.to - SPAM
  • Nmap done: 1 IP address (1 host up) scanned in 12.58 seconds

从以上输出信息中,可以看到目标主机支持防止DNS反垃圾和打开proxy黑名单。

本文选自:Nmap扫描实战教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

时间: 2024-10-11 12:27:24

Nmap扫描教程之DNS服务类的相关文章

Nmap扫描教程之Nmap基础知识

Nmap扫描教程之Nmap基础知识 Nmap扫描Nmap基础知识 Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper).Nmap工具可以用来扫描电脑上开放的端口,确定哪些服务运行在哪些端口,并且推断出计算机运行的操作系统.通过使用该工具,可以评估网络系统安全.所以,Nmap是大部分用户所必要的工具之一.本章将对Nmap工具的基础知识进行详细介绍. Nmap扫描Nmap概述 Nmap是一款非常不错的网络扫描工具,支持各种操作系统,如Windows.Linux

dSploitzANTI渗透教程之HTTP服务重定向地址

dSploitzANTI渗透教程之HTTP服务重定向地址 HTTP服务 HTTP服务主要用于重定向地址的.当用户创建一个钓鱼网站时,可以通过使用HTTP服务指定,并通过实施中间人攻击,使客户端访问该钓鱼网站.具体实施方法如下所示: (1)在zANTI工具的菜单栏中选择HTTP Server选项(如图2.2所示),将打开HTTP服务界面,如图2.16所示. 图2.16  HTTP服务界面 (2)从该界面可以看到,默认没有启动该功能.用户通过单击右上角按钮,即可启动HTTP服务.成功启动后,显示界面

WCF系列教程之WCF服务宿主

本文参考自http://www.cnblogs.com/wangweimutou/p/4377062.html,纯属读书笔记,加深记忆. 一.简介 任何一个程序的运行都需要依赖一个确定的进程中,WCF也不例外.如果我们需要使用WCF服务,那么我们就必须将服务寄宿与创建它并控制它的上下文和生存期的运行时环境当中,承载服务的环境,称之为宿主.WCF服务可以在支持托管代码的任意Windows进程中运行.WCF提供了统一编程模型,用于生成面向服务的应用程序.此编程模型保持一致且独立于部署服务的运行时环境

WCF系列教程之WCF服务协定

本文参考自:http://www.cnblogs.com/wangweimutou/p/4422883.html,纯属读书笔记,加深记忆 一.服务协定简介: 1.WCF所有的服务协定层里面的服务接口,都有一个ServiceContract的特性修饰,服务接口里面的操作方法都有OperationContract特性修饰,why? (1).服务契约的实现要靠ServiceContractAttribute 属性定义 (2).服务契约方法的实现要靠 OperationContractAttribute

WCF系列教程之WCF服务配置

简介:WCF作为分布式开发的基础框架,在定义服务以及消费服务的客户端时可以通过配置文件的方式,来进行设置,这充分的体现了WCF的伸缩性和自定义性.当然WCF也提供硬编程的方式,通过在代码中直接设置相关对象的属性来完成服务端与客户端的配置,然而这种方式并不利于后期程序的更改和扩展. 1.WCF配置文件结构如下图所示,包含三个部分,services(服务).bindings()

Nmap扫描教程之网络基础服务DHCP服务类

Nmap扫描教程之网络基础服务DHCP服务类 Nmap网络基础服务 网络基础服务是网络正常工作的基石,常见的网络基础服务包括DHCP服务和DNS服务.其中,DHCP服务用来为计算机动态分配IP地址:DNS服务用来对主机名进行解析.本章将介绍网络基础服务的扫描方法. NmapDHCP服务类 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种局域网的网络协议.它的主要作用就是,给内部网络或网络服务供应商自动分配IP地址.当一台客户机需要一个IP

OpenVAS漏洞扫描基础教程之OpenVAS概述及安装及配置OpenVAS服务

OpenVAS漏洞扫描基础教程之OpenVAS概述及安装及配置OpenVAS服务 OpenVAS基础知识 OpenVAS(Open Vulnerability Assessment System)是开放式漏洞评估系统,其核心部分是一个服务器.该服务器包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题.OpenVAS不同与传统的漏洞扫描软件.所有的OpenVAS软件都是免费的,而且还采用了Nessus(一款强大的网络扫描工具)较早版本的一些开放插件.虽然Nessus很强大,但是该工具

Kail Linux渗透测试教程之ARP侦查Netdiscover端口扫描Zenmap与黑暗搜索引擎Shodan

Kail Linux渗透测试教程之ARP侦查Netdiscover端口扫描Zenmap与黑暗搜索引擎Shodan ARP侦查工具——Netdiscover Netdiscover是一个主动/被动的ARP侦查工具.该工具在不使用DHCP的无线网络上非常有用.使用Netdiscover工具可以在网络上扫描IP地址,检查在线主机或搜索为它们发送的ARP请求.下面将介绍Netdiscover工具的使用方法. 首先查看下Netdiscover工具的帮助信息,执行命令如下所示: [email protect

Kail Linux渗透测试教程之在Metasploit中扫描

Kail Linux渗透测试教程之在Metasploit中扫描 在Metasploit中扫描 在Metasploit中,附带了大量的内置扫描器.使用这些扫描器可以搜索并获得来自一台计算机或一个完整网络的服务信息.本节将介绍使用Metasploit中的辅助模块实现扫描. [实例4-4]在Metasploit中,扫描目标主机.具体操作步骤如下所示: (1)启动MSF终端.执行命令如下所示: root@kali :~# msfconsole msf> (2)搜索所有可用的扫描模块.执行命令如下所示: