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

本文讲的是NTLM认证失效时,如何使用Fiddler配合Burp Suite进行渗透测试?,最近,我们测试一个具有NTLM身份验证的Web应用程序。身份验证与任何浏览器正常工作,但在中间插入Burp Suite(已配置NTLM)时失败。

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

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

我试图找到一个解决方法,发现了Fiddler,Fiddler与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是个不错的解决办法!

原文发布时间为:2017年5月17日

本文作者:愣娃

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2025-01-13 16:11:33

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

cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失_javascript技巧

不知大家是否遇到过如此的尴尬:  当你的页面认证采用基于Cookie的方式,例如form,windows集成认证时,如下操作后有时认证失效,Authentication (用户验证信息)丢失,需要再次登录 系统正常登录后:  第一个页面(PageA.htm):window.showModalDialog()后,弹出第二个页面(PageB.htm)  第二个页面(PageB.htm):window.open()后,弹出的窗口(PageC.htm)有时会跳转到登录页面  这应该是由于不同的页面存在于

去掉telnet登录的ntlm认证技巧

  大家都对telnet比较熟悉吧.hacking的时候经常用到的系统自带shell尤其是注射的时候,但是最讨厌的就是ntlm认证了,以前大家去掉ntlm的方法一般有2种. 1 上传ntml.exe 这种方法有很多缺点,比如:对方有杀毒软件(反病毒软件或防毒软件),很多网段屏蔽了TFTP. 2 直接写入telnet的配置信息到文本中然后在用shell执行. 这种办法非常麻烦. 今天我给大家介绍我一直在使用的办法,压箱底的哦. 那就是直接运行命令:tlntadmn config sec = -nt

HttpClient实现post请求并加入NTLM认证

问题描述 需求是以POST方式带参数访问远程登录端口,端口要求请求连接加入NTLM认证,并解析响应数据!哪位大神做过成功的案例,分享下啊!拜谢了! 解决方案 解决方案二:没有做过,但是有一个工具封装的socket是可以使用的你的.毕竟你里面的是逻辑,我也只能告诉你入口在哪里.包:Thrift

渗透测试时,如何从Linux拓展到AD域?

本文讲的是渗透测试时,如何从Linux拓展到AD域?, 适用于SAMBA3的方法 通过阅读SAMBA文档可以了解到通过阅读secrets.tdb数据库就可以得到机器账户的明文密码. 现在,我们使用的是旧版本的linux环境,并且已经加入到了域中,主机名为:ubuntu3.如图: 观察上图可以看到secrets.tdb数据库中有以下的内容: 1. SECRETS/SALTING_PRINCIPAL/DES/LAB.BRANSH.COM: 这一数据将主机名,域名展示给了我们.将以$符号结束的用户名记

action 没有跳转-Action中调用另一个类中的方法时没有跳转,但是新建的其他测试类就可以跳转,WHY?

问题描述 Action中调用另一个类中的方法时没有跳转,但是新建的其他测试类就可以跳转,WHY? action中调用EmailUtil中的sendHtmlMail方法: public void forgetPassword() throws Exception { String email = request.getParameter("email"); User u=userService.getByEmail(email); Json json=new Json(); if (St

当研究PCI渗透测试指南时,你应该注意这六个方面

尽管PCI DSS 3.0版本已经全面推出,但仍然有很多关于企业难以遵守11.3章节中列出的PCI渗透测试要求的讨论. 为了帮助企业充分了解PCI DSS 3.0要求,PCI安全标准委员会在2015年3月发布了PCI DSS补充信息:渗透测试指南.该文档详细介绍了渗透测试过程的一般方法,从范围界定到测试不同的网络层,再到测试后续步骤(例如报告)等. PCI渗透测试文档以及PCI DSS合规所要求的方法的优点是,并没有什么新东西.除了提到云计算环境.网络钓鱼以及缩小持卡人数据环境范围等新概念外,这

容器服务中的节点失效时Docker容器重新调度介绍

    生产环境部署的服务都会考虑单点失效情况下的高可用性.在容器服务中,当节点失效的时候,能否重新调度容器到健康节点上继续提供服务对于生产环境中的服务高可用性尤为重要.下面我们就演示一下容器服务的重新调度功能.     首先创建一个含有3个节点的集群.       我们使用如下编排模板创建一个含有三个实例的nginx service,注意到添加了一个属性reschedule:on-node-failure意思是在节点失效的时候 会重新调度这个容器. web: image: nginx rest

微信认证新增公对公账户银行卡转账支付审核费用 缩减认证审核时长

昨天微信团队发布公告:微信认证新增公对公账户打款支付审核费用,微信公众平台运营者可选择使用企业的对公账户用银行卡转账给微信的对公账户,从而缩减资质认证的审核时长.这个可以有,就像微信认证结果拆分为资质审核和名称审核,微信公众平台可以认证自己想要的名称了,真正惠及了自媒体人.以下是公告的具体内容:[2015.06.15更新一分钱就可以完成微信公众号主体验证了] 微信认证新增公对公账户打款支付审核费用 微信认证支付费用时,除了可以选择"微信支付"的支付方式,还新增了银行卡转账的支付方式,用

C#当调用Remove失效时

有没有试过从一个集合里面移除一个对象之后,这个集合仍然留有这个对象?世界之大,无奇不有.稍有疏忽,便会导致这种奇怪的现象.现在让我们看看这个"不死"对象究竟是怎么一回事. 1."不死"对象现身 这个问题起初是我一个同事提出的,为了重现"不死"对象,现把代码简化如下: // Code #01 IList products = new List<Product>(); products.Add(GetProduct("1412&