Bitlocker加密取证
因为这次市局比赛考察了这个,所以顺便赛后补充一下
2020年1月微软正式终止了对Windows 7的安全更新及系统支持,这也意味着属于它的时代已经结束了。而对于Windows 10以及Windows 11版本的操作系统,甚至在首次激活和使用系统时,在默认情况下就会对磁盘驱动器进行加密。这种加密就是bitlocker加密
加密原理
BitLocker 的核心安全机制建立在密钥链 (Key Chain) 的多层加密架构上。它并不是直接使用用户输入的密码或恢复密钥去逐字节加密硬盘数据,而是采用分层解锁的机制。理解这个层级关系,是进行内存取证和哈希提取的理论基础。
其加密层级自下而上分为三个核心部分:
1. FVEK (Full Volume Encryption Key - 全卷加密密钥)
- 作用:位于密钥链的最底层,是真正用于加密和解密磁盘扇区数据的对称密钥。
- 算法:通常采用 AES-XTS(128位或256位,Windows 10/11 默认)或早期的 AES-CBC 算法。
- 取证意义:FVEK 在磁盘卷建立加密时生成,无论用户后续如何修改解锁密码或更换主板 TPM,FVEK 都保持不变。一旦在系统运行时的内存转储(Memory Dump)中直接提取到 FVEK,即可无视外部所有的密码保护,直接挂载解密磁盘。
2. VMK (Volume Master Key - 卷主密钥)
- 作用:由于 FVEK 极其重要,系统不会让它直接暴露,而是使用 VMK 来对 FVEK 进行加密保护。
- 取证意义:当 BitLocker 卷处于解锁挂载状态时,VMK 会被解密并驻留在系统的物理内存(RAM)中。像 Volatility 这类内存取证框架,其核心逻辑就是通过特征码在内存镜像中搜寻 VMK 或 FVEK 的痕迹。
3. Key Protectors (密钥保护器)
- 作用:位于最外层的“锁”,负责加密和保护 VMK。BitLocker 最大的特点是支持多种保护器同时存在,它们就像是同一扇门上的不同锁孔,只要能打开其中任意一个,就能解开 VMK,进而解开 FVEK 读取数据。
- 常见的保护器类型:
- TPM (受信任的平台模块):基于主板硬件的加密芯片。它会校验系统启动时的环境(如 PCR 寄存器状态),确认没有被植入 Rootkit 或被修改启动项后,静默释放 VMK 解锁 C 盘。
- 用户密码 / PIN 码:用户日常手动输入的解锁凭证。
- 恢复密钥:系统强制生成的 48 位纯数字密钥,通常作为最后的急救手段,也是取证中最常寻找的目标。
- 启动密钥:以外置 USB 设备形式存在的物理密钥(即
.bek文件)。
密钥恢复与提取
内存恢复 (Memory Forensics)
如果说制作内存镜像时 BitLocker 是被解密挂载的状态(即处于解锁状态),那么系统的 RAM 中会保留卷主密钥 (VMK) 或全卷加密密钥 (FVEK)。我们可以从内存镜像中提取出恢复密钥。
- 自动化工具:可以使用 EFDD 或者 Passware Kit Forensic 工具直接导入内存镜像(如
.raw,.mem,.dmp),软件会自动扫描并提取 BitLocker 的恢复密钥。 - 开源取证框架:
在 CTF 比赛或常规取证中,使用 Volatility 提取是非常高效的手段。
- Volatility 3:使用
windows.bitlocker插件可以直接扫描内存中的 BitLocker 密钥信息。- 命令示例:
vol -f mem.raw windows.bitlocker
- 命令示例:
- Volatility 2:可以使用社区提供的
bitlocker插件提取 FVEK。
- Volatility 3:使用
恢复密钥/凭证文件取证
在无法获取内存镜像,或系统被捕获时处于关机状态,需要寻找其他的密钥备份途径:
- 48位恢复密钥:用户在启用 BitLocker 时,系统会强制要求备份一个 48 位的全数字密钥。
- 微软账户同步:如果是家庭版或绑定了微软账户的设备,恢复密钥通常会自动备份在用户的 Microsoft 账户云端 (
account.microsoft.com/devices/recoverykey)。取证时若能获取目标浏览器的登录态、Cookie 或保存的凭据,即可登录云端获取。 - 本地文件查找:用户可能将其保存为
.txt文件(文件名通常包含BitLocker 恢复密钥或Recovery Key),可以使用取证软件在未加密的分区或外置存储中全局搜索此类文本。
- 微软账户同步:如果是家庭版或绑定了微软账户的设备,恢复密钥通常会自动备份在用户的 Microsoft 账户云端 (
- .BEK 密钥文件:如果目标配置了 USB 启动密钥(Startup Key),会生成一个隐藏的
.bek文件。对查获的 U 盘进行分析即可提取。 - 域控制器:如果是企业内网环境,BitLocker 恢复密钥大概率已备份到 AD DS (Active Directory Domain Services) 中。
爆破与哈希提取 (Brute-force)
如果只拿到了加密的磁盘镜像(如 .E01, .dd),且没有内存镜像和备份密钥,可以尝试提取哈希进行爆破(通常针对用户设置的较弱的自定义解锁密码)。
- 提取 Hash:使用
bitlocker2john工具(John the Ripper 套件)从加密镜像或分区中提取出 BitLocker 的哈希值。- 命令:
bitlocker2john -i disk.img > bitlocker_hash.txt
- 命令:
- Hashcat 爆破:获取哈希后,使用 Hashcat 配合字典进行爆破。BitLocker 的哈希类型对应为
22100。- 命令:
hashcat -m 22100 -a 0 bitlocker_hash.txt wordlist.txt
- 命令:
磁盘挂载与分析
获取到恢复密钥或明文密码后,需要对加密镜像进行解密才能进一步做文件系统级的取证(例如查找隐藏进程文件或恢复已删除数据)。
常见解密工具与方式
- DiskGenius:在做数据恢复或快速查看时,可以直接在 DiskGenius 中选中该加密分区,右键选择“解锁 BitLocker 加密”,输入 48 位恢复密钥或密码,即可解析并读取内部文件系统。
- Arsenal Image Mounter (AIM):专业的取证挂载工具。可以将
.E01镜像挂载为虚拟物理磁盘,并在挂载时直接输入密码/恢复密钥,无缝衔接其他磁盘取证工具。 - 命令行 manage-bde (Windows 自身组件):
- 将镜像挂载到本地(假设分配了只读盘符
E:),使用管理员权限运行: - 密码解锁:
manage-bde -unlock E: -password - 恢复密钥解锁:
manage-bde -unlock E: -RecoveryPassword <48位数字密钥>
- 将镜像挂载到本地(假设分配了只读盘符
VeraCrypt 加密取证
VeraCrypt 是一款开源的跨平台磁盘加密软件。在电子取证和 CTF 中,它与 BitLocker 最大的不同在于其无特征的加密结构以及强大的 “隐藏卷 (Hidden Volume)” 功能,具备极强的合理推诿特性。
核心特性与取证难点
- 无特征文件头:VeraCrypt 加密的卷(无论是文件型容器还是整个物理分区)没有任何明文特征码或标识。在取证软件眼里,它看起来就像是一堆完全随机的乱码数据,极难被自动扫描识别。
- 隐藏卷机制:在一个常规的 VeraCrypt 卷内部,可以嵌套创建另一个隐藏卷。如果不提供隐藏卷的特定密码,取证人员在密码学和数学上无法证明隐藏卷的存在。
密钥恢复与提取
1. 内存恢复 (Memory Forensics)
只要 VeraCrypt 卷在系统运行时处于“挂载(解锁)”状态,其主密钥(Master Key)就会驻留在物理内存中。
- 商用工具:同样首推 Passware Kit Forensic (PKF) 或 EFDD。它们能通过扫描内存特征,直接提取出 VeraCrypt 的主密钥用于后续离线解密。
- Volatility (开源提取):
- Volatility 社区有专门针对 VeraCrypt/TrueCrypt 密钥提取的插件(例如
truecryptmaster或基于特征码的社区脚本)。 - 原理依然是在内存中寻找特定的缓存结构和解密后的对称密钥。
- Volatility 社区有专门针对 VeraCrypt/TrueCrypt 密钥提取的插件(例如
2. 爆破与哈希提取 (Brute-force)
由于 VeraCrypt 容器没有固定的标志头,我们需要手动提取卷的头部数据(通常包含加密的主密钥数据块)来进行哈希爆破。
- 提取 Header (头部前 512 字节):可以使用 Linux 系统自带的
dd命令从加密分区或文件中截取。- 命令示例:
dd if=encrypted_volume.hc of=veracrypt_hash.txt bs=512 count=1
- 命令示例:
- Hashcat 爆破:VeraCrypt 支持多种哈希算法组合(如 SHA-512, Whirlpool 等)。在不知道具体算法时,可能需要尝试 Hashcat 的
137xx系列模式。- 模式对应举例:
13721(VeraCrypt PBKDF2-HMAC-SHA512 + XTS-AES) - 爆破命令:
hashcat -m 13721 -a 0 veracrypt_hash.txt wordlist.txt
- 模式对应举例:
磁盘挂载与分析
获取到明文密码后,挂载方式和 BitLocker 类似,但更依赖第三方工具:
- VeraCrypt 官方客户端:直接在取证机上安装客户端,挂载该容器文件或物理分区。
- Arsenal Image Mounter (AIM):同样支持 VeraCrypt。挂载镜像时选择 VeraCrypt 模式输入密码,即可无缝映射为明文逻辑盘。
- 便携模式排查:很多时候嫌疑人并不会在系统里正式安装该软件,而是使用便携版(Portable)。因此在桌面取证时,如果发现来源不明的巨大随机数据文件,应重点排查注册表、Prefetch、Amcache 中是否有
VeraCrypt.exe或TrueCrypt.exe的运行痕迹。