/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