如何处理 Windows 密码?

tan*_*ius 9 windows passwords

我正在寻找有关 Windows 如何处理其用户密码的好信息:

  • 使用了哪些算法(哪些哈希,是否使用盐,...)?
  • 密码存储在哪里?
  • 是否有已知的漏洞利用?

特别有趣的是 Windows XP、Vista 和 7。

我无法通过 Google 找到有用的信息,大多数页面都在谈论重置或破解工具,但我对理论感兴趣。

use*_*686 19

使用了哪些算法(哪些散列,它们是否使用盐,...)

两个散列存储:LM哈希的LanManMD4哈希(也称为“NT哈希”)为NTLM。

通常只使用 MD4 哈希。它没有加盐,因为 SAM 数据库只能由Administrators组和NT AUTHORITY\SYSTEM内部帐户访问。

LM 散列仅出于兼容性原因而存储。(请参阅下面的段落。)它非常不安全(它的历史始于 OS/2 和 MS-DOS),并且在(我认为)几分钟内就可以破解。Windows 仅在登录旧服务器时使用它;但是,如果存储它,则可以使用 LiveCD 等提取它。

在 Windows 7 中,LM 哈希的存储被禁用。在早期版本中,您可以在安全策略中手动禁用它(secpol.msc?本地策略?安全选项?网络安全:不存储 LAN 管理器哈希)。


密码存储在哪里?

安全帐户管理器数据库- 注册表的一部分,存储在%SystemRoot%\system32\config\.

自 Windows 2000 起,SAM 数据库默认额外加密<afaik>密钥分散在(相同的)注册表文件中,但仍然可以恢复。</afaik>但如果需要,您可以将加密密钥移动到软盘驱动器,或使用其他密码。(您将在启动时被要求输入。)这是使用SYSKEY ( syskey.exe) 完成的

(SYSKEY 支持已在 NT 4.0 SP3 中添加,但在 W2000 之前默认禁用。)


是否有已知的漏洞利用?

破解LM哈希?超出你的想象。 MD4似乎更安全,但请务必阅读维基百科文章。


在Windows 9x系列-不要指望什么比ROT26更好

  • @SEARAS:到目前为止,所有 Windows NT 系列操作系统(NT 4.0、2000、XP、Server 2003、7、Server 2008、8)都使用相同的 SAM。(唯一的区别是 Win7 和更新版本停止存储 LM 哈希。) (2认同)