zoukankan      html  css  js  c++  java
  • DNS域传送漏洞

    DNS域传送漏洞:域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录

     

    什么是DNS?

    DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。

    举例来说,如果你要访问域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.129.69

    DNS服务器使用的TCP/UDP端口号是53。

    最常用的DNS记录有以下几类:

    DNS类型
    A IP地址记录,记录一个域名对应的IP地址
    AAAA IPv6 地址记录,记录一个域名对应的IPv6地址
    CNAME 别名记录,记录一个主机的别名
    MX 电子邮件交换记录,记录一个邮件域名对应的IP地址,如root@xxxx.com
    NS 域名服务器记录 ,记录该域名由哪台域名服务器解析
    PTR 反向记录,也即从IP地址到域名的一条记录
    TXT 记录域名的相关文本信息

    nslookup命令 

    Windows下的nslookup命令:

    λ nslookup.exe ?
    用法:

    1 λ nslookup.exe ?
    2 用法:
    3    nslookup [-opt ...]             # 使用默认服务器的交互模式
    4    nslookup [-opt ...] - server    # 使用 "server" 的交互模式
    5    nslookup [-opt ...] host        # 仅查找使用默认服务器的 "host"
    6    nslookup [-opt ...] host server # 仅查找使用 "server""host"

    交互式nslookup命令:

     1 λ nslookup.exe
     2 默认服务器:  UnKnown
     3 Address:  8.8.8.8
     4 
     5 > help
     6 命令:   (标识符以大写表示,[] 表示可选)
     7 NAME            - 打印有关使用默认服务器的主机/域 NAME 的信息
     8 NAME1 NAME2     - 同上,但将 NAME2 用作服务器
     9 help or ?       - 打印有关常用命令的信息
    10 set OPTION      - 设置选项
    11     all                 - 打印选项、当前服务器和主机
    12     [no]debug           - 打印调试信息
    13     [no]d2              - 打印详细的调试信息
    14     [no]defname         - 将域名附加到每个查询
    15     [no]recurse         - 询问查询的递归应答
    16     [no]search          - 使用域搜索列表
    17     [no]vc              - 始终使用虚拟电路
    18     domain=NAME         - 将默认域名设置为 NAME
    19     srchlist=N1[/N2/.../N6] - 将域设置为 N1,并将搜索列表设置为 N1、N2 等
    20     root=NAME           - 将根服务器设置为 NAME
    21     retry=X             - 将重试次数设置为 X
    22     timeout=X           - 将初始超时间隔设置为 X 秒
    23     type=X              - 设置查询类型(如 A、AAAA、A+AAAA、ANY、CNAME、MX、
    24                           NS、PTR、SOA 和 SRV)
    25     querytype=X         - 与类型相同
    26     class=X             - 设置查询类(如 IN (Internet)和 ANY)
    27     [no]msxfr           - 使用 MS 快速区域传送
    28     ixfrver=X           - 用于 IXFR 传送请求的当前版本
    29 server NAME     - 将默认服务器设置为 NAME,使用当前默认服务器
    30 lserver NAME    - 将默认服务器设置为 NAME,使用初始服务器
    31 root            - 将当前默认服务器设置为根服务器
    32 ls [opt] DOMAIN [> FILE] - 列出 DOMAIN 中的地址(可选: 输出到文件 FILE)
    33     -a          -  列出规范名称和别名
    34     -d          -  列出所有记录
    35     -t TYPE     -  列出给定 RFC 记录类型(例如 A、CNAME、MX、NS 和 PTR 等)
    36                    的记录
    37 view FILE           - 对 'ls' 输出文件排序,并使用 pg 查看
    38 exit            - 退出程序

    1) 使用type参数可以设置记录类型。

     2) 使用ls命令,可以列出一个域下面所有的域名。

    查询DNS: nslookup -type=ns XX.com

    查询邮件服务器: nslookup -type=mx XX.com

    在交互式shell中发现一个DNS服务器的域传送漏洞的过程:

    操作基本的步骤是:

    1) 输入nslookup命令进入交互式shell

    2) Server 命令参数设定查询将要使用的DNS服务器

    3) Ls命令列出某个域中的所有域名

    4) Exit命令退出程序

    以上示例了存在漏洞的DNS服务器,若是不存在漏洞的主机,则可能提示错误Query Refused:

    使用nmap扫描DNS域传送泄露漏洞

    使用nmap扫描器附带的脚本,可以扫描DNS服务器是否存在域传送漏洞。语法为:

    上述命令命令说明如下:

    1. nmap –script dns-zone-transfer表示加载nmap文件夹下的脚本文件dns-zone-transfer.nse,扩展名.nse可省略
    2. –script-args dns-zone-transfer.domain=zonetransfer.me向脚本传递参数,设置列出记录的域是nwpu.edu.cn
    3. -p 53设置扫描53端口
    4. -Pn设置通过Ping发现主机是否存活

    Dig命令

    dig来测试DNS服务器是否存在域传送泄露。Dig是一个非常强大的DNS查询工具,输入“dig -h”查看它的使用说明

    若将查询类型设定为axfr,就能得到域传送数据。这也是我们要用来测试DNS域传送泄露的命令:

    请注意,参数axfr后跟需要列出的域的名称。上面的例子是nwpu.edu.cn。只要命令输出中存在“XFR size”即代表该服务器存在漏洞。

    参考资料:

  • 相关阅读:
    jar强退出 JVM报错:Failed to write core dump. Core dumps have been disabled.
    配置 DHCP Snooping 和 IPSG
    OpenOffice
    RabbitMQ ADD
    YAPI 接口管理
    mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法
    修改端口的VLAN
    阿里云OSS设置跨域访问
    seata连接nacos 报错
    Linux登录超时问题
  • 原文地址:https://www.cnblogs.com/Risk2S/p/11460920.html
Copyright © 2011-2022 走看看