最近,我正在从死机(电源损坏)的 Windows XP 机器中恢复数据,其中包括安装在 IE 6 中的一些客户端证书。我插入了一个临时电源并尝试导出证书,但却被告知“这些证书被标记为不可导出,因此无法导出私钥”。
我已经在 intertubes 上进行了一些搜索,但是我能找到的唯一建议与预安装场景有关(即显然有一个选项可以在安装过程中检查以避免这种情况)。
我的问题是:
- 这是真正的安全措施吗?在我看来,你可以简单地修补 IE6(或 CryptoAPI)中的验证逻辑并强制导出证书/私钥
- 是否有现成的工具可以做到这一点?(例如用于备份目的)
答案1
导出已标记为不可导出的证书上的私钥?呃,怎么样一个名为 Jailbreak 的工具...
答案2
“不可导出”是指私钥无法访问CryptExportKey()
。也许可以修补内存中的 CryptoAPI,但我没有找到任何相关参考。
也可能有一种方法可以在另一个系统中加载注册表“配置单元”并复制证书或编辑“不可导出”位......但同样,googlenet 上没有这样的东西。
答案3
更新:
mimikatz 有新版本,也支持 CNG Export(Windows Vista / 7 / 2008...)
- 下载(并以管理权限启动;主干版本为最新版本)
privilege::debug
(如果您已经是系统或者仅以 CryptoApi 为目标则不需要)crypto::patchcng
(nt 6) 和/或crypto::patchcapi
(nt 5 & 6)crypto::exportCertificates
和/或crypto::exportCertificates CERT_SYSTEM_STORE_LOCAL_MACHINE
pfx 文件受密码保护“mimikatz”
旧帖:
也许您可以尝试具有其他私钥功能的另一个工具:“mimikatz”,它导出其他无法导出的密钥(不可导出、介质保护、孤立密钥等)。系统文件上的“位”不会改变,只有程序上下文会被改变:)例如,用户(不是管理员)可以导出他自己的受保护/不可导出的密钥,而无需特定权限。