当前位置 主页 > 本站WEB程序 > 安全 > IIS7网站监控 >

    域名劫持漏洞 子域名劫持漏洞解析

    栏目:IIS7网站监控 时间:2020-12-02 10:57

    一、CNAME解析

    CNAME解析是子域名劫持漏洞的关键因素,因此这里我们先简单说一下。我们知道域名解析是由DNS协议完成的,包含了多种记录类型,比如其中的A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录;NS记录,解析服务器记录,用来表明由哪台服务器对该域名进行解析;而CNAME记录通常也叫别名记录,是一种将一个域名映射到另一个域名的记录。
    换句话说,CNAME像是一个域名到另一个域名的解析。如下图所示,是一个域名解析的过程,第3步通过CNAME记录找到了另外的域名,第5步找到了实际的ip地址,最后在第7/8步完成了访问。

    二、子域名劫持原理

         这里先假设一个场景,你申请了一个域名abc.com,那么主站的域名当然www.abc.com
         之后为了快速开辟一个新的业务,你直接在阿里云上购买了相应的服务,阿里云分配了你一个二级域名shop.aliyun.com,虽然这个阿里云的二级域名是你独有的,但是你肯定仍然希望能使用自己的域名。这个时候CNAME解析就排上用场了,如下所示,这时候用户只需要访问你的shop.abc.com域名即会解析到shop.aliyun.com上。

    三、漏洞利用

         子域名劫持可以构造多种利用方式,以如下两种为例。

         1、网页钓鱼

         由于用户对shop.abc.com的访问会解析到攻击者控制的shop.aliyun.com,那么攻击者就可以构造特定的页面诱导用户操作,比如登陆表单、密码表单等,由于浏览器显示的是正常的可信的域名,就算有安全意识的用户也难以分别是否存在钓鱼。

         2、Cookie操纵

         Cookie是用户权限的凭证,一般也会拥有一个特定的作用域。但是现在很多网站使用单点登陆(SSO),那么Cookie就可能是在整个域共享的,当然也包括shop.abc.com,那么攻击者只需要诱导攻击者访问存在漏洞子域名,即可在后台接受到用户的Cookie。
         一个典型的例子:https://hackerone.com/reports/172137

    四、漏洞检测

         一种是用nslookup手动检测,这是上一个例子里的截图,可以看到ping.ubnt.com解析到了d2cnv2pop2xy4v.cloudfront.net,这是亚马逊的云服务。(nslookup是一个程序的名字,这个程序让因特网服务器管理员或任何的计算机用户输入一个主机名(举例来说,“whatis.com.cn”)并发现相应的IP地址。它也会相反的名字查找为一个你指定的 IP 住址找出主机名。)

         另一种是使用工具,一个较好的工具aquatone,它本身是一个强大的子域名扫描工具,结合了搜索引擎、各大API接口以及爆破等多种手段,它本身还支持其他额外的功能,详情可以参见http://michenriksen.com/blog/aquatone-tool-for-domain-flyovers/。检测之前首先要进行子域名探测,一些API接口需要自己配置APIKey。(kalinux直接使用gem install aquatone进行安装即可)

         探测完成后会生成两个文件,后续其他功能的调用主要依赖hosts.json文件

         下图使用aquatone-takeover进行子域名劫持探测

    五、漏洞防护

         防范子域名劫持的最直接的方法就是删除多余的DNS的相关记录,这种情况就是本方也不在使用相关云服务了;另一种方法就是保持对域名的所有权,避免被攻击者恶意申请。