Windows本地认证之NTML哈希和LM哈希

Windows本地认证之NTML哈希和LM哈希

一、本地认证的流程

Windows的登陆密码是储存在系统本地的SAM文件中的,在登陆Windows的时候,系统会将用户输入的密码与 SAM文件中的密码进行对比,如果相同,则认证成功。

SAM文件是位于C:\Windows\System32\config\目录下,用于储存本地所有用户的凭证信息。

二、LM Hash加密流程

以Admin@123为例:

1、将明文口令转换为其大写形式 假设这里以明文Admin@123为例

ADMIN@123

2、将字符串大写后转换为16进制字符串

41444D494E40313233

3、密码不足14字节要求用0补全

41444D494E403132330000000000

4、将上述编码分成2组7字节

第一组:41444D494E4031
第二组:32330000000000

5.1、将每一组7字节的十六进制转换为二进制

第一组:01000001010001000100110101001001010011100100000000110001
第二组:00110010001100110000000000000000000000000000000000000000

5.2、每7bit一组末尾加0

第一组:01000000 10100010 00010010 10101000 10010100 01110010 00000000 01100010
第二组:00110010 00011000 11000000 00000000 00000000 00000000 00000000 00000000

5.3、还原再变成16进制

第一组:0100000010100010000100101010100010010100011100100000000001100010
第一组16进制:40A212A894720062
第二组:0011001000011000110000000000000000000000000000000000000000000000
第二组16进制:3218C00000000000

6、将以上步骤得到的两组8字节编码当做DES加密的密钥,明文为 KGS!@#$% 的16进制,为4B47532140232425,最终得到两组密文。

第一组密文:6F08D7B306B1DAD4
第二组密文:B75E0C8D76954A50

7、最终得到LM Hash值:6F08D7B306B1DAD4B75E0C8D76954A50

三、NTLM Hash加密流程

1、将明文口令转换成十六进制的格式

41646D696E40313233

2、转换成Unicode格式,即在每个字节之后添加00

410064006D0069006E004000310032003300

3、对Unicode字符串作MD4加密,生成32位的十六进制数字串得到NTML Hash值

NTML Hash值:570a9a65db8fba761c1008a51d4c95ab

热门相关:骑士归来   无限杀路   法医娇宠,扑倒傲娇王爷   横行霸道   惊世毒妃:轻狂大小姐