Bitlocker 在没有恢复密码和密钥下恢复的方法
谈起哥
2023年10月15日 14:22
收录于文集
共60篇

要恢复首先要了解 Bitlocker 的机制,如下图:

BitLocker使用对称加密。默认情况下,AES-128用于在XTS(新)或CBC(旧)模式下加密数据。数据使用 VMK(卷主密钥)加密。反过来可以通过以下方式之一获得:

  1. 如果为给定卷启用了此保护器,则使用用户的加密密码解密。

  2. 用恢复密钥解密。首次启用加密后,会自动生成恢复密钥。然后,密钥要么存储到一个文件中,要么上传到保存在Active Directory中的用户的Microsoft帐户。

  3. (您在这里)当满足某些条件时,从TPM模块中提取。

TPM的基本原理与区块链非常相似。在启动过程中,系统构建信任链,该链存储在PCR(平台配置寄存器)寄存器中。

这就是计算机启动时发生的情况:

  1. 开机。SRTM(测量的静态信任根)是加载的第一个可信模块。此模块存储在计算机的 ROM 中,无法更改。该模块中的漏洞破坏了整个保护方案,适用于 iOS 设备的 checkm8 漏洞的开发人员清楚地证明了这一点。SRTM通过计算计算机 BIOS 的哈希值将第一条记录插入信任链。散列存储在PCR寄存器中。

  2. UEFI BIOS 加载。BIOS 分析计算机的配置,包括硬盘分区、MBR(主引导记录)、引导加载程序和许多其他参数,包括某些组件的固件校验和(例如指纹读取器或智能卡读卡器)。值得注意的是,上一个PCR寄存器的值用于计算新的散列值,这意味着对单个PCR寄存器的任何修改都会破坏整个链。

  3. 在填写了几个PCR寄存器后,BIOS从MBR加载引导加载器。引导加载程序再插入一些记录。

  4. 最后,操作系统内核启动。内核不断增加信任链。

如你所见,一旦操作系统最终加载,PCR寄存器将包含整个信任链。请注意,TPM模块不允许修改PCR寄存器;不能更改现有记录,只能添加新记录。所以你们会发现自己的笔记本电脑,经常有时候启动需要恢复密码,就是是因为某个记录被更改了导致与记录不符。这种情况有以下几种: A,Bios被还原了。如果是你没操作,就是系统更新升级 Bios 导致被还原。 B,你电脑硬件更改了。比如网卡更换了,硬盘新增加了。 C,还有个可能就是你的电脑有硬件问题。导致记录不准确。

BitLocker加密

一旦用户在磁盘卷上启用BitLocker,Windows将生成随机卷主密钥(VMK)和恢复密钥。然后,主密钥存储在TPM模块中;它也使用恢复密钥加密。然后,加密的VMK保存在磁盘头中。重新启动计算机后,会发生以下情况:

  1. 所有PCR寄存器都归零。

  2. 该系统遵循前面描述的步骤1至4。

  3. 操作系统内核尝试解锁加密卷,并从TPM模块请求VMK。TPM模块反过来通过检查PCR寄存器来分析信任链。如果信任链损坏,则不会释放VMK;操作系统内核会显示一条消息,要求用户使用恢复密钥解锁卷。

如你所见,如果计算机已关机,获得VMK的唯一方法是在原始配置中启动原始操作系统。更改单个组件将触发恢复密钥的提示。 那破解的方法有没有呢?这世界有矛就会有盾。

绕过TPM

大多数情况下,你正在分析一个“冷”系统。如果是这种情况,请确保在所有其他事情之前捕获磁盘映像。您可以使用Elcomsoft System Recovery来做到这一点。在拍摄图像之前,您将能够看到磁盘分区列表及其加密设置。如果工具报告磁盘已使用BitLocker加密,但无法提取密码散列,则必须使用恢复密钥或尝试从TPM中提取VMK。

从RAM中提取卷主密钥

如果您能够登录计算机,您可以尝试捕获其内存图像。通过对Elcomsoft Forensic Disk Decryptor分析RAM映像,您可以发现主密钥并解密卷,而无需任何其他攻击。然而,如果用户指定了预启动保护器,例如额外的PIN码(TPM+PIN),则无法做到这一点。如果您试图暴力强制PIN,TPM将恐慌并永久或锁定对加密密钥的访问,或锁定一段时间。

虽然您可能更喜欢实时系统分析,而不是捕获加密密钥和解密磁盘映像,但即使劳动密集型,离线分析在法医方面也明显更合理。

冷启动和FireWire/Thunderbolt攻击 TPM在早期阶段发布VMK的事实允许进行一种非常独特的攻击,通常称为“冷启动攻击”。这种攻击是基于这样一个事实,即计算机的内存芯片在关机后保留其内容几秒钟。然而,如果冷却到零度以下的温度,这些模块将保留数据的时间更长。在冷启动攻击期间,您将启动计算机并等待系统启动。当计算机显示登录提示时,BitLocker 卷已经挂载,VMK已解密并存储在计算机的RAM中。然后,您将使用市售的制冷剂喷雾冷却RAM模块,立即移除模块,将它们安装到测试计算机中,并将其引导到带有LiME内核扩展的Linux映像中。然后,您可以转储内存映像,并使用 Elcomsoft Forensic Disk Decryptor 扫描 BitLocker 加密密钥。

如果运行 Windows 7和 Windows 8的旧系统配备了 FireWire 或 Thunderbolt 端口或PC卡插槽,则类似的攻击也可用。如果是这种情况,您可以尝试使用臭名昭著的Inception工具捕获内存转储(是的,这是“那个Python工具”)。使用Inception制作的内存转储可以加载到 Elcomsoft Forensic Disk Decryptor 中,并扫描主密钥。然后,VMK用于完全解密磁盘映像或挂载它以加快分析速度。

不幸的是,此方法仅在运行Windows 7或Windows 8的旧系统上可用。Windows 8.1已经通过在计算机处于睡眠或锁定状态时通过 Thunderbolt 禁用DMA来修复该漏洞。

睡眠模式攻击

2018年,国家安全研究所的研究人员Seunghun Han、Wook Shin、Jun-Hyeok Park和HyoungChun Kim发表了一篇名为《坏梦:颠覆可信平台》的论文

睡觉时的模块(PDF)。当计算机进入节能睡眠状态时,TPM将其PCR寄存器保存在NVRAM中,并在计算机唤醒时恢复它们。研究人员发现,在这个短暂的时刻,PCR寄存器可以被操纵,从而读取信任链或修改其内容。研究人员通知了英特尔、联想、技嘉、戴尔和惠普等主要主板制造商,这些制造商反过来在BIOS更新中修补了该漏洞。然而,由于很少有用户安装BIOS更新,许多计算机仍然容易受到此漏洞的攻击。

Seunghun Han发布了两个工具:TPM的Napper和Bitleaker。第一个工具可用于测试计算机的TPM芯片是否存在“Bad Dream”漏洞,而第二个工具是如果TPM模块具有未修补的漏洞,则可以运行的实际漏洞。 第二个工具需要使用Ubuntu手动创建Live CD,根据手册编译和安装Bitleaker。您需要禁用安全启动才能运行该工具。另一种方法是使用您的签名对修改后的引导加载程序和内核进行签名,并将公钥添加到BIOS中;然而,这违背了目的,因为它改变了PCR寄存器的内容。 其实这个方法也可以用来刷新自定义 ROM 被禁止刷新的 Bios 的机器。我记得联想机器有这个案列。

拦截TPM信号

TPM模块通过LPC(低引脚计数)总线连接到计算机。此总线用于在“慢速”设备(如串行端口)之间传输数据。它以33 MHz的频率运行。Denis Andzakovic声称,默认情况下,可以通过嗅探LPC总线,在TPM返回时检索卷主密钥,并使用检索的VMK解密受保护的驱动器来访问受保护的驱动器。

对于TPM 1.2,他使用了带有USB接口的DSLogic Plus逻辑分析仪。然而,他发现它远非完美,因为他必须解决同步问题,甚至修补固件。然而,他能够成功地从TPM模块中提取VMK。

使用便宜的FPGA格子ICEStick和专为嗅探TPM模块而设计的特殊固件,嗅探TPM 2.0要容易得多。 他需要做的就是焊接针脚,启用嗅探器并获得万能钥匙。丹尼斯的原创文章中有更多关于这一点的信息。请注意,带有附加TPM芯片的台式机主板更容易嗅探,无需焊接。 此方法在BitLocker的默认配置中有效。如果用户使用PIN码启用预引导身份验证,则需要PIN码才能使TPM释放VMK。此方法不适用于英特尔PTT,因为无法对模块的接口进行物理访问。 结合TPM,BitLocker可以实现安全保护,防止未经授权的访问。尽管TPM芯片本身不进行加密,但访问加密密钥并非易事。 虽然方法有了,但是都比较复杂,需要专业人员操作。你所需要的就是给钱,其他任何操作都不要。