Windows认证

/01 Window认证机制

这个看大佬的文章就完事了,小菜鸡就不充当大尾巴狼了

倾旋的大佬的博客文章

一,LM,LM Hash:

LM协议机制和NTLM相同,加密算法不一样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
将所有小写字母转换为大写字母
• >123ABC // 未达到7个字符
• 将密码转化为16进制,分两组,填充为14个字符,空余位使用0x00字符填补
• >31323341424300000000000000
• 将密码分割为两组7个字节的块
• >31323341424300 00000000000000 // 16进制
• 将每组转化为比特流,不足56Bit则在左边加0
• >31323341424300 ->(转换为二进制) 110001001100100011001101000001010000100100001100000000-> (补 足56Bit) 00110001001100100011001101000001010000100100001100000000
• 将比特流按照7比特一组,分出8组,末尾加0

由于后者都为0,结果可想而知,那就都是0;
• 将每组比特流转换为16进制作为被加密的值,使用DES加密,字符串 “KGS!@#$%”为Key(0x4B47532140232425),得到8个结果 ,每个 结果转换为16进制。
• -> 00110000100110001000110001101000000101000001001000001100 00000000
• ->30988C6814120C00 -> DES(30988C6814120C00) -> 48-D7-EB-91- 2F-5E-69-7C
• 由于我们的密码不超过7字节,所以后面的一半是固定的:
• AA-D3-B4-35-B5-14-04-EE
• 连接两个DES加密字符串。这是LM哈希。
• 48-D7-EB-91-2F-5E-69-7C-AA-D3-B4-35-B5-14-04-EE

二, NTLM,NTLM Hash,Net NTLM Hash

1.NTLM

NTLM是一种网络认证协议,它是基于挑战(Chalenge)/响应(Response)认证机制的一种认证模式。

这个协议只支持Windows

协商:

协商确认双方协议版本

质询:

1.客户端向服务端发送用户信息(用户名)请求

2.服务器接受请求,生成challenge(16位随机字符),用登录用户名对应的NTLM Hash加密Challenge,生成Challenge1(Net NTLM Hash),然后只发送challenge给客户端

3.客户端接受到challenge,一样的加密的方式用输入的密码生成NTLM Hash加密challenge,生成Response,发送给服务端。

验证:

服务端接受到Response与Challenge1对比。

列表中没有这个用户名失败。

2.NTLM V2与V1不同点

NTLM V1 NTLM V2
challenge 8位 16位
加密算法 DES HMAC-MD5

3.NTLM Hash

用户输入密码 转 16进制,Unicode转换,MD4加密最后NTLM Hash