通过 DNS 重绑定的 SSRF 攻击内部云服务

首先,解释 DNS 重绑定(DNS Rebinding),以便让大家更清楚地理解其原理。

DNS 重绑定是一种特定的技术,通常用于绕过 同源策略(Same-Origin Policy)。攻击者会通过操控 DNS 解析过程,伪装自己的域名,使其解析到受害者的内网 IP(例如 127.0.0.1 或 192.168.x.x)或云服务地址。这样,攻击者便能利用此技术攻击目标网络,执行多种漏洞利用方式。

下面是一个简要的示意图,展示了 DNS 重绑定的工作原理,并说明了它在某些攻击场景中的实际应用。

img

让我简单解释一下,为什么我们要使用 DNS 重绑定。其主要目的是绕过网站的防火墙限制,因为每当我们尝试连接到云服务器的地址(169.254.169.254)时,防火墙都会对我们进行拦截。

正如下面的示意图所示,该技术可以帮助我们绕过这些安全机制,从而实现访问目标资源的目的。

img

正如所示,WAF(Web Application Firewall)对我的请求进行了拦截。
我尝试了许多绕过方法,但都没有成功,直到我在参数中使用了 DNS Rebinding。 为了测试这一技术,我们可以访问 此网站: https://lock.cmpxchg8b.com/rebinder.html。

img

在 A 处填写 localhost,然后在 B 处填写你尝试访问的内网地址。在我的情况下,我填写了 169.254.169.254,这是用于访问内部云服务(如 AWS 等)的地址。

然后回到参数位置,填写这个链接 http://7f000001.a9fea9fe.rbndr.us[1]。 刚开始测试时,服务器给了我一个响应。老实说,一开始我几乎放弃了,希望渺茫,觉得可能不会成功,但我还是决定试试。最终,它竟然奏效了!这就是挖掘漏洞的关键——尝试任何你能想到的可能性。

img

这表明我成功绕过了 WAF(Web 应用防火墙),但仍然没有得到预期的结果。

我成功绕过了 WAF,但仍然没有得到预期的结果。于是,我开始寻找可能存在于云服务器上的文件。首先尝试的是 AWS 相关文件,但没有找到任何有用的信息。

看到没有结果后,我决定尝试其他文件,希望能够发现云服务器上的敏感信息。最终,我找到了一个非常有帮助的页面:https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf。

我使用了这个页面提供的文件,并在 Burp Suite 中运行 Intruder,让它自动测试,看是否能返回任何有效的结果。

/latest/user-data/latest/user-data/iam/security-credentials/[ROLE NAME]/latest/meta-data/iam/security-credentials/[ROLE NAME]/latest/meta-data/ami-id/latest/meta-data/reservation-id/latest/meta-data/hostname/latest/meta-data/public-keys/0/openssh-key/latest/meta-data/public-keys/[ID]/openssh-key/latest/meta-data//computeMetadata/v1//computeMetadata/v1/instance/hostname/computeMetadata/v1/instance/id/computeMetadata/v1/project/project-id/computeMetadata/v1/instance/disks//computeMetadata/v1beta1//opc/v1/instance/metadata/v1.json/metadata/v1//metadata/v1/id/metadata/v1/user-data/metadata/v1/hostname/metadata/v1/region/metadata/v1/interfaces/public/0/ipv6/address/metadata/v1/maintenance/metadata/instance?api-version=2017-04-02/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-04-02&format=text/openstack/openstack/latest/openstack/latest/meta_data.json/2009-04-04/meta-data//latest//latest/attributes//latest/meta-data//latest/meta-data/instance-id/latest/meta-data/image-id

果然,最终得到了结果,下面将展示给大家:

img

这是 IBM 云服务器的结果。

img

这是 Oracle 云服务器的结果,我能够获得一些信息,比如 SSH 的公钥和存储在服务器中的电子邮件地址。

通过这种方式,我们成功绕过了现有的防护并找到了一个关键漏洞。我会写出步骤和我们所做的总结。

第一步:

使用像 rbndr.us[2] 这样的 DNS 重新绑定服务。 设置你的域名,使其最初指向 (localhost),然后指向你尝试访问的内部网络,在这种情况下为 (169.254.169.254)。

第二步:

使用你创建的域名发送请求,发送请求到 http://7f000001.a9fea9fe.rbndr.us/opc/v1/instance/metadata 一开始,可能会看到 (404) 错误,或者没有返回你预期的结果。

第三步:

在绕过了 WAF 防火墙后,使用 Burp Suite 中的 (Intruder) 搜索云服务网站的文件,就像在上面的路径中说明的那样。 尝试以下路径:​​​​​​​

/latest/user-data/latest/meta-data//computeMetadata/v1/

以及其他针对特定云服务器的路径,例如 (AWS 和 Oracle)。

第四步: 如果漏洞存在,你将从云服务器获得结果。例如,你可以获得敏感信息,如 SSH 公钥或存储在服务器中的电子邮件地址。请注意,如果你获得了 (AWS) 服务器,你将能够完全控制云服务器,并且在某些情况下可能会升级为 RCE。

这就是文章的结束部分,希望你们确实从中受益,如果你需要有关漏洞发现或对该漏洞的进一步说明,欢迎通过我的个人主页与我联系。如果有帮助,希望能为我祈祷。

References

[1] http://7f000001.a9fea9fe.rbndr.us: http://7f000001.a9fea9fe.rbndr.us/
[2] rbndr.us: https://lock.cmpxchg8b.com/rebinder.html

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值