我最近不得不重新安装 Windows 7,并且丢失了导出的 EFS 私钥。但是我有完整的用户目录,并且我认为密钥一定在某个地方。唯一的问题是如何将其取出。
我确实在 AppData\Roaming\Microsoft\SystemCertificates\My\Certificates 中找到了公钥。如果我使用 certmg.msc 导入它们,它会说我在信息中拥有私钥,但如果我尝试导出它们,它会说我没有私钥。此外,文件解密不起作用。
AppData\Roaming\Microsoft\SystemCertificates\My\Keys 中还有一个“keys”文件夹。导入证书后,我将其复制到新安装中,但没有任何效果。
我开始相信它们位于 AppData\Roaming\Microsoft\Protect\S-1-5-21-...\ 或 AppData\Roaming\Microsoft\Crypto\RSA\S-1-5-21-...\ 中,但我不确定如何使用这些文件夹中的文件。此外,由于我的 SID 已更改,我可以使用它们吗?帐户的其他部分保持不变(名称和密码)。我还可以完全访问用户注册表配置单元和大多数旧系统文件(包括旧系统注册表配置单元)。
我确实一直看到对“密钥恢复代理”的引用,但没有发现任何关于使用的信息,只是它可以被使用。
谢谢!
答案1
我发现您的用户密码、用户+机器 SID 和盐用于加密主密码(存储在 AppData\Roaming\Microsoft\Protect 中),而主密码又用于使用另一个盐(存储在 AppData\Roaming\Microsoft\Crypto\RSA 中)加密所有私钥。有一些指南介绍了这些文件夹中文件的基本格式及其加密方式。但是,有些部分缺失,因此完整的解决方案需要反复修改。
一个免费的解决方案是创建一台具有相同机器 SID 的机器(需要使用 XP 和程序 newsid - newsid 在 Vista 及更高版本上不起作用),然后创建一个具有相同 SID 的用户,复制文件(整个 Crypto、Protect 和 System 证书文件夹),然后从那里导出。我使用虚拟机完成了此操作。
这些假设您有权访问所有原始文件。Brian 提到的 Elcomsoft Advanced EFS Data Recovery 程序也可以逐个扇区搜索正确的信息。它也不需要创建新安装或重新制作 SID。因此,在大多数情况下,这种方法会容易得多,但是对于想要免费使用的人来说,请参见上文。
答案2
存储在旧配置文件中的证书/密钥等由用户密码和其他一些信息进行哈希处理后进行保护/加密。因此,您需要找到它们并想办法解密它们。
Elcomsoft 提供了一个程序来进行搜索和解密。Elcomsoft -高级 EFS 数据恢复(靠近页面底部)但通过工作,您可以使用在线指南自己完成同样的工作,只是工作量要大得多。
答案3
mimikatz
我按照GitHub 存储库中的此 wiki 成功恢复了 Windows 10 1903 中的 PFX 文件(包括私钥) :解密 EFS 文件。
你只需要点击mimikatz
下载和用于 Windows 的 openssl从这里。
步骤其实很简单。注意指南中显示的主密钥 guid 和其他重要 ID。 中的文件C:\Users\[YOUR USER]\AppData\Roaming\Microsoft\Protect\[YOUR USER ID]
带有系统标志。要查看它们,只需cmd.exe
在文件夹中打开并使用命令即可dir /A
。
需要注意的是你需要账户密码就我而言,我知道我的账户密码,因此解密主密钥不是问题。