开卷有益 · 不求甚解
许多现代网站采用自动颁发和更新 TLS
证书。对于企业,有 DigiCert
服务。对于其他所有人,有免费服务,例如 Let's Encrypt
和 ZeroSSL
。
可能设置 TLS 证书部署的方式存在缺陷。它允许任何人发现同一服务器使用的所有域名。有时,即使那里没有 HTTPS!
在本文中,我将介绍一种用于发现域名的新技术。之后,我将展示如何在威胁情报、渗透测试和漏洞赏金中使用它。
证书透明度 (CT)
是一种 Internet 安全标准,用于监控和审核 TLS 证书的颁发。它创建了一个公共日志系统,旨在记录由公共信任的证书颁发机构 (CA) 颁发的所有证书。
通过 CT 日志搜索,通常使用Crt.sh或Censys服务。Censys 还将扫描结果中的证书添加到数据库中。
众所周知,通过查看 CT 日志,可以发现模糊的子域或发现具有可用 CMS 安装脚本的全新域。
还有更多。有时会在服务器上设置以下或等效配置:
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
此配置意味着同时更新所有主机域的证书。因此,通过对证书透明度的定时攻击,我们可以发现所有这些域!
让我们看看如何在实践中应用它!
一个月前,我尝试下载 dnSpy,发现了一个恶意 dnSpy 网站。我发送了几份滥用报告,并在短短 2 小时内将其屏蔽:
我发现了很多关于在线创建这个网站的威胁者的信息。例如,Bleeping Computer 中有一篇文章和Colin Cowie 的详细研究。
简而言之,一个人或一群人创建模仿合法网站的恶意网站。这些网站分发受感染的软件,包括商业和开源软件。受影响的软件包括但不限于 Burp Suite、Minecraft、Tor Browser、dnSpy、OBS Studio、CPU-Z、Notepad++、MinGW、Cygwin 和 XAMPP。
我不愿意忍受有人特洛伊木马为 OBS Studio 或 MinGW 等开源项目降温的事实,我决定自己动手。
我发送了 20 多份滥用报告,并且能够关闭威胁参与者的许多基础设施:
对我的推文的回复,说明还做了什么(见 Twitter)
面对这些威胁行为者并不容易。他们使用不同的帐户在不同的注册商处购买域名。接下来,他们为 Cloudflare 上的每个域使用一个单独的帐户,将所有流量代理到目标服务器。最后,他们会在网站上放置恶意内容之前等待一段时间,或者将其隐藏在长 URL 下。
Twitter 上已知一些由威胁参与者控制的域:cpu-z[.]org, gpu-z[.]org, blackhattools[.]net, obsproject[.]app, notepadd[.]net, codenote[.]org, minecraftfree[.]net, minecraft-java[.]com, apachefriends[.]co, ...
问题是如何发现其他域。其他域可能没有任何共同点,每个域都会引用 Cloudflare。
这就是我们对证书透明度的定时攻击发挥作用的地方。
cpu-z[.]net
让我们检查一下威胁参与者使用的已知域的证书之一:
检查域 cpu-z[.]net 的证书之一(请参阅 censys.io 上的此页面)
此证书的有效期开始字段等于2022-07-23 13:59:54。
因此,让我们利用parsed.validity.start过滤器来查找几秒钟后颁发的证书:
转义“:”字符很重要,否则过滤器将不起作用(请参阅 censys.io 上的此页面)
这里是!我们刚刚发现了一个以前不为人知的域!
让我们用这个域打开一个网站:
https://cr4cked[.]games/ 主页
这正是我们想要的!早些时候,我能够透露cpu-z[.]org
. 这个 IP 地址属于 Hawk Host,在我向他们报告滥用行为后,Hawk Host 上的所有威胁行为者的网站都开始显示这个确切的页面。
这证明我们发现了一个由相同威胁参与者管理的域。
几页后blazefiles[.]net
可以找到一个域,该域分发了受感染的 Adobe 产品。它还显示相同的 Hawk Host 页面。
威胁行为者在“Hackers Crowd”电报频道上放置了指向受感染 Adobe 产品的链接
这些威胁参与者使用的域更多,所以让我们继续。
威胁参与者通过 Plesk、cPanel 或 CyberPanel 等软件设置他们的网站。它会自动为所有网站颁发和更新受信任的证书,即使这些证书从来不需要。
如果我们搜索cpu-z[.]org
证书,我们会看到托管服务器颁发的一堆不需要的证书:
探索 crt.sh 上的 cpu-z[.]org 证书:https ://crt.sh/?q=%25.cpu-z.org
所有这些证书都可以从证书透明度日志中挖掘出来,并通过它们的时间戳与其他证书相关联。
大公司使用 DigiCert 服务自动颁发 TLS 证书。
DigiCert 证书的validity
字段不包含证书颁发的时间。其他一些证书颁发机构也是如此,例如 ZeroSSL。
DigiCert 证书示例
但是,如果我们查看 crt.sh 对透明度日志的表示,我们会发现同一公司拥有的证书的 crt.sh ID 可能非常接近:
探索 Twitter 的证书,该公司拥有最大的漏洞赏金计划之一
这意味着即使 CA 不包括证书的确切颁发时间,仍然可以发现同时颁发的证书。
此外,您可能会在日志中找到两种类型的证书:预证书和叶证书。如果您有权访问叶证书,则可以查看其中归档的签名证书时间戳 (SCT):
从叶证书获取时间戳的示例
SCT 字段始终包含时间戳,即使有效性字段中的时间为 00:00:00。
可能需要某种工具来帮助通过这种技术发现域。
可以使用的关联域的方法:
关于缓解,请定期检查您的域的 CT 日志。您不仅可以发现受 CT 攻击影响的域,还可以发现攻击您的基础设施的威胁参与者颁发的证书。
近期阅读文章
,质量尚可的,大部分较新,但也可能有老文章。开卷有益,不求甚解
,不需面面俱到,能学到一个小技巧就赚了。译文仅供参考
,具体内容表达以及含义, 以原文为准
(译文来自自动翻译)尽量阅读原文
。(点击原文跳转)每日早读
基本自动化发布(不定期删除),这是一项测试
最新动态: Follow Me
微信/微博:
red4blue
公众号/知乎:
blueteams