Part1 前言
大家好,我是ABC_123。在日常的渗透测试及红队评估项目中,经常遇到http 401身份认证的情况,具体就是访问一个特定目录的时候,会弹出一个要求输入用户名密码的框框。很多朋友会误以为是与tomcat的http basic认证一样,就是把用户名及密码进行了简单的base64加密,然后使用相应的工具进行弱口令猜解,实际上这里面有各种各样的身份验证算法,非常复杂。接下来ABC_123就搭建IIS测试环境,给大家分享一下相关经验,同时分享一下不同情况下弱口令枚举的关键Java代码实现,网上能用的java代码极少,甚至是搜索不到,ABC_123也是踩了一大堆的坑。
**注:**特别感谢我的APT老大哥的指点,Negotiate协议和Kerberos协议的问题困扰了我好长时间,在老哥的指点下茅塞顿开。
Part2 技术研究过程
-
基础环境搭建
IIS中间件可以很方便地设置常用的HTTP 身份认证,本地搭建一个IIS环境,对需要身份认证的/fck目录进行权限设置,双击“身份验证”选项。
发现IIS默认情况下有以下这几种身份验证方式,分别是“Windows身份验证”、“基本身份验证”、“匿名身份验证”、“摘要式身份验证”。其中匿名身份验证就是允许任意用户访问,不牵扯到输入弱口令问题,这里就不过多叙述了。
-
基本身份验证
首先看第一种情况,也就是最常见的Http Basic认证,就是类似于Tomcat后台管理页面的登录方式。如下图所示,开启“基本身份验证”选项,其它的全部关闭。
在这种情况下,以GET请求访问**/fck**目录时返回如下消息头,“Basic” 表示所使用的验证方案是基本身份验证,这是HTTP协议中最简单的一种认证方法。“realm="192.168.237.129"” 指示了受保护资源所属的域,除了IP地址,也可以是一个域环境的域名。
使用burpsuite进行抓包发现,其加密方式就是普通的Base64加密,与大家最常见的Tomcat的后台登录加密方式是一样的,这种的太过常见,这里就不过多叙述。
-
摘要式身份验证
接下来尝试一下“摘要式身份验证”,IIS中间件下的开启摘要式身份验证需要加入域环境,于是ABC_123安装了一个域控虚拟机,域名为test111.com。接下来选择test111.com之后点击确定,IIS就启用了该认证模式。
此时,以GET请求**/fck目录,发现服务器返回如下消息头:“Digest” 表示所使用的验证方案是摘要身份验证;“qop” 表示质量保护,这里是指定为"auth",表示使用身份验证;“algorithm” 指定了使用的加密算法,这里是MD5-sess;“nonce” 是一个由服务端生成的随机字符串;realm则给出了域控服务器的域名,就是我们搭建的域环境test111.com**。
根据弹出的提示框输入一个用户名密码,之后使用burpsuite抓包,发现浏览器发送的http请求是如下格式,看起来非常复杂,已经不是使用简单的java代码就能够实现弱口令猜解的。
最后,ABC_123踩了一大堆坑,然后各种搜索、尝试了各种代码,最后给出如下真正可用的java代码。将如下代码改成多线程,就可以实现对此的HTTP 摘要身份验证的用户名密码的暴力破解了。
-
Windows身份验证(Negotiate+NTLM)
接下来尝试一下“集成Windows 身份验证”方式,勾选相应的选项之后,使用burpsuite对其进行抓包。
此时,以GET请求**/fck**目录,发现服务器返回如下消息头,返回消息头有两个WWW-Authenticate,ABC_123查阅资料发现,这里主要是为了兼容性的考量。如果客户端不支持Negotiate协议,那么我们的浏览器就会选择NTLM认证方式;如果客户端支持并选用了Negotiate协议,又会有两种情况,分别是Kerberos协议及NTLM协议。这时候如果客户端支持Kerberos,会优先使用Kerberos验证;如果不支持Kerberos,则会选用NTLM认证。这里面很绕,如果新手朋友听不明白,可以继续看接下来的实验。
根据提示框的提示,输入用户名密码之后,使用抓包工具进行抓包发现Authorization: Negotiate TlRMTVNTUAADAAAA,base64解码之后发现是Authorization: Negotiate NTLMSSP+二进制数据,说明此时我们的浏览器选择了NTLM认证。
对于这种情况下的HTTP NTLM账号密码猜解,ABC_123又是踩了一大堆的坑,最终给出的真正能用的Java代码如下:
-
Windows身份验证(Negotiate+Kerberos)
接下来看最后一种情况,就是Negotiate认证下的Kerberos协议过程。本地继续搭建一个虚拟机,新建一个域用户并以域用户身份登录此虚拟机。
此时目标url的/fck目录不能以ip地址形式访问,需要以计算机名的形式浏览,此时发现不需要输入用户名及密码就可以直接访问/fck目录。因为我们以域用户身份登录了当前虚拟机,当前域用户是有权限访问/fck目录的,所以此时浏览器使用了Kerberos认证。此时使用Fiddler抓包,在“认证”选项卡下,发现了通信过程是Kerberos协议。
Part3 总结
1. 对于HTTP身份验证的弱口令审计,需要仔细分析服务器返回消息头中的WWW-Authenticate字段。
2. 本篇文章对于新手会难以理解,最好是能搭建环境尝试一下,还有更多关于HTTP身份验证的情况,后续ABC_123继续搭建环境给大家分享。
`黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取文章来源:https://www.toymoban.com/news/detail-791874.html
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享文章来源地址https://www.toymoban.com/news/detail-791874.html
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
到了这里,关于HTTP身份认证401不同情况下弱口令枚举方法及java代码实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!