使用 sslstrip+ 和 dns2proxy 绕过 HSTS

Nik*_*asg 5 ssl https http man-in-the-middle hsts

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

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

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

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

示例:从服务器响应中,客户端必须下载 mail.google.com。攻击者将其更改为 gmail.google.com,因此它不是相同的(子)域。然后客户端会向这个域发起 DNS 请求,dns2proxy 会回复 mail.google.com 的真实 IP。然后客户端将通过 HTTP 简单地询问这个资源。

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

少了一块... :s

谢谢

Nik*_*asg 4

好吧,看完视频后,我对 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。

干杯!