专栏首页FreeBuf子域名枚举的艺术

子域名枚举的艺术

写在前面的话

当我们在查找某个域名的有效子域名时,我们通常需要使用子域名枚举这项技术。但是,除非DNS服务器暴露了完整的DNS空间(涉及到AXFR协议),否则我们真的很难拿到目标域名的子域名列表。

目前主要的技术是使用一个常用域名的字典,并通过对每一个域名尝试进行解析来查找子域名。虽然这种方法在某些情况下非常有效,但是对于那些名字非常奇怪或罕见的域名来说,这种方法就没多大用了。另一种方法就是利用网络爬虫来爬取二级域名,并尝试搜索出子域名的链接地址。当然了,还有一种更加快速的方法,即直接使用搜索引擎。

子域名枚举是网络侦查阶段的一个重要组成部分,在进行攻击之前,网络攻击者需要映射出目标网络的整体结构,并尝试找出一个薄弱点来访问服务器所在的内部网络。

举例说明

在完成了子域名枚举这一过程之后,攻击者在目标DNS空间中找到了下面这个子域名:blog.example.com。攻击者在对Web应用层进行了深度分析之后发现,这个博客使用了Wordpress来作为内容管理系统。那么接下来,攻击者就可以使用wpscan来扫描Wordpress漏洞了。幸运的是,目标网络的Wordpress实例使用了一个存在漏洞的插件,而攻击者可以利用这个插件漏洞来访问目标服务器和内部网络。虽然这个例子听起来有些夸张,但这是一个出现在巴拿马文件中的真实例子。

接下来,我们会给大家介绍几款目前最流行的开源子域名枚举工具以及相关技术。

DNS域传送技术

最简单且最基础的技术就是直接向DNS服务器发送AXFR请求:

dig @ns.example.com example=.com AXFR

DNS域传送技术可以帮我们拷贝主DNS服务器和二级DNS服务器的内容。因此,我们建议各位网络管理员禁止服务器接收来自未认证DNS服务器的AXFR请求,这样就可以防止这种攻击技术了。

注:与DNS域传送技术类似的一项技术名叫NSEC攻击,而这种技术可以枚举出DNSSEC签名空间。

Google

是时候让Google登场了!没错,我们可以使用各种各样的操作符来优化我们的搜索语句。正如之前所述,我们可以使用网络爬虫来爬取目标站点的子域名,而Google和Bing这样的搜索引擎同样可以帮助我们实现这个目标。我们可以使用“site”操作符来寻找目标站点的子域名:

site:example.com

Rapid7 DNS数据集

Rapid7在scans.io库中对外提供了一个DNS学习数据集,这个DNS数据集旨在帮助我们查找到互联网中的所有域名,但实际上这个列表并不完整。下载完最新版本的快照之后,你可以通过“jq”命令来搜索子域名【参考资料】:

zcat snapshop.json.gz | jq -r 'if (.name | test("\\.example\\.com$")) then.name else empty end'

“jq”命令会根据正则表达式“ending with .example.com”来匹配并查找数据集中所有符合条件的子域名。值得一提的是,免费在线服务DNSDumpster同样使用了这种技术。

Censys.io

Censys.io是scans.io所发布的数据子集的访问接口,它可以通过证书中的关键字来进行搜索,而这通常会帮助我们搜索出新的子域名:

https://censys.io/certificates?q=.example.com

Crt.sh

Crt.sh是COMODO提供的一个在线服务,它同样可以完成证书搜索任务。虽然它所使用的数据集与Censys不同,但两者的核心思想是一样的:即利用证书信息来查找子域名。

https://crt.sh/?q=%25.example.com

需要注意的是,也许有的查询结果为“NXDOMAIN”,而这些域名很有可能存在于目标的内部网络系统中,因为管理员有的时候会利用这些公共服务器的证书来设置内部网络服务器。

Sublist3r

对于子域名枚举来说,目前最热门的开源工具当属Sublist3r了。它可以从多个源中获取查询的输出结果。例如:

-Google-Bing-Virustotal-crt.sh-...

虽然绝大多数情况下它所返回的数据都是正确的,但你有可能会遇到一些无法解析的子域名(例如响应为“NXDOMAIN”的域名)。这是因为Sublist3r会最大程度地查询可能存在的子域名,而不会去验证这些域名是否真实存在。

Sublist3r还使用了一个名叫subbrute的独立项目,而Subbrute使用了一个常用子域名字典,并通过这个字典来找出可以正常解析的子域名集合。

使用方法如下:

python sublist3r.py -d example.com

运行之后,系统将会显示出example.com的所有子域名。

theHarvester

这里要介绍的另一款开源情报收集工具就是theHarvester,它可以寻找出与目标域名有关的电子邮箱地址、子域名和虚拟主机。但是与Sublist3r相比,它所能提供的子域名查询结果十分有限。

使用命令如下

python theHarvester.py -d example.com -b all

Smart DNS Brute-Forcer (SDBF)

子域名枚举工具中通常都包含有一个需要进行尝试解析的常见子域名列表,而我们可以利用马尔可夫链的知识来扩展这种技术。例如当你查找到了www1之后,也许www2也会存在,以此类推。这篇研究论文对这项技术进行了非常详细的介绍,而SDBF的查询结果要比简单的关键字枚举技术丰富得多。

总结

下面这张图片显示的是我们使用各种工具对whitehoust.gov所进行的子域名枚举结果,数据收集与2017年4月24日。

本文所介绍的这些工具和技术不仅是攻击者需要学习的,而且网站管理员同样应该好好看一看。因为对于网站管理员来说,只有通过定期检查才能确定哪些子域名已经暴露在了攻击者的视线范围之内。换句话说,对自己的网络环境进行定期的网络侦查将会给你提供更大的安全可见度。

除此之外,那些被遗忘的子域名很可能会成为攻击者的切入点,而这些子域名也会让你的网站面临子域名接管等威胁,有时甚至还会让企业的整个网络被非法入侵。

本文分享自微信公众号 - FreeBuf(freebuf),作者:Alpha_h4ck

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DGA域名检测的数据分析与深度学习分类

    在恶意软件发展的初期,恶意软件编写者会直接将控制服务器的域名或IP直接写在恶意软件中(即使是现在也会有恶意软件遵从这种方式,笔者部署的蜜罐捕获的僵尸网络样本中,...

    FB客服
  • 域名阴影(Domain Shadowing)技术:知名钓鱼攻击工具包Angler Exploit Kit又添杀招

    臭名昭著的钓鱼工具包Angler Exploit Kit最近更新了许多漏洞利用工具(含0day),以及一项名为“域名阴影(Domain Shadowing)”的...

    FB客服
  • 自动化沙箱打造之“关于XShell我有话说”

    最近XShell很是火了一把,每个安全厂商都在发通告,都在分析,反正就是百花齐放,在这里我想做一个总结,从前些时间的勒索软件到今天的xshell,其实我们可以看...

    FB客服
  • 【前端性能】浅谈域名发散与域名收敛

    Sb_Coco
  • 小白搭建博客教程-购买域名(1)

    2016-06-0923:38:55 发表评论 438℃热度 上一回说道:小白搭建博客教程之流程,这次趁着端午节写完它,也算是一个了结。 ? 教程有4篇: 购...

    timhbw
  • 世间竟有如此一本万利的好事?

    在我们“洪声十问”的第一期《吴洪声对话易名中国CEO金小刚》,当被问到关于域名有意思的事情的时候,金小刚说:"曾经有一个朋友打算创业,一开始给公司买了域名,这...

    腾讯云DNSPod团队
  • 吴洪声十问戴跃: 域名圈"巴菲特"是如何炼成的?

    ? 问答时间:2020年5月27日 主持人简介: 吴洪声(人称:奶罩),腾讯云中小企业产品中心总经理,DNSPod创始人,洋葱令牌创始人,网络安全专家,域名...

    腾讯云DNSPod团队
  • 白金域名你了解多少?

    白金域名也叫溢价域名,是注册局根据ICANN规定,在开放注册后可以保留一定时间再开放的精品高价域名。       从投资角度来说,白金域名是一类具有一定升值潜...

    腾讯云DNSPod团队
  • 一个域名对网站的价值分析

    雨尘
  • 官方带你薅红红火火的羊毛

    1元秒杀 人气来袭! 1元秒杀,高人气域名。 限时限量,手慢别哭。 TOP域名有个性,买一个助你登顶 ? 热卖域名 红红火火 优质域名,惊喜折扣 适合多行业多...

    腾讯云DNSPod团队

扫码关注云+社区

领取腾讯云代金券