Windows :
SAM文件通常存储在C:WindowsSystem32Config下,有LM-Hash和NT-Hash两种加密方式。
Windows系统上的散列密码格式如下:
用户名:RID:LM-HASH值:NT-HASH值,例如:
管理员:5003360 c 8825 d b10f 2590 EAA ad3b 435 b 51404 ee
:683020925 c 5d 8569 c 23a a 724774 ce6cc 3360336033603:
用户名:管理员
RID为: 500
LM-HASH值为c 8825 d b10f 2590 EAA ad3b 435 b 51404 ee
NT-HASH值为683020925 c 5d 8569 c 23a a 724774 ce6cc
关于Windows下的LM-Hash值生成原理:
假设明文密码为" Welcome ",则首先全部转换为大写的" Welcome ",然后将密码字符串转换为大写的字符串转换为二进制字符串: " welcome "-57454 c 434 F4 d 450000000
说明:如果明文密码经过大写转换的二进制字符串小于14字节,则必须在其后添加000以补充14字节。 然后,切成两组7字节的数据,分别用str_to_key ) )函数进行处理,得到两组8字节的数据。
5454 c 434 F4 d 45-str _ to _ key (-56a 25288347 a348a
000000000000-str _ to _ key (-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
这两组8字节数据是DESKEY对魔术字符串“KGS! @#$% "进行标准的DES加密
“国安局! @ # $ %”- 4b 47532140232425
56a 25288347 a348a-4b 47532140232425的标准DES加密- C23413A8A1E7665F
00000000000000000-4b 47532140232425的标准DES加密- AAD3B435B51404EE
将这两组加密的数据轻松连接起来,即可获得最后的LM Hash
lm hash : c 23413 A8 a1 e 7665 faad3b 435 b 51404 ee
由于LM-Hash最多只能限制14位密码,安全性较低,因此产生了NT-Hash。
假设明文密码为“123456”,则首先将其转换为Unicode字符串,与LM Hash算法不同,这次不需要添加000来补充14字节
“123456”- 310032003300340035003600
从ASCII字符串转换为Unicode字符串时,请使用little-endian序列。 对获取的Unicode字符串进行标准的MD4单向友好黑裤子,无论数据源有多少字节,MD4都会固定产生128位的友好黑裤子值。
16字节310032003300340035003600 -标准MD4单向温柔黑裤- 32ed 87 BD b5 FD C5 e 9cb a 88547376818 d 4
到了最后的NTLM Hash
NLM hash :32 e d87 BD b5 FD C5 e 9cb a 88547376818 d 4
与LM Hash算法相比,明文密码大小写敏感,无法从NTLM Hash判断原始明文密码是否小于8字节,魔术字符串“KGS! @#$% "。 MD4是真正单向温柔的黑裤子函数,是包罗万象地作为数据源出现的明文,难度很高。
Linux:
Linux密码存储在shadow文件中。 其中一个记录为以下:
manifold : $1$ u mp0 idhg $ jwsobqdbkrgzy9gj afh.I 133601462736003360933607336033603360:336033603360360360
manifold是帐户名称
$1表示md5加密
UmP0IdhG是salt
JwSobqdBKrgzY9GJafh.I1是用MD5加密的密码。
注意由于salt不是固定的,因此同一帐户可以支持HASH,也可以不同。
阅读(1552 ) |评论(0) |转发)0|