• 聊聊:子域名枚举


    前言

    子域枚举是找到一个或多个子域的有效(解析的域名)过程。除非DNS服务器公开完整的DNS域列表(域传送漏洞),否则很难获取现有的子域列表。通常的做法是使用字典,尝试暴力破解发现。虽然这种方法在某些情况下很有效,但它不包括具有奇怪名称的子域名(如:thornsshitianxiadiyishuai.baidu.com)。另一种方法是抓取二级域以便查找子域的链接(更快的方法是直接使用搜索引擎)。

    子网枚举使网络信息收集阶段最重要的部分。攻击者收集完整的列表,在其找到弱点,例如访问内部网络。

    实例:

    完成子域名枚举后,攻击者将查找blog.example.com。并发现该博客正在使用Wordpress作为管理系统。攻击者运行wpscan以找到Wordpress漏洞。幸运的是,目标Wordpress实例使用了一个易受攻击的插件,攻击者可以利用它,获取对环境的访问权,进一步到内部网络离。这个例子可能有点夸张,但是,这是真实发生的事情。(https://www.wordfence.com/blog/2016/04/panama-papers-wordpress-email-connect)

    现在我们来介绍最流行的开源工具和技术,用来执行子域枚举。开始了:

    区域转移

    最简单和最基本技术是直接在DNS服务器上尝试AXFR请求:

    dig@ns.example.comexample=.comAXFR

    区域传输用于我主DNS服务器和辅助DNS服务器之间复制区域内容。最佳做法是建议管理员仅允许来自授权的DNS服务器发送AXFR请求。但如果成功,你就发现了金矿。

    GoogleDorking

    使用Google~!你可以使用各种运算符来优化搜索查询(我们也将这些查询称为“Googledorks”)。如前所述,可以使用抓取目标找到许多子域。Google或Bing这样的其他搜索引擎。

    site:example.com

    Rapid7DNS数据集

    Rapid7公开提供了正向DNS研究数据。DNS数据集指在发现Interner上发现的所有域。虽然他们做的很好,但这份清单绝对不完整。你可以在这里阅读更多关于如果编译这些数据集。下载最新的快照,我们可以运行jq来查询子域:

    zcatsnapshop.json.gz|

    jq-r'if(.name|test("\.example\.com$"))then.nameelseemptyend'

    jq测试以“.example.com结尾”的正则表达式,以查找数据集中的所有子域。

    DNSDumpster是一种免费的在线服务,正在使用这种技术。

    主题备用名称

    主题备用名称(SAN)是X.509证书中的扩展,以在一个证书中提供主题不同的名称。公司经常为多个子域生成一个证书以节省资金。

    我们可以查看证书以使用两种不同的来源寻找SAN中的子域。

    Censys.io

    Censys.io是scan.io发布的数据子集的接口。它允许在证书中搜索关键字,从而可能揭示新的子域:

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

    Crt.sh

    Crt.sh是由COMODO提供的证书在线搜索服务。它使用与Censys不同的数据集,但原则是一样的:在证书中找到子域。

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

    值得注意的是,尽管一些域名对NXDOMAIN做出了回应,但它们仍然可能存在于内部网络上。管理员有时会在内部网服务器上重用公用服务器的证书...

    Sublist3r

    用于子域枚举的最受欢迎的开源工具之一就是Sublist3r。它汇总了许多不同来源的输出,包括:

    谷歌

    Bing

    virustotal

    crt.sh

    ...

    数据在大多数情况下是正确的,但你可能会遇到不可解析的子域(使用NXDOMAIN响应的域)。这是因为Sublist3r很大程度上依赖于被动数据,并且不能验证发现的子域是否真的存在。

    Sublist3r还使用一个名为subbrute的独立项目。Subbrute正在使用通用子域名的字典,以便找到可解析的子域的子集。

    pythonsublist3r.py-dexample.com

    并将example.com的子域名列表提交给你。

    theHarvester

    另一个开放源代码的智能搜集工具,被称为Harsves,并在目标域以及子域和虚拟主机上找到电子邮件地址。但是,与Sublist3r相比,它提供了更少的子域结果。你可以使用以下命令运行Harvester:

    pythontheHarvester.py-dexample.com-ball

    SDBF

    子域枚举工具通常尝试常见子域列表。这种方法可以通过使用马尔科夫链来扩展,以便发现子域名结构(例如,您有www1,www2可能存在等等)。CynthiaWagner等人的研究论文更详细地解释了这一技术。SDBF产生的结果远远优于子域名的关键字枚举。

    结论

    定期检查是发现子域的最好做法。对目标进行频繁侦察将为你提供更大的可见性。

    被遗忘的子域名可以使你的环境和公司面临各种各样的威胁,如子域接管甚至完全妥协,如本博客开始时的示例所示。

  • 相关阅读:
    linux常用命令
    linux简介
    vmware+CentOs 6.9的安装步骤
    Android layer type与WebView白屏-第一次加载webview很慢
    Android View框架的measure机制
    maven的facet错误解决方法
    oracle jdbc驱动发布nexus
    dubbox2.8.4编译发布到私服(nexus)
    一致性哈希 与 普通哈希对比
    1对多业务,数据库水平切分架构一次搞定 | 架构师之路
  • 原文地址:https://www.cnblogs.com/ymwang/p/6769433.html
Copyright © 2020-2023  润新知