替换 SECURITY hive 中缓存的域凭据

信息安全 密码 视窗 密码破解 windows-10
2021-08-20 23:29:27

Windows 将本地用户密码的 (NTLM) 哈希值存储在SAM配置单元中。通过从实时系统启动(例如),不仅可以提取这些哈希值以进行离线破解,还可以简单地将哈希值替换为已知密码的哈希值(例如,chntpw在 Kali Linux 中是一个擅长此任务的工具) . 同样,可以将普通用户变成管理员用户并启用/禁用用户。到现在为止还挺好。

以类似但不同的方式,以前在计算机上登录的用户的域帐户的密码哈希存储在SECURITY配置单元中,以便用户即使在网络断开时也可以重新登录。像这样的工具cachedump可以提取这些哈希值以进行离线破解。但是,由于使用了不同的散列算法,大多数(全部?)可以替换散列的工具SAM不能在SECURITY.

现在我的问题是:是否可以用已知密码的密码替换域用户的缓存密码哈希,然后重新启动系统并使用已知密码登录(Windows 10 特定答案的奖励积分,以防万一与以前的版本有区别)?这当然假设设备已断开网络,因此 Windows 无法使用域控制器在线检查密码。

3个回答

现在我的问题:是否可以将域>用户的缓存密码哈希替换为已知密码的哈希,以便重新启动系统并使用已知密码登录>

是的,最新版本的 mimikatz 可以做到这一点(可在 gentilkiwi/mimikatz github 帐户的发布页面上获得)。

但是,我发现为了在具有多个域用户的系统上使用此功能,您实际上可能必须指定两个参数(用户名和 kiwi 标志)

# lsadump::cache /user:<username> /kiwi

运行此命令后,缓存的域凭据将替换为默认的 mimikatz 密码(即“mimikatz”)!如果您喜欢设置“mimikatz”以外的密码,请使用以下命令:

# lsadump::cache /user:<username> /password:<password-to-set> /kiwi

我认为如果您使用某种 NTPASSWORD 重置工具重置本地管理员密码可能会容易得多(当然您需要先从 USB 启动到 winpe 环境)

Windows 不会缓存域登录的整个哈希值。根据Windows Internals,第 1 部分,第 6 版

注意MSV1_0 不会在注册表中缓存用户的整个密码哈希,因为这会使具有系统物理访问权限的人能够轻松破坏用户的域帐户并获得对加密文件和用户有权访问的网络资源的访问权限。相反,它缓存了一半的散列。缓存的半散列足以验证用户的密码是否正确,但不足以获得对 EFS 密钥的访问权并作为域上的用户进行身份验证,因为这些操作需要完整的散列。参考:第 559 页