[思路/技术] Windows认证 | 网络认证 来源:https://bbs.ichunqiu.com/thread-53598-1-1.html 圣乱X无心i春秋-核心白帽 发表于 5天前 0 586 在平时的测试中,经常会碰到处于工作组的计算机,处于工作组
[思路/技术]Windows认证 | 网络认证

- 协商,这个是为了解决历史遗留问题,也就是为了向下兼容,双方先确定一下传输协议的版本等各种信息。
- 质询,这一步便是Chalenge/Response认证机制的关键之处,下面会介绍这里的步骤。
- 验证,对质询的最后结果进行一个验证,验证通过后,即允许访问资源
- 首先,client会向server发送一个username,这个username是存在于server上的一个用户。
- 当server接收到这个信息时,首先会在本地查询是否存在这样的一个用户,如果不存在,则直接返回认证失败,如果存在,将会生成一个16位的随机字符,即Chalenge,然后用查询到的这个user的NTLM hash对Chalenge进行加密,生成Chalenge1,将Chalenge1存储在本地,并将Chalenge传给client。
- 当client接收到Chalenge时,将发送的username所对应的NTLM hash对Chalenge进行加密即Response,并Response发送给server。
- 质询到这里就结束了,最后一步就是属于验证的机制了
- server在收到Response后,将其与Chalenge1进行比较,如果相同,则验证成功

最后再稍微说一下NTLM V2协议,NTLMv1与NTLM v2最显著的区别就是Challenge与加密算法不同,共同点就是加密的原料都是NTLM Hash,NTLM v1的Challenge有8位,NTLM v2的Challenge为16位;NTLM v1的主要加密算法是DES,NTLM v2的主要加密算法是HMAC-MD5。 我们用实际抓包情况来看一下他们之间的数据传输 server192.168.5.133LENOVO/123456
client192.168.5.134 在client远程连接server net use \\192.168.5.133 /u


我们来看一下抓到的数据包



查看第三个数据包可以得到client加密后的Challenge:1b6943212ce6ccf2

Response数据为 8582c1c1d54a7a430fc79a0abe09b4040101000000000000f29aefb85f5ad5011b6943212ce6ccf20000000002001e00570049004e002d0044004d0047004d0055004f005000510030003300310001001e00570049004e002d0044004d0047004d0055004f005000510030003300310004001e00570049004e002d0044004d0047004d0055004f005000510030003300310003001e00570049004e002d0044004d0047004d0055004f005000510030003300310007000800f29aefb85f5ad50106000400020000000800300030000000000000000100000000200000f4be3b3312dffac27687742d4f92263e5c1a37792d98c42fa6cd9200a6e15fa80a001000000000000000000000000000000000000900240063006900660073002f003100390032002e003100360038002e0035002e00310033003300000000000000000000000000




最后可以看到已经成功爆破出密码



