Windows 7密码重设盘的内部原理浅析

简介:
可能有兄弟觉得密码重设盘是雕虫小技,很简单,甚至是鸡肋,因为既然不怕麻烦特意创建一个密码重设盘,又怎么会那么粗心忘记密码呢?
 
其实它背后的原理还是很有意思的,这里试做简单分析。

在Windows XP时代,我们知道当用户创建密码重设盘时,Windows系统会自动创建一对公钥和私钥,以及一张自签署的证书。接下来,将会用所得的公钥对用户帐户的密码进行加密,然后保存在注册表项HKEY_LOCAL_MACHINE\SECURITY\Recovery\< SID>中,其中的< SID>就是指该用户的SID。而私钥则从计算机中删除,并且保存在软盘里。

到了Windows 7时代,我们知道私钥会以userkey.psw文件的形式保存在软盘或者USB闪存里。
 
但是如果我们尝试查看HKEY_LOCAL_MACHINE\SECURITY\Recovery注册表项,发现其下是空的,并没有什么用户SID。

那么用公钥加密的用户密码,到底存放在哪里了呢?很显然,如果光有私钥,而没有经过公钥加密的帐户密码副本,无法获取用户帐户的密码。

经过研究发现(盆盆是借用Process Monitor发现的,比较懒,不想写具体过程了,过程也简单),原来在创建密码重设盘的过程中,Windows安全子系统进程Lsass.exe会自动创建一个Recovery.dat注册表配置单元文件,保存在C:\Windows\System32\Microsoft\Protect\Recovery文件夹中。
 
而Lsass.exe进程会自动将其加载到注册表HKLM\C80ED86A-0D28-40dc-B379-BB594E14EA1B中。C80ED86A-0D28-40dc-B379-BB594E14EA1B意义不明,Google也没有结果,哪位老大知道,还请不吝指教。
 
由于密码重设盘创建完成后,Lsass.exe进程会自动卸载该注册表配置单元,所以我们无法查看HKLM\C80ED86A-0D28-40dc-B379-BB594E14EA1B下的内容。但是比较容易想到的是,可以借助以下方法进行查看:
 
用管理员权限打开命令提示符窗口,并且运行以下命令,以Local System身份启动注册表编辑器(Recovery.dat需要用Local System权限才能加载):

Psexec -s -i -d regedit

选中HKLM注册表根键,然后单击文件、加载配置单元,并定位到C:\Windows\System32\Microsoft\Protec\tRecovery\Recovery.dat文件。

在接下来的对话框里任意指定一个项名称,例如可以是Test,然后展开其下的子项,可以看到当前登录帐户的SID,其右侧的默认键值,即保存了用公钥所加密的帐户密码副本。




本文转自 ahpeng 51CTO博客,原文链接:http://blog.51cto.com/markwin/219205,如需转载请自行联系原作者
相关文章
|
安全 数据安全/隐私保护 Windows
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
1069 0
|
存储 域名解析 网络协议
windows server安装域控及原理(小白向)
windows server安装域控及原理(小白向)
691 0
|
5月前
|
安全 数据安全/隐私保护 Windows
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
246 15
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
|
7月前
|
安全 网络安全 数据安全/隐私保护
Windows Server 2025 Active Directory 重置用户密码
密码重置是管理员日常任务之一,用户因忘记或多次输错密码导致账户锁定时需进行重置。本文介绍在Active Directory服务器上重置密码的三种方法。
456 3
|
关系型数据库 MySQL 数据安全/隐私保护
windows mysql8 安装后 提示密码不对,修改下密码认证方式就可以了
windows mysql8 安装后 提示密码不对,修改下密码认证方式就可以了
2185 3
|
10月前
|
安全 前端开发 Windows
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
238 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
|
11月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
284 1
|
Linux 数据安全/隐私保护 Windows
解决Windows密码丢失问题:详细指南
最近因为某些工作缘故,接触到windows比较频繁,特此记录一下 当下,计算机安全是每个人都不能忽视的重要问题。然而,有时可能因为忘记密码而无法访问自己的Windows系统,这会导致数据和信息的临时不可用。 本文将详细介绍两种场景下的密码恢复方法:一种是针对虚拟机,另一种适用于物理机。通过这些方法,可以快速恢复对系统的访问,确保业务的连续性。
解决Windows密码丢失问题:详细指南
|
11月前
|
API Windows
Windows之窗口原理
这篇文章主要介绍了Windows窗口原理和如何使用Windows API创建和管理窗口。
178 0
|
安全 数据安全/隐私保护 Windows
Windows 允许空密码远程桌面
Windows 允许空密码远程桌面
170 2