DNS重绑定


文档摘要

DNS 重绑定 DNS 重绑定会将攻击者控制的主机名的 IP 地址更改为目标应用程序的 IP 地址,从而绕过 同源策略,使浏览器能够向目标应用程序发送任意请求并读取其响应。 摘要 工具 方法论 防护绕过 0.0.0.0 CNAME localhost 参考文献 工具 nccgroup/singularity - 一个用于 DNS 重绑定攻击的框架。 rebind.it - Singularity of Origin 的 Web 客户端。 taviso/rbndr - 一个简单的 DNS 重绑定服务。 taviso/rebinder - rbndr 工具辅助程序。 方法论 设置阶段: 注册一个恶意域名(例如 )。 配置一个自定义 DNS 服务器,使其能够将 解析为不同的 IP 地址。

DNS 重绑定

DNS 重绑定会将攻击者控制的主机名的 IP 地址更改为目标应用程序的 IP 地址,从而绕过 同源策略,使浏览器能够向目标应用程序发送任意请求并读取其响应。

摘要

工具

方法论

设置阶段

  • 注册一个恶意域名(例如 malicious.com)。
  • 配置一个自定义 DNS 服务器,使其能够将 malicious.com 解析为不同的 IP 地址。

受害者首次交互

  • malicious.com 上创建一个包含恶意 JavaScript 或其他漏洞利用机制的网页。
  • 诱使受害者访问该恶意网页(例如通过网络钓鱼、社会工程或广告)。

初始 DNS 解析

  • 当受害者的浏览器访问 malicious.com 时,它会向攻击者的 DNS 服务器查询该域名的 IP 地址。
  • DNS 服务器将 malicious.com 解析为一个初始的、看似合法的 IP 地址(例如 203.0.113.1)。

重绑定到内部 IP

  • 在浏览器发出初始请求之后,攻击者的 DNS 服务器会将 malicious.com 的解析更新为一个私有或内部 IP 地址(例如 192.168.1.1,对应受害者的路由器或其他内部设备)。

这通常通过为初始 DNS 响应设置非常短的 TTL(生存时间)来实现,迫使浏览器重新解析该域名。

同源策略利用

浏览器会将后续响应视为来自同一源(malicious.com)。

运行在受害者浏览器中的恶意 JavaScript 现在可以向内部 IP 地址或本地服务(例如 192.168.1.1 或 127.0.0.1)发送请求,从而绕过同源策略的限制。

示例

  1. 注册一个域名。
  2. 设置 Singularity of Origin
  3. 根据需要编辑 autoattack HTML 页面
  4. 浏览到 http://rebinder.your.domain:8080/autoattack.html
  5. 等待攻击完成(可能需要几秒或几分钟)。

防护绕过

大多数 DNS 防护以在 DNS 响应进入内部网络时,在边界处阻止包含不受欢迎 IP 地址的 DNS 响应的形式实现。最常见的防护形式是阻止 RFC 1918 中定义的私有 IP 地址(即 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)。某些工具还允许额外阻止 localhost(127.0.0.0/8)、本地(内部)网络,或 0.0.0.0/0 网络范围。

在启用了 DNS 防护的情况下(通常默认禁用),NCC Group 记录了多种可用于绕过 DNS 防护的 DNS 防护绕过方法

0.0.0.0

我们可以使用 IP 地址 0.0.0.0 来访问 localhost(127.0.0.1),从而绕过那些阻止包含 127.0.0.1 或 127.0.0.0/8 的 DNS 响应的过滤器。

CNAME

我们可以使用 DNS CNAME 记录来绕过阻止所有内部 IP 地址的 DNS 防护解决方案。
由于我们的响应只会返回一个内部服务器的 CNAME,
因此不会应用过滤内部 IP 地址的规则。
随后,本地的内部 DNS 服务器会解析该 CNAME。

$ dig cname.example.com +noall +answer ; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> example.com +noall +answer ;; global options: +cmd cname.example.com. 381 IN CNAME target.local.

localhost

我们可以将 "localhost" 作为 DNS CNAME 记录来绕过那些阻止包含 127.0.0.1 的 DNS 响应的过滤器。

$ dig www.example.com +noall +answer ; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> example.com +noall +answer ;; global options: +cmd localhost.example.com. 381 IN CNAME localhost.

参考文献

免责声明
本文件由基于人工智能的机器翻译服务翻译而成。尽管我们力求翻译准确,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言版本的文件为准。对于关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


发布者: 作者: 转发
评论区 (0)
U