注册忘记密码

黑客论坛,黑客工具,黑客教程,QQ技术,黑客基地,黑客网络,黑客软件,黑客联盟,免杀,远控,ddos,cc,黑客攻防,黑客编程,黑客定位,手机定位,微信定位,hack,黑客网站,查开房,定位,信息查询

查看: 4129|回复: 0

[技术文章] 子域接管指南

[复制链接]
   0 UID
   0帖子
   0精华
21
   0威望
500
   0金币
47826
   0贡献
5000
   0阅读权限
   200
   积分
   0
   在线时间
   705 小时
   最后登录
   2021-4-6
发表于 2021-4-5 23:59:44 | 显示全部楼层 |阅读模式
黑客软件,黑客联盟,免杀,远控,ddos,cc,黑客攻防的Hacktivity提要-公开披露的报告的精选提要-已看到其在子域收购报告中的应有份额。自从Detectify关于子域接管的精彩系列文章以来,漏洞赏金行业已迅速收到有关此类问题的报告。子域接管的基本前提是主机指向当前未使用的特定服务,攻击者可以通过在第三方服务上建立帐户来使用该服务来为易受攻击的子域提供内容。作为黑客和安全分析师,我每天都处理此类问题。我今天的目标是创建一个总体指南,以了解,查找,利用和报告子域错误配置。本文假定读者对以下内容有基本的了解:域名系统(DNS),并且知道如何设置子域。

子域接管简介
如果您之前从未执行过子域接管,或者想进行全新的介绍,那么我设计了一个示例方案来帮助您解释基础知识。对于这种情况,让我们假设这example.com是目标,并且运行团队example.com具有错误赏金计划。在枚举所有属于该子域的子域时example.com(我们将在以后进行探讨),黑客偶然发现subdomain.example.com了一个子域,该子域指向GitHub页面。我们可以通过查看子域的DNS记录来确定这一点;在此示例中,subdomain.example.com有多个A记录指向GitHub自定义页面的专用IP地址。
$ host subdomain.example.com
subdomain.example.com地址为192.30.252.153
subdomain.example.com地址为192.30.252.154
$ whois 192.30.252.153 | grep“ OrgName”组织名称
:GitHub,Inc.
导航至时subdomain.example.com,我们发现以下404错误页面。

404
在这一点上,大多数黑客的意识开始发麻。该404页面指示顶级目录下未提供任何内容,我们应尝试将此子域添加到我们的个人GitHub存储库中。请注意,这并不表示可以在所有应用程序上进行接管。某些应用程序类型要求您同时检查HTTP和HTTPS响应是否进行接管,而其他应用程序可能根本不容易受到攻击。

的github
一旦将自定义子域添加到我们的GitHub项目中,我们就可以看到存储库的内容已被提供subdomain.example.com-我们已经成功声明了该子域。为了演示起见,索引页面现在显示青蛙的图片。

青蛙

二阶子域接管
二阶子域接管,我想称为“断开的链接劫持”“是易受攻击的子域,这些子域不一定属于目标,而是用于在目标网站上提供内容。这意味着资源正在例如通过Blob JavaScript导入到目标页面上,黑客可以声称入侵者可以在目标页面上加载任意客户端代码,因此劫持页面上某处使用的主机最终会导致存储跨站点脚本,这是我想要的原因。在本指南中列出此问题的目的在于强调以下事实:作为黑客,我不想仅将自己限制在目标主机上的子域中,您可以通过检查源代码并映射所有主机来轻松扩展范围目标所依赖的。

资源

这也是为什么如果您要劫持子域,值得花时间看看是否有任何页面从子域导入资产的原因。

子域枚举和发现
现在,我们已对在配置错误的子域上提供内容所需的内容进行了高级概述,下一步是掌握用于查找易受攻击的子域的各种技术,技巧和工具。

在继续学习之前,我们必须首先区分抓取和强行使用,因为这两个过程都可以帮助您发现子域,但可能会有不同的结果。爬取是一种被动的侦察技术,通过该技术,人们可以使用外部服务和源来收集属于特定主机的子域。某些服务(例如DNS Dumpster和VirusTotal)对过去已爬网的子域进行索引,使您无需费力即可快速收集和排序结果。

主机

属于reddit.comDNS Dumpster上的子域的结果。

爬网不仅包括使用索引页,还记得检查目标的GIT存储库,内容安全策略标头,源代码,问题跟踪器等。源列表无穷无尽,并且我不断发现增加结果的新方法。通常,您会发现自己的技术越独特,最终发现其他人从未遇到过的事情的可能性就越大。因此,要有创造力,并在实践中针对漏洞披露程序测试您的想法。

Ahmed Aboul-Ela的Sublist3r可以说是想到的最简单的子域抓取工具。这个轻量级的Python脚本从众多搜索引擎,SSL证书以及诸如DNS Dumpster之类的网站中收集子域。我的个人计算机上的设置过程非常简单:
$ git clone https://github.com/aboul3la/Sublist3r.git
$ cd Sublist3r
$ sudo pip安装-r requirements.txt
子列表

在强行强制子域时,黑客会遍历单词列表,并根据响应确定主机是否有效。请注意,始终检查目标是否启用了通配符非常重要,否则您将得到很多错误的肯定结果。通配符只是意味着所有子域都将返回使您的结果倾斜的响应。您可以通过请求目标可能未设置的看似随机的主机名来轻松检测通配符。
$主机randomifje8z193hf8jafvh7g4q79gh274.example.com


为了在强行强制子域时获得最佳结果,我建议使用您过去遇到过的术语或通常与您感兴趣的服务相关的术语来创建自己的个人字词列表。例如,我经常发现自己正在寻找包含以下内容的主机关键字“ jira”和“ git”,因为有时我会发现易受攻击的Atlassian Jira和GIT实例。

如果您打算使用强力子域,我强烈建议您看一看Jason Haddix的单词列表。杰森费尽心思将列表从子域发现工具合并到一个广泛的列表中。

指纹识别
为了增加查找子域的结果,无论您是在抓取还是在强行使用,都可以使用一种称为指纹识别的技术。指纹允许您为目标创建自定义单词列表,并可以揭示使用通用单词列表找不到的属于目标的资产。

著名的工具
有很多用于子域接管的工具。本节包含一些到目前为止尚未提及的重要内容。

Altdns
为了递归蛮力子域,请看一下Shubham Shah的Altdns脚本。通过Altdns对目标进行指纹识别后,运行自定义单词列表可能会非常有益。我喜欢使用Altdns生成单词列表,然后通过其他工具运行。

普通话
Shubham的另一个工具Commonspeak是使用Google的BigQuery生成单词列表的工具。目的是生成反映当前趋势的单词列表,这在当今技术日新月异的时代尤其重要。如果您想更好地了解此工具的工作方式以及从何处收集关键字,则值得阅读https://pentester.io/commonspeak-bigquery-wordlists/。

子查找器
SubFinder是将刮擦和蛮力完美结合的工具。现在,我发现自己使用SubFinder比使用Sublist3r更为广泛,这是我的通用子域发现工具。为了获得更好的结果,请确保包括SubFinder刮擦以查找子域的各种服务的API密钥。

Massdns
Massdns是一种快速的子域枚举工具。使用某些工具可能需要一刻钟才能完成,Massdns可以在一分钟内完成。请注意,如果您打算运行Massdns,请确保为其提供有效解析器列表。看一看https://public-dns.info/nameservers.txt,与解析器一起玩,看看哪个返回最佳结果。如果不更新解析器列表,则最终会出现许多错误的肯定结果。
$ ./scripts/subbrute.py list / names.txt example.com | ./bin/massdns -r列表/resolvers.txt -t A -o S -w结果.txt

自动化您的工作流程
寻找子域接管时,自动化是关键。排名靠前的漏洞赏金猎人会不断监控目标的变化,并持续关注他们可以找到的每个子域。对于本指南,我认为没有必要专注于监视设置。相反,我想坚持一些简单的技巧,这些技巧可以节省您的时间并且可以轻松地实现自动化。

我喜欢自动化的第一个任务是从主机列表中过滤掉实时子域。抓取子域时,某些结果将过时且不再可及;因此,我们需要确定哪些主机处于活动状态。请记住,正如我们稍后将看到的那样,仅仅是因为主机无法解析,并不一定意味着它不能被劫持。使用host命令可以轻松完成此任务-不再活动的子域将返回错误。
而读取子域;
如果主机“ $ subdomain”> / dev / null,该怎么办;然后
#如果主机处于活动状态,则将其打印到
#名为“ live.txt”的文件中。
回声“ $ subdomain” >> live.txt
文件已
完成<subdomain-list.txt
因此,如果我们将到目前为止的所有内容放到一起,那么我们将得到以下工作流程。

工作流程
下一步是获得各个子域的概述。有两种选择:第一种是在所有子域中运行一个截图脚本;第二个要求将页面的内容存储在一个文本文件中。

对于截图,我目前使用的工具是EyeWitness。该工具会生成一个HTML文档,其中包含主机列表中的所有屏幕截图,响应正文和标头。
$ ./EyeWitness -f live.txt -d out --headless
在某些情况下,EyeWitness可能会有些沉重,您可能只想通过一个简单的GET请求将页面的内容存储到子域的顶级目录中。对于此类情况,我使用汤姆·哈德森(Tom Hudson)的方法。meg同时发送请求,然后将输出存储到纯文本文件中。这使它成为用于筛选子域的非常有效和轻量级的解决方案,并允许您grep输入关键字。
$ meg -d 10 -c 200 / live.txt
工作流程

特别案例
我们需要注意一种特殊情况,弗朗斯·罗森(FransRosén)在他的演讲“使用云提供商进行DNS劫持–无需验证”中强调了一种特殊情况。每当遇到无效的DNS记录时,不要仅仅假设您无法劫持该子域。正如Frans指出的那样,该host命令可能会返回错误,但是运行dig将揭露失效的记录。

开发
正确,现在您控制了一个属于目标的子域,下一步该怎么做?在确定子域配置错误的合理攻击场景时,至关重要的是要了解该子域如何与基本名称和目标的核心服务进行交互。

饼干
subdomain.example.com可以修改范围为的Cookie example.com。要记住这一点很重要,因为这有可能使您劫持受害人基于基本名称的会话。

发表回复

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则


快速回复 返回顶部 返回列表