事实证明,这个问题比我预想的要复杂得多,但我确实找到了解决方案。我怀疑恶意软件损坏了我的机器,因此在 VirtualBox VM 内的 Windows 10 虚拟机中完成了所有工作。为此,我创建了一个用户帐户,其用户名和密码与故障计算机相同。我不确定这是否有必要。
挑战1:获取文件。故障机器的驱动器安装在 USB 盒中,以便在运行的机器中可以访问分区。虚拟机需要直接访问驱动器,通过共享文件夹连接是不够的。一旦 USB 驱动器在虚拟机中可用,robocopy就可以在管理员权限提升的命令提示符中使用,/efsraw根据此问题使用修饰符以允许将原始加密文件复制到本地位置。如果没有管理员权限,错误 57/87 甚至经常会出现错误 0。
关键任务是使用 Windows 以certmgr.mscPKCS12 格式导出新证书。可以根据需要导出带有私钥的证书。最后,使用 Windows GUI 重新安装此证书,并使用导出中设置的密码,并允许将证书安装在配置文件下其类型的自动位置User(而不是Computer或Local Machine)。该证书最终将位于与开始时相同的位置 ( User>Personal>Certificates),但是尝试导出此证书将不允许导出私钥。
事实证明,这个问题比我预想的要复杂得多,但我确实找到了解决方案。我怀疑恶意软件损坏了我的机器,因此在 VirtualBox VM 内的 Windows 10 虚拟机中完成了所有工作。为此,我创建了一个用户帐户,其用户名和密码与故障计算机相同。我不确定这是否有必要。
挑战1:获取文件。故障机器的驱动器安装在 USB 盒中,以便在运行的机器中可以访问分区。虚拟机需要直接访问驱动器,通过共享文件夹连接是不够的。一旦 USB 驱动器在虚拟机中可用,
robocopy
就可以在管理员权限提升的命令提示符中使用,/efsraw
根据此问题使用修饰符以允许将原始加密文件复制到本地位置。如果没有管理员权限,错误 57/87 甚至经常会出现错误 0。一旦文件位于本地,就可以在文件安全编辑器中获得所有权和完全访问权限。
挑战2:获得证书。正如此问题的答案中所建议的,证书存储在失败的计算机用户的 AppData 文件夹中,例如
我最终复制了整个 Microsoft 文件夹,以防万一我需要其他东西。
挑战三:工具。根据这个答案,GitHub 提供的工具
mimikatz
非常强大,可以提取所需的所有证书信息。然而,Windows 安全部门(也许是正确的)和大多数浏览器将其声明为病毒,并将拒绝下载或访问这些文件。我需要禁用虚拟机中的各种安全性以允许下载,并继续禁用保护以允许应用程序运行。为了安全起见,我禁用了所有虚拟机网络,以防潜在恶意工具泄露任何内容。挑战 4:获取摘要 ID。首先
mimikatz
需要的是文件的指纹/摘要编号。在某些情况下,不可能看到这一点,但我相信这是由于尝试查看虚拟机共享文件夹上的文件所致。该值可以在文件属性中看到,查看“属性”>“高级...”窗口并获取详细信息。这应该显示经过认证的用户(用户名和原始计算机名称)和指纹值。挑战5:获取钥匙。我按照的文档
mimikatz
进行操作,还下载了 Windows 二进制 openssl 安装程序之一 (FireDaemon OpenSSL x64 3.2.0)。直到并包括cert.pfk
使用恢复的 EFS 证书生成的所有步骤。首先从指纹开始,然后查找容器 ID、证书文件,使用原始用户密码解密公钥和私钥,最后将密钥重新格式化为新证书。尽管如此,Windows 10 并不喜欢该证书的格式。挑战 6:安装证书。帮助的最后一步
mimikatz
是命令但是 Windows 10 对此证书不满意,并且不会识别提供的任何密码,包括根本没有密码。这既可以在 Windows GUI 中用于导入证书,也可以使用建议的文档
certutil
。各种错误,包括“网络密码错误”“找不到文件”。使用此问题的答案有助于将证书备份命令重铸为SHA1
注意格式说明符和调用的主要区别-nomac
。这允许certutil
将证书安装到在
certmgr.msc
控制面板小部件中。然而,这些文件仍然无法解密。挑战7:使用证书。本页给出了证书使用的最终答案。
关键任务是使用 Windows 以
certmgr.msc
PKCS12 格式导出新证书。可以根据需要导出带有私钥的证书。最后,使用 Windows GUI 重新安装此证书,并使用导出中设置的密码,并允许将证书安装在配置文件下其类型的自动位置User
(而不是Computer
或Local Machine
)。该证书最终将位于与开始时相同的位置 (User>Personal>Certificates
),但是尝试导出此证书将不允许导出私钥。这是最后一步的结束,现在文件可以解密了。请注意,查看更新
certmgr.msc
通常需要关闭并重新打开它。