浅谈系统密码加密方式

3 篇文章 0 订阅
2 篇文章 0 订阅
这里总结一下两个系统下密码 加密 保存方式:
Windows:
SAM文件一般存放在C:\Windows\System32\Config下,存在LM-Hash与NT-Hash两种加密方式。
Windows 系统 下的hash密码格式为:
用户名称:RID:LM-HASH值:NT-HASH值,例如:
Administrator:500:C8825DB10F2590EAAAD3B435B51404EE
:683020925C5D8569C23AA724774CE6CC:::
用户名称为:Administrator
RID为:500
LM-HASH值为:C8825DB10F2590EAAAD3B435B51404EE
NT-HASH值为:683020925C5D8569C23AA724774CE6CC
关于Windows下LM-Hash值生成原理:
假设明文口令是“Welcome”,首先全部转换成大写“WELCOME”,再做将口令字符串大写转后后的字符串变换成二进制串: “WELCOME” -> 57454C434F4D4500000000000000
说明:如果明文口令经过大写变换后的二进制字符串不足14字节,则需要在其后添加0×00补足14字节。然后切割成两组7字节的数据,分别经str_to_key()函数处理得到两组8字节数据:
57454C434F4D45 -str_to_key()-> 56A25288347A348A
00000000000000 -str_to_key()-> 0000000000000000
这两组8字节数据将做为DESKEY对魔术字符串“KGS!@#$%”进行标准DES加密
“KGS!@#$%” -> 4B47532140232425
56A25288347A348A -对4B47532140232425进行标准DES加密-> C23413A8A1E7665F
0000000000000000 -对4B47532140232425进行标准DES加密-> AAD3B435B51404EE
将加密后的这两组数据简单拼接,就得到了最后的LM Hash
LM Hash: C23413A8A1E7665FAAD3B435B51404EE
由于LM-Hash只能最大限制14位密码,安全性较差,NT-Hash应运而生。
假设明文口令是“123456”,首先转换成Unicode字符串,与LM Hash算法不同,这次不需要添加0×00补足14字节
“123456″ -> 310032003300340035003600
从ASCII串转换成Unicode串时,使用little-endian序。对所获取的Unicode串进行标准MD4单向哈希,无论数据源有多少字节,MD4固定产生128-bit的哈希值,
16字节310032003300340035003600 -进行标准MD4单向哈希-> 32ED87BDB5FDC5E9CBA88547376818D4
就得到了最后的NTLM Hash
NTLM Hash: 32ED87BDB5FDC5E9CBA88547376818D4
与LM Hash算法相比,明文口令大小写敏感,无法根据NTLM Hash判断原始明文口令是否小于8字节,摆脱了魔术字符串”KGS!@#$%”。MD4是真正的单向哈希函数,穷举作为数据源出现的明文,难度较大。
Linux :
Linux密码存放于shadow文件。假设取其中一条记录如下:
manifold:$1$UmP0IdhG$JwSobqdBKrgzY9GJafh.I1:14627:0:99999:7:::
manifold为账户名
$1代表md5加密
UmP0IdhG是salt
JwSobqdBKrgzY9GJafh.I1是使用MD5加密后的密码。
注意由于salt是不固定的,故同样的帐号对应HASH可以不同。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值