【问题标题】:HSTS bypass with sslstrip+ & dns2proxy使用 sslstrip+ 和 dns2proxy 绕过 HSTS
【发布时间】:2015-03-31 06:03:55
【问题描述】:

我正在尝试了解如何绕过 HSTS 保护。我读过 LeonardoNve 的工具(https://github.com/LeonardoNve/sslstrip2https://github.com/LeonardoNve/dns2proxy)。但我完全不明白。

  • 如果客户端是第一次请求服务器,它会随时工作,因为 sslstrip 会简单地剥离 Strict-Transport-Security: 头字段。所以我们又回到了原来的 sslstrip 的旧案例中。

  • 如果不是……?怎么了 ?客户端知道它应该只使用 HTTPS 与服务器交互,所以它会自动尝试使用 HTTPS 连接到服务器,不是吗?在那种情况下,MitM 是没用的……>

查看代码,我有点明白 sslstrip2 会更改客户端所需资源的域名,因此客户端不必使用 HSTS,因为这些资源不在同一个域上(是真的吗?) .客户端将发送一个 DNS 请求,dns2proxy 工具将拦截并返回真实域名的 IP 地址。最后,客户端将 HTTP 应该以 HTTPS 方式完成的资源。

示例:从服务器响应中,客户端必须下载 mail.google.com。攻击者将其更改为 gmail.google.com,因此它不是同一个(子)域。然后客户端将对该域进行 DNS 请求,dns2proxy 将使用 mail.google.com 的真实 IP 进行响应。然后,客户端将简单地通过 HTTP 请求此资源。

在那之前我没有得到什么......攻击者如何在从客户端到服务器的连接应该是HTTPS的情况下进行html-strip......?

缺少一块……:s

谢谢

【问题讨论】:

    标签: http ssl https man-in-the-middle hsts


    【解决方案1】:

    好的,看完视频后,我对 dns2proxy 工具的作用范围有了更深入的了解。 据我了解:

    • 大多数用户会通过单击链接或重定向来访问 HTTPS 页面。如果用户直接获取 HTTPS 版本,则攻击失败,因为我们无法在没有服务器证书的情况下解密流量。
    • 在重定向或链接的情况下,启用了 sslstrip++ + dns2proxy,我们处于连接中间.. mitm ! ==>
      • 用户访问 google.com
      • 攻击者拦截从服务器到客户端的流量,并将登录链接从“https://account.google.com”更改为“http://compte.google.com”。
      • 用户浏览器将向“compte.google.com”发出 DNS 请求。
      • 攻击者拦截请求,向真实名称“account.google.com”发起真实DNS请求,并将响应“假域名+真实IP”返回给用户。
      • 当浏览器收到 DNS 应答时,它会搜索该域是否应该通过 HTTPS 访问。通过检查域的预加载 HSTS 列表,或者通过查看缓存中或会话中已经访问过的域,不知道。由于域不是真实的,浏览器将简单地使用真实地址 ip 进行 HTTP 连接。 ==> 最后是 HTTP 流量 ;)

    所以真正的限制仍然是需要间接 HTTPS 链接才能正常工作。有时浏览器会直接“重新键入”输入到 HTTPS 链接的 url。

    干杯!

    【讨论】:

    • 另一个严重的问题是缓存 301 重定向。当用户键入target.com 时,浏览器会尝试查询http://target.com,然后通过旧的缓存301 重定向(在第一次访问时保存)离线重定向到https://www.target.com,并且此缓存没有到期日期。因此,唯一可能的解决方案是手动清理受害者计算机上的缓存。检查我的Bypassing HTTP to HTTPS cached 301 redirect to use SSLstrip 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2015-07-02
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多