如果帐户是使用 Microsoft 帐户设置的,如何存储 Windows 10 哈希?

信息安全 哈希 视窗 ntlm
2021-08-21 12:41:26

我正在测试我的密码的完整性,并注意到在我转储散列后,只有一个帐户的 NTLM 散列不是“默认散列”。我也知道该帐户恰好是我的备份用户,因此未将其配置为登录任何 Microsoft 帐户。它只是一个本地用户。

另一方面,我的主账户配置为微软账户,其哈希默认为 31d6cfe0d16ae931b73c59d7e0c089c0,实际上是一个空密码。但是,这不是我在帐户上的真实密码。

所以我的问题是,哈希是因为当我使用 Microsoft 帐户登录时,它是向 Microsoft 服务器发出请求以进行哈希/验证,还是哈希存储在其他任何地方。

此外,如果一个人被强制使用 Microsoft 帐户不是更安全吗,因为黑客永远无法利用对机器的物理访问或欺骗用户单击使他们能够访问的东西SAM/系统文件?

2个回答

无论您使用的是Microsoft 帐户, Windows 哈希都保存在您计算机上的SAM文件中(使用文件加密) 即使您没有连接到互联网,也需要通过这种方式登录您的计算机。如果您使用account.microsoft.com更改密码,您仍然可以使用旧密码登录您的计算机(即使您使用的是Microsoft 帐户)。登录系统后会提示输入新密码,但只要不输入新密码,就可以使用旧密码登录电脑。输入新密码后,(可能)文件将被更新。SYSTEMSAMSYSTEM

您(错误地)获得31d6cfe0d16ae931b73c59d7e0c089c0密码的哈希值,因为Windows 10 周年更新SAM以来和/或SYSTEM文件的格式已更改(请参阅:类似问题),因此工具如, , ,打印空密码的哈希值(我在我的 Windows 上验证了它10)。自此更新以来,Windows使用AES128来加密密码的MD4哈希。因此,几乎所有有关Windows 密码恢复的教程都已过时。chntpwbkhivepwdumpsamdump2

幸运的是, Benjamin Delpy创建了一个名为(仅限 Windows,但可以使用Wine在 Linux 上运行)的工具,它可以读取以 Windows 的新格式保存的密码哈希值。请注意,Windows Defender和 Symantec 防病毒软件将其视为“黑客工具”并将其删除,因此您需要在运行之前禁用它们(以管理员身份运行)。mimikatz mimikatz

mimikatz许多模块组成,但您应该探索lsadump模块,特别是lsadump::sam功能。

文档摘录_

如果您不是SYSTEM或使用模拟SYSTEM令牌,您将遇到拒绝访问错误:

mimikatz # lsadump::sam
Domain : VM-W7-ULT-X
SysKey : 74c159e4408119a0ba39a7872e9d9a56
ERROR kuhl_m_lsadump_getUsersAndSamKey ; kull_m_registry_RegOpenKeyEx SAM Accounts (0x00000005)

在这种情况下,您可以使用psexecstart SYSTEM(或其他工具)或使用token::elevate命令提升来模拟SYSTEM令牌:

mimikatz # privilege::debug
Privilege '20' OK

mimikatz # token::whoami
 * Process Token : 623884       vm-w7-ult-x\Gentil Kiwi S-1-5-21-1982681256-1210654043-1600862990-1000  (14g,24p)       Primary
 * Thread Token  : no token

mimikatz # token::elevate
Token Id  : 0
User name :
SID name  : AUTORITE NT\Système

228     24215           AUTORITE NT\Système     S-1-5-18        (04g,30p)       Primary
 -> Impersonated !
 * Process Token : 623884       vm-w7-ult-x\Gentil Kiwi S-1-5-21-1982681256-1210654043-1600862990-1000  (14g,24p)       Primary
 * Thread Token  : 624196       AUTORITE NT\Système     S-1-5-18        (04g,30p)       Impersonation (Delegation)

mimikatz # lsadump::sam
Domain : VM-W7-ULT-X
SysKey : 74c159e4408119a0ba39a7872e9d9a56

SAMKey : e44dd440fd77ebfe800edf60c11d4abd

RID  : 000001f4 (500)
User : Administrateur
LM   :
NTLM : 31d6cfe0d16ae931b73c59d7e0c089c0

RID  : 000001f5 (501)
User : Invité
LM   :
NTLM :

RID  : 000003e8 (1000)
User : Gentil Kiwi
LM   :
NTLM : cc36cf7a8514893efccd332446158b1a

您可以在此处下载x86amd64二进制文件mimikatz

作为旁注 - 如果您想确保密码的哈希是您密码的哈希,您可以使用Python轻松完成

user@mycompa:~$  python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib, binascii
>>> passwd = "password"
>>> hash = hashlib.new('md4', passwd.encode('utf-16le')).digest()
>>> print(binascii.hexlify(hash))
b'8846f7eaee8fb117ad06bdd830b7586c'

要添加到patryk.beza 的好答案:

此外,如果一个人被强制使用 Microsoft 帐户不是更安全吗,因为黑客永远无法利用对机器的物理访问或欺骗用户单击使他们能够访问的东西SAM/系统文件?

不,密码必须存储在您计算机上的某个地方。如果由于某种原因您在登录时无法访问 MS 服务器,操作系统仍将允许您使用您的凭据登录。即使用户没有点击任何东西,操作系统中的潜在缺陷仍有可能让威胁者访问SAM文件。我在使用 MS 帐户时遇到的主要问题之一是:当您将 MS 帐户链接到您的计算机时,它对所有内容都使用相同的密码。这可能非常糟糕,因为威胁者可以更改您的密码,如果他们可以访问SAM文件并打破散列。如果威胁者知道了您的密码,他们就可以开始更改您的所有密码,从而完全将您拒之门外。这是 MS 没有告诉您的主要风险,因为他们喜欢能够监视您。出现更多彩虹表开始破解 Windows 10 密码只是时间问题。谈到安全性,这绝不是IF的问题;这是什么时候。