LM Hash和NTLM Hash的加密过程
LM哈希本质上是DES加密可以逆向出来,而NTLM哈希本质上是MD4加密不能逆向只能枚举爆破,相对更安全,在Windows Server 2003以后, Windows操作系统的认证方式均为 NTLM Hash。
以下将对Admin@123密码为例进行加密
LM Hash
1.Admin@123 转换为大写 ADMIN@123
2.ADMIN@123转换十六进制
41444D494E40313233
3.密码不足14字节用0补全
41444D494E403132330000000000
4.分为2组7字节
41444D494E4031
32330000000000
5.将这两组7字节的十六进制转换为二进制
01000001010001000100110101001001010011100100000000110001
00110010001100110000000000000000000000000000000000000000
6.这两组每7bit一组末尾加0
0100000010100010000100101010100010010100011100100000000001100010
0011001000011000110000000000000000000000000000000000000000000000
7.将两组二进制转换为十六进制得到2组8字节编码
40A212A894720062
3218C00000000000
8.将2组8字节编码分别作为DES密钥,KGS!@#$%的16进制作为DES明文进行加密
4B47532140232425
两组结果:
6F08D7B306B1DAD4
B75E0C8D76954A50
9.拼接后得到最后结果
6F08D7B306B1DAD4B75E0C8D76954A50
NTLM Hash
1.Admin@123转换成十六进制
41646D696E40313233
2.将十六进制编码转换成Unicode格式(在每个字节后添加0x00)
410064006D0069006E004000310032003300
3.对Unicode格式的编码做MD4加密,生成32位的十六进制
570a9a65db8fba761c1008a51d4c95ab