windows下明文密码的存储

思考

一、windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文

windows的明文密码是通过LSA(Local Security Authority)进行存储加密的,当用户输入密码之后,密码会传递到LSA,LSA会对密码进行加密后保存在Windows注册表中的Security Accounts Manager数据库(SAM)中。

密文存储在SAM数据库中的SAM文件中,该文件通常位于C:/windows/System32/config下,SAM是系统级文件,权限很高,一般无法直接打开该文件,会显示一直被占用,但是可以通过特殊的工具打开。

二、我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么

hashdump抓取的密文分为LMhash和NThash:

LMhash:LM哈希是早期windows版本中使用的一种较弱的哈希算法,当用户密码小于15个字符的时候,windows会首先将其转化为大写,然后使用LM哈希算法进行加密,然而由于LM哈希算法存在已知漏洞,因此现代Windows系统默认禁用了LM哈希,或者仅当密码长度超过14个字符时才使用它。在某些情况下,如果LM哈希被禁用或未使用,这个模块的值可能会显示为固定的值,就表示LM哈希为空或未使用。现代的Windows系统一般会使用更安全的NTLM hash;

NTLM hash:它是Windows系统中更为常用的哈希算法,用于存储用户的密码信息,与LM哈希不同,NT哈希没有长度限制,并且使用了更安全的加密算法。因此,在大多数情况下,NT哈希是更可靠和安全的密码存储方式。

所以,通过hashdump 抓取出所有用户的密文时会分为这两个模块,分别代表了使用NTLM和LM算法加密过的用户密码。

三、为什么第一个模块(LM hash)永远是一样的aad3?

LM哈希(LAN Manager Hash)的一个特点是它对密码进行分组处理,并且如果密码长度小于14个字符,LM哈希会将密码补齐到14个字符。在补齐过程中,LM哈希会将密码分成两组7个字符,如果密码不足14个字符,它会在每个组的末尾添加一个特定的填充字符,然后分别对这两组字符进行哈希处理。

LM哈希的前7个字符(如果原始密码长度足够)或补齐到7个字符后的密码,会被转换成DES哈希,并且通常会有一个固定的前缀 aad3b435b51404eeaad3b435b51404ee。这个固定的前缀是LM哈希算法的一部分,用于在密码的DES哈希计算中模拟密码的第一个字符是"AAA"的情况。

因此,当使用LM哈希算法时,不管原始密码是什么,只要密码长度不足14个字符,LM哈希的第一部分(即对应密码前7个字符的哈希)都会包含这个固定的前缀。这就是为什么LM哈希的“第一个模块”看起来总是一样的。

四、这两个模块的加密算法有什么不同,如何加密的

 NTLM(NT LAN Manager)算法是现代化的加密方法,使用更安全的单向哈希函数(如MD4或MD5)来存储和验证用户密码。

 LM(LAN Manager)算法是早期使用的较为简单的DES算法,对密码进行分割并分别进行加密。

具体来说,NTLM算法会对用户密码进行单向哈希后,再进行加盐等操作,得到密文存储在系统中。而LM算法会将用户密码分成7个字符一个块,补齐为14个字符,然后分别进行DES加密生成两个7字节的密钥块,最后将这两个密钥块合并得到最终的密文。

总的来说,NTLM算法更加安全,在现代系统中更为常用,而LM算法由于存在安全性弱点,逐渐被废弃。

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值