【问题标题】:Kerberos Authentication with Burp Proxy使用 Burp 代理进行 Kerberos 身份验证
【发布时间】:2014-10-23 04:36:52
【问题描述】:

我正在尝试设置 Burp Suite,以便我可以篡改 HTTP 请求并对使用 Kerberos 进行身份验证的 .NET 应用程序运行安全漏洞扫描(即仅支持 Kerberos 的 Windows 集成身份验证)。为了在 IE 中正常访问应用程序,我使用凭据管理器将一组凭据添加到 Windows,然后在身份验证期间使用凭据。我设置了 Burp Suite,可以看到它们从浏览器传递的请求/响应,但是我无法篡改中继器/扫描器中的请求,因为 Burp Suite 不会自动更新授权标头。

我知道 Fiddler 支持 Kerberos,所以我的想法是将 Burp 链接到 Fiddler。我首先确保我可以在 Fiddler 中进行篡改(使用 this link 作为指导)。然后我将 Fiddler 设置为 Burp 的上游代理,但是当我在 Burp 中篡改请求时,在发出请求时仍然得到 401 Unauthorized。

关于如何让 Burp 进行 Kerberos 身份验证的任何其他想法?

【问题讨论】:

  • 是的,不幸的是它会将 401 发送回 Burp。

标签: proxy fiddler kerberos burp


【解决方案1】:

如果您使用 Fiddler 的 Rules > Automatically Authenticate 菜单选项,Fiddler 将使用当前用户的登录凭据使用 NTLM、Digest 或 Negotiate (Kerberos) 自动响应 HTTP/401 登录挑战。

如果站点的登录凭据不同,您需要这样做:

Rules > Customize Rules。滚动到OnBeforeRequest 方法。添加以下内容:

if (oSession.HostnameIs("targetsite.com"))
{
  // Don't forget to use a double \\ in the string below
  oSession["X-AutoAuth"] = "domain\\user:password";
}

Fiddler 将使用指定的domain\userpassword 来响应来自targetsite.comHTTP/401s。

【讨论】:

  • 再做一些修改就可以了。我按照你上面所说的做了,确保 Fiddler 设置为解密来自 Burp 的 HTTPS 流量(工具 - Fiddler 选项 - HTTPS - 解密来自所有进程的流量),然后我必须使用命令行选项 -Dsun.security 启动 Burp。 ssl.allowUnsafeRenegotiation=true。我还将 Fiddler 的证书添加到 java 的受信任证书中,但我不确定这是否真的有任何作用(请参阅 stackoverflow.com/questions/22569356/…)。
  • 好的,它只是部分工作,但至少它是一些东西。我正在开发的应用程序对多个域进行身份验证,显然 Burp 中的 SSL 出现了问题。我可以在 Burp 中向一个域发出请求,但是当我尝试向另一个域发出请求时,我收到“服务器证书更改在重新协商期间受到限制”错误。听起来像是一个 JVM 问题,但还不能确定它到底是什么
  • “服务器证书更改在重新协商期间受到限制”意味着服务器(或您的中介)正在为单个主机返回不同的证书。
  • 是的,也许是 fiddler,因为现在请求路径是 Burp(repeater) -> Fiddler -> App(a.app.tld、b.app.tld 等)。从 Burp 的一个实例中,我可以很好地点击 a.app.tld,但如果我尝试点击 b.app.tld,它会因重新协商错误而失败。但是如果我打开一个新的 Burp 实例,我可以点击 b.app.tld,但由于重新协商错误,我不能再点击 a.app.tld。
猜你喜欢
  • 2011-04-03
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多