进行子域接管时,应你该问自己,影响是什么,我该如何证明?接管子域时尤其是如此project-cascade.visualstudio.com。
这一看,我们似乎无法通过继承这个子域来做很多事情,因为没有超级敏感的东西存在于* .visualstudio.com。但是,在更深入的研究中,我们能够利用信任边界,从而导致一键式帐户接管Azure DevOps帐户。
技术步骤
通过自动化,我们发现子域project-cascade.visualstudio.com容易受到Azure区域DNS接管的影响。
项目的NS记录-cascade.visualstudio.com正在指向“ Azure DNS”,但是它们不再在“ Azure DNS上注册”。这导致被拒绝,如下所示:
dns-takeover lookup project-cascade.visualstudio.com. on nameserver ns3-05.azure-dns.org status: [Refused]
dns-takeover lookup project-cascade.visualstudio.com. on nameserver ns2-05.azure-dns.net status: [Refused]
dns-takeover lookup project-cascade.visualstudio.com. on nameserver ns1-05.azure-dns.com status: [Refused]
dns-takeover lookup project-cascade.visualstudio.com. on nameserver ns4-05.azure-dns.info status: [Refused]
由于查询被拒绝,我们可以在我们拥有的Azure帐户下注册子域。通过创建,我们能够为子域项目创建任意DNS记录-cascade.visualstudio.com:
project-cascade.visualstudio.com注册为DNS区域的Azure控制台
从现在开始,我们记录了两个记录:
- TXT记录-txt.txt.project-cascade.visualstudio.com具有蓝色DNS区域接管POC(概念证明)的值
- 记录-arec.project-cascade.visualstudio.com具有3.88.203.203(我们的主机)的值
$ dig txt txt.project-cascade.visualstudio.com @1.1.1.1
...omitted for brevity...
;; ANSWER SECTION:
txt.project-cascade.visualstudio.com. 10 IN TXT "Azure DNS Zone Takeover POC"
$ dig a arec.project-cascade.visualstudio.com @1.1.1.1
...omitted for brevity...
;; ANSWER SECTION:
arec.project-cascade.visualstudio.com. 2475 IN A 3.88.203.203
那么,接下来呢?
既然我们已经成功地接管了子域,现在是时候调查安全影响了。
我们发现下面有子域visualstudio.com进行认证流程登录microsoftonline.com。
例如,访问app.vsssp.visualstudio.com,我们被重定向到:
https://app.vssps.visualstudio.com/_signin?realm=app.vsaex.visualstudio.com&reply_to=https%3A%2F%2Fapp.vsaex.visualstudio.com%2F&redirect=1&context=eyJodCI6MywiaGlkIjoiNDA0ODFkZDAtZDUzMS1hMWE2LWQ0MzYtMDQxN