回答上面问题:
1、
存储过程:当用户首次设置密码时,Windows会对该密码进行哈希处理,并将生成的哈希值存储在系统的安全数据库中。此后,当用户尝试登录时,系统会再次对输入的密码进行哈希处理,并将结果与存储的哈希值进行比较。如果两者匹配,则用户被成功验证。
用户登录的密文(密码哈希值)通常存储在C:\Windows\System32\config\SAM文件中
Windows操作系统不会以明文形式存储用户密码,而是使用哈希算法将其转换为密文存储,并且这些密文存储在安全数据库中,普通用户无法直接访问或查看。
2、
分为NTLM哈希和LM哈希
- NTLM哈希(NT Hash):
- NTLM是“NT LAN Manager”的缩写,是微软早期开发的一种身份验证协议。
- 当用户设置或更改密码时,Windows会计算密码的NTLM哈希值,并存储在系统的安全账户管理器(SAM)数据库中。
- NTLM哈希是基于MD4哈希算法,结合用户密码和用户名生成的一个固定长度的值。
- 由于MD4已被认为不够安全,因此在Windows后续版本中,NTLM哈希仍然被使用,但通常与更安全的身份验证协议(如Kerberos)一起使用。
- LM哈希(LM Hash):
- LM代表“LAN Manager”,是微软早期的一个网络协议。
- LM哈希是基于较弱的DES加密算法生成的,因此更容易受到暴力破解和彩虹表攻击。
- 默认情况下,从Windows Vista开始,LM哈希已被禁用,因为它被认为是不安全的。但在早期版本的Windows中,如果密码长度不足15个字符,系统仍然会生成LM哈希。
- 如果LM哈希被启用,hashdump工具会同时抓取NTLM哈希和LM哈希。
3、
windows只是将LM hash禁用了,但仍然会生成LM hash并且是固定值aad3b435b51404eeaad3b435b51404ee,所以第一个模块永远都是add3。
4、
- NTLM哈希(NT Hash):
- NTLM是“NT LAN Manager”的缩写,是微软早期开发的一种身份验证协议。
- 当用户设置或更改密码时,Windows会计算密码的NTLM哈希值,并存储在系统的安全账户管理器(SAM)数据库中。
- NTLM哈希是基于MD4哈希算法,结合用户密码和用户名生成的一个固定长度的值。
- 由于MD4已被认为不够安全,因此在Windows后续版本中,NTLM哈希仍然被使用,但通常与更安全的身份验证协议(如Kerberos)一起使用。
- LM哈希(LM Hash):
- LM代表“LAN Manager”,是微软早期的一个网络协议。
- LM哈希是基于较弱的DES加密算法生成的,因此更容易受到暴力破解和彩虹表攻击。
- 默认情况下,从Windows Vista开始,LM哈希已被禁用,因为它被认为是不安全的。但在早期版本的Windows中,如果密码长度不足15个字符,系统仍然会生成LM哈希。
- 如果LM哈希被启用,hashdump工具会同时抓取NTLM哈希和LM哈希
不同:
NTLM哈希和LM哈希在Windows操作系统中都是用于存储用户密码哈希的技术,但它们之间存在几个重要的区别:
- 加密算法与安全性:
- LM哈希(LAN Manager Hash)使用的是较弱的DES加密算法。由于其安全性较低,LM哈希较容易被破解,因此从Windows Vista和Windows Server 2008版本开始,Windows操作系统默认禁用了LM哈希。
- NTLM哈希(NT LAN Manager Hash)则是基于MD4哈希算法生成的。虽然MD4也被认为是不够安全的哈希算法,但相对于LM哈希,NTLM哈希更难被破解。在现代系统中,更强大和安全的哈希算法(例如NTLMv2使用的HMAC-MD5)已经取代了MD4。然而,为了向后兼容,NTLM哈希仍然存在于一些系统中。
- 密码处理方式:
- LM哈希明文密码被限定在14位以内。如果密码长度不足14个字符,它会使用空格进行填充,然后再进行哈希处理。
- NTLM哈希则是对用户密码的Unicode编码进行哈希运算,没有密码长度的特定限制。
- 使用范围:
- 在早期版本的Windows中,如果密码长度小于15个字符,系统可能会同时生成LM哈希和NTLM哈希。然而,随着Windows版本的更新和对安全性的提升,LM哈希逐渐被禁用,而NTLM哈希成为主要的密码哈希方式。从Windows Server 2003开始,Windows操作系统的认证方式主要使用NTLM哈希。
总的来说,NTLM哈希和LM哈希在加密算法、密码处理方式和使用范围上都有所不同。NTLM哈希相对更安全,而LM哈希由于安全性问题已经被逐渐淘汰。在现代Windows系统中,主要使用的是NTLM哈希或其更安全的变体。