当前位置: 首页 > news >正文

Nmap扫描教程之DNS服务类

Nmap扫描教程之DNS服务类

Nmap DNS服务类

DNS(Domain Name System,域名系统)的作用就是将主机名解析为相应IP地址的过程。

通常主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。

所以。DNSserver在解析一个主机名时,须要一级一级的进行解析,即递归查询。为了方便用户下次訪问,DNSserver会将解析过的主机名暂时缓存。通过对DNSserver进行扫描,能够获取到一些基本信息。

如版本号、server地址及缓存的域名等。本节将介绍DNS服务扫描方法。

Nmap获取DNS信息

通过请求DNSserver的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服务发现协议同意client发现一个server列表。通过发送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、port号为47989、协议为TCP、服务的地址为192.168.1.101。

Nmap 探測主机是否同意DNS递归查询

DNSserver的主要作用就是进行域名解析。

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枚举DNSserver的主机名

主机名就是计算机的名字,网上邻居就是依据主机名来识别的,该名字能够随时更改。通过暴力破解通用的子域,能够枚举DNSserver的主机名。在Nmap中,dns-brute脚本能够枚举DNSserver的主机名。当中,语法格式例如以下所看到的:

  • 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】枚举DNSserverbenet.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

从以上输出信息中,能够看到枚举出的DNSserverbenet.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”选项表示扫描UDPport;“-p”选项指定的是DNS协议默认的port53。“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是否支持黑名单列表。运行命令例如以下所看到的:

  • root@localhost:~# 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人!

转载于:https://www.cnblogs.com/zfyouxi/p/5266868.html

相关文章:

  • 怎样制作捐赠二维码,实现开源项目或免费应用的捐赠收款(支付宝篇)
  • 培训日报3.14(mysql,guava,穿山甲等)
  • 设计模式(三)工厂方法模式(Factory Pattern)
  • jQuery 增加 删除 修改select option
  • LINQ查收数据库的性能瓶颈
  • Stream groupings
  • 重构第4天:降低方法(Push Down Method)
  • [基础] 重载的时候什么时候用引用
  • 技术架构的关注点
  • 在线生成GIF文件
  • 给厕所换了一个排污管
  • CocoaPods简单配置。
  • Java8:使用Lambda表达式增强版Comparator排序
  • Java注解
  • Linux内核分析5
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • CentOS6 编译安装 redis-3.2.3
  • HTML5新特性总结
  • Javascript 原型链
  • Java基本数据类型之Number
  • js写一个简单的选项卡
  • nodejs:开发并发布一个nodejs包
  • Spring Boot MyBatis配置多种数据库
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • TypeScript迭代器
  • 编写高质量JavaScript代码之并发
  • 创建一个Struts2项目maven 方式
  • 大主子表关联的性能优化方法
  • 代理模式
  • 多线程事务回滚
  • 前言-如何学习区块链
  • 听说你叫Java(二)–Servlet请求
  • 我从编程教室毕业
  • 异步
  • 终端用户监控:真实用户监控还是模拟监控?
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • No resource identifier found for attribute,RxJava之zip操作符
  • Android开发者必备:推荐一款助力开发的开源APP
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (转)用.Net的File控件上传文件的解决方案
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core 成都线下面基会拉开序幕
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NetCore部署微服务(二)
  • .pop ----remove 删除
  • /etc/sudoers (root权限管理)
  • /usr/bin/env: node: No such file or directory
  • @Conditional注解详解
  • @RestController注解的使用