当前位置: 首页 > news >正文

Bitlocker密钥提取之SYSTEM劫持

该漏洞编号CVE-2024-20666,本文实现复现过程,Windows系统版本如下

简介

从Windows10(th1)开始,微软在winload模块中,增加了systemdatadevice字段值的获取,该字段值存储在BCD引导配置文件中。当winload加载SYSTEM注册表文件时,会先尝试从BCD文件中获取systemdatadevice配置项的值,如果存在该项,则从systemdatadevice配置的设备分区中加载SYSTEM注册表文件。使用IDA分析winload.efi模块的相关函数如下

如上图所示,在函数OslpLoadSystemHive中,通过BlGetBootOptionDevice函数获取0x21000150类型值,即systemdatadevice的值,如果获取成功,则从该设备中访问SYSTEM注册表文件,不再从系统所在位置获取SYSTEM注册表文件。

可以通过该网站查询0x21000150类型对应的BCD中字段名信息。 

相同的功能适用于WinRE环境中,由此,可以在WinPE下修改系统的引导配置文件BCD,在Recovery项目中增加systemdatadevice字段选项。这样在重启进入Recovery环境时,通过启动一个cmd窗口,即可提取到BitLocker加密磁盘的恢复密钥。

实现步骤

提取SYSTEM注册表文件

首先启动目标电脑到WinPE中,通过Winhex或者其它工具提取目标磁盘中的Recovery分区中的Winre.wim文件。

接下来通过7z工具打开winre.wim文件,提取\Windows\System32\config\SYSTEM注册表文件到U盘。通过regedit系统自带的注册表工具从U盘加载提取到的SYSTEM文件,加载在HKEY_LOCAL_MACHINE项下,然后修改HKEY_LOCAL_MACHINE\【加载SYSTEM自定义名】\SYSTEM\SetupCmdLine的值,将其修改为cmd.exe,实现启动Recovery时,直接弹出cmd命令行窗口。

 修改完成后,卸载该SYSTEM注册表,将其保存在U盘备用。

修改BCD配置

按住Shift键,同时点击目标系统登录窗口右下角重启按钮,随后系统重启到恢复模式,如下图所示

选择“疑难解答”、“高级选项”、“命令行提示符”,提示输入BitLocker恢复密钥时,选择“跳过”,随后将弹出一个cmd命令行窗口。

在命令行窗口中,修改目标系统的BCD配置。

首先挂载EFI分区

mountvol s: /s

 枚举BCD中所有的项的配置信息

bcdedit /enum all /raw

在输出结果中找到description的值为Windows Recovery Environment 一项,如下所示

在该项中增加systemdatadevice子项,设置其指向EFI分析所在的分区,即刚才挂载到S:\盘的分区。

bcdedit /set {current} systemdatadevice hd_partition=s: 

修改后的内容如下

bcdedit /enum all /raw 

 接下来,在S:\盘中创建目录S:\Windows\System32\config,拷贝U盘中SYSTEM注册表文件到该目录下,完整路径:S:\Windows\System32\config\SYSTEM

重启目标系统到登录窗口,再次按Shift + 重启按钮,系统重启后进入恢复模式,但这次将直接弹出一个cmd窗口,在该cmd命令行窗口中输入

manage-bde -protectors -get c:

 直接提取目标系统BitLocker加密磁盘恢复密钥,如下图所示

 完!

相关文章:

  • C++17原生测试编程实践:现代特性与分支覆盖指南
  • 如何做好一份技术文档:从信息孤岛到知识图谱的进阶之路
  • 深入理解 Git 底层机制:指针(Refs)、提交(Commit)与分支的关系
  • 【Python-Day 20】揭秘Python变量作用域:LEGB规则与global/nonlocal关键字详解
  • 晨控CK-UR12与西门子PLC配置Modbus TCP通讯连接操作手册
  • TC/BC/OC P2P/E2E有啥区别?-PTP协议基础概念介绍
  • DAY 15 复习日
  • 长尾关键词优化驱动SEO增长
  • 二叉树实验
  • 自动过滤:用 AutoFilterer 实现高性能动态查询
  • 4.0/Q2,GBD数据库最新文章解读
  • PostIn V1.1.2版本发布,新增接口评审功能,提升接口质量与合理性
  • Android 代码阅读环境搭建:VSCODE + SSH + CLANGD(详细版)
  • QPushButton设置菜单
  • [原创](Windows使用技巧): Windwos11如何设置局域网共享访问? (多图详解)
  • MFA多因素认证与TOTP算法核心解析(含Java案例)
  • [正点原子]ESP32S3 RGB屏幕移植LVGL
  • windows下安装docker、dify、ollama
  • C语言面试题【01】
  • 进程间通信及管道(理论)
  • 做动图的网站知乎/seo网站优化方案案例
  • 电商平台正在建设中网站页面提示/免费发外链
  • 如何制作网页网站/品牌词优化
  • 电子商务网站建设报告分析/杭州seo 云优化科技
  • 如何做购物网站的后台/品牌互动营销案例
  • 中山seo网站优化公司/电池优化大师下载