NTLM认证失效时,如何使用Fiddler配合Burp Suite进行渗透测试?

愣娃 技术 2017年5月17日发布
Favorite收藏

导语:最近,我们测试一个具有NTLM身份验证的Web应用程序。身份验证与任何浏览器正常工作,但在中间插入Burp Suite(已配置NTLM)时失败。

最近,我们测试一个具有NTLM身份验证的Web应用程序。身份验证与任何浏览器正常工作,但在中间插入Burp Suite(已配置NTLM)时失败。

通过WireShark抓包,我们发现了以下的情况

在Burp Suite身份验证中,某些NTLM头缺失,其他一些选项也不同,如图所示。

我试图找到一个解决方法,发现了FiddlerFiddler与Microsoft身份验证协议集成比较完美。使用Wireshark进行抓包,我们可以看到Fiddler进行的身份验证。

默认情况下,Fiddler听8888端口并提供一些相当于Burp Suite中Interceptor和Repeater的功能,但是用于渗透测试,它远远不如Burp Suite。所以,我们把Fiddler与Burp Suite连在一起:

在Burp Suite中,我们必须将Fiddler设置为上游代理(User Options -> Connections -> Upstream Proxy Server),并删除NTLM身份验证(因为我们使用Fiddler)。此外,我们必须从option from Proxy -> Options -> Miscellaneous,因为NTLM使用此选项对每个TCP连接进行身份验证,服务器将在验证所需的第一个NTLM请求(三个)之后关闭连接

在Fiddler中,我们必须配置NTLM身份验证。在“规则”菜单中标记“自动验证”,然后从同一菜单中选择“自定义规则”。在弹出的配置文件中添加“OnPeekAtResponseHeaders”部分以下文本(具有正确的NTLM凭据):

 if ((oSession.responseCode == 401) &&  oSession.host.EndsWith(".web.site.url.address")) {
 oSession["X-AutoAuth"] = "domainusername:password";
 oSession["ui-backcolor"] = "pink";
}

就这样!通过Burp Suite中的配置,我们只能看到已验证的请求,而在Fiddler中,我们也有用于NTLM身份验证的请求。下图是Fiddler中正确的NTLM身份验证流程(由三个请求组成)的示例

Fiddler也可以与Kerberos身份验证一起使用,Burp Suite实际上不支持。如果你测试应用程序正在使用这种类型的身份验证,您还可以尝试"NCC Group Plc"发布的Burp Suite插件Berserko

我们向PortSwigger团队报告了NTLM头部的问题,但是我们不知道该问题何时被解决。在此期间,使用Fiddler是个不错的解决办法!

如若转载,请注明原文地址: http://www.4hou.com/technology/4797.html
点赞 0
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

    大空之巅 2017-05-18 09:04

    翻译文章建议注明原文地址:https://techblog.mediaservice.net/2017/05/fiddler-ntlm-authentication-when-burp-suite-fails/

    天海 春香 2017-05-17 14:26

    挺有用的,好评