Bitlocker密钥提取之SYSTEM劫持

article/2025/7/18 20:35:12

该漏洞编号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加密磁盘恢复密钥,如下图所示

 完!


http://www.hkcw.cn/article/tkkijXdreI.shtml

相关文章

明场检测与暗场检测的原理

知识星球里的学员问:明场检测与暗场检测原理上有什么区别? 如上图, 明场检测(Bright-field Inspection) 工作原理: 光线从近乎垂直照射到样品表面。 如果表面平整、无缺陷,光线会直接反射回镜…

STL解析——vector的使用及模拟实现

目录 1.使用篇 1.1默认成员函数 1.2其他常用接口 2.模拟实现 2.1源码逻辑参考 2.2基本函数实现 2.3增 2.4删 2.5迭代器失效 2.6拷贝构造级其他接口 2.7赋值运算符重载(现代写法) 2.8深层次拷贝优化 3.整体代码 在C中vector算正式STL容器,功能可以类比于…

day2实训

实训任务1 FTPASS wireshark打开 实训任务2 数据包中的线索 解码的图片 实训任务3 被嗅探的流量 过滤http,追踪post的http流 实训任务6 小明的保险箱 winhex打开

Window10+ 安装 go环境

一、 下载 golang 源码: 去官网下载: https://go.dev/dl/ ,当前时间(2025-05)最新版本如下: 二、 首先在指定的磁盘下创建几个文件夹 比如在 E盘创建 software 文件夹 E:\SoftWare,然后在创建如下几个文件夹 E:\S…

8.5 Q1|广州医科大学CHARLS发文 甘油三酯葡萄糖指数累积变化与 0-3期心血管-肾脏-代谢综合征人群中风发生率的相关性

1.第一段-文章基本信息 文章题目:Association between cumulative changes of the triglyceride glucose index and incidence of stroke in a population with cardiovascular-kidney-metabolic syndrome stage 0-3: a nationwide prospective cohort study 中文标…

重读《人件》Peopleware -(13)Ⅱ 办公环境 Ⅵ 电话

当你开始收集有关工作时间质量的数据时,你的注意力自然会集中在主要的干扰源之一——打进来的电话。一天内接15个电话并不罕见。虽然这看似平常,但由于重新沉浸所需的时间,它可能会耗尽你几乎一整天的时间。当一天结束时,你会纳闷…

ARXML解析与可视化工具

随着汽车电子行业的快速发展,AUTOSAR标准在车辆软件架构中发挥着越来越重要的作用。然而,传统的ARXML文件处理工具往往存在高昂的许可费用、封闭的数据格式和复杂的使用门槛等问题。本文介绍一种基于TXT格式输出的ARXML解析方案,为开发团队提供了一个高效的替代解决方案。 …

C#中数据绑定的简单例子

数据绑定允许将控件的属性和数据链接起来——控件属性值发生改变,会导致数据跟着自动改变。 数据绑定还可以是双向的——控件属性值发生改变,会导致数据跟着自动改变;数据发生改变,也会导致控件属性值跟着自动改变。 1、数据绑定…

训练和测试的规范写法

单通道图片的规范写法 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt import numpy as np# 设置中文字体支持 plt.rcParams[&quo…

【Web应用】若依框架:基础篇12 项目结构

文章目录 ⭐前言⭐一、课程讲解🌟1、寻找合适的对象✨1) ⭐二、怎样选择设计模式?🌟1、寻找合适的对象✨1) ⭐三、怎样使用设计模式?🌟1、寻找合适的对象✨1) ⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里…

系统设计——状态机模型设计经验

摘要 本文主要介绍了状态机模型的设计经验,包括其定义、适用场景、建模示例、事件驱动设计以及配置数据化等内容。状态机模型通过事件驱动控制状态变化,适用于流程驱动系统、生命周期管理等场景,不适用于状态变化简单或不确定的场景。文中还…

WSP 对CSV文件中E+如何恢复可用方案

背景 在日常工作中会遇到从系统软件中导出的csv文件,其中长的字符会被自动科学计数,转成E,导致数据失去原来的信息。 样例 从系统中导出的用户表,其中【mobile】和【serial_no】两列的数据被转化为E,失去原始的信息…

突破知识传统依赖:模型内在推理能力评估的基准测试集 KOR-Bench

项目主页:https://kor-bench.github.io/ GitHub: https://github.com/multimodal-art-projection/KOR-BENCH 论文:https://arxiv.org/abs/2410.06526 随着人工智能技术的迅猛发展,大模型评估已成为AI领域的关键议题。在前序文章中&#xf…

ReactHook有哪些

React 中常用的 Hooks 列表及用法 React Hooks 是 React 16.8 版本引入的一项重要特性,它极大地简化和优化了函数组件的开发过程。以下是 React 中常用的 Hooks 列表及其详细用法: 1. useState useState 是用于在函数组件中添加状态的 Hook。通过调用…

移动端上拉 下拉 初始状态解决方案

引入第三方组件嵌套 手机端 将页面分为两部分: top顶部标题 例如search输入mescrollvue 组件嵌套 里面使用for 循环 初始状态下有三个状态的回调函数 分别是down up init 三个 分别对应下拉 上拉 初始状态触发

DMNDDB INSTALL新云文档数据库安装部署

DMNDDB INSTALL新云文档数据库安装部署 1 环境说明2 优化root用户限制3 准备安装包3.1 部署安装包3.2 安装目录介绍3.2.1 默认目录安装路径bin3.2.2 默认目录安装路径conf3.2.3 默认目录安装路径doc3.2.4 默认目录安装路径 thirdparty3.2.5 默认目录安装路径 tools 4 一键安装4…

深入剖析 DMA:原理、结构与工作流程详解

文章目录 DMADMA简介存储器映像DMA框图DMA基本结构DMA请求数据宽度与对齐数据转运DMA变量与常量实验外设寄存器访问DMA 配置与编程思路DMA 代码实现与测试DMA模块主要代码 DMA DMA简介 DMA 简介 功能与权限:英文全称 direct memory access,可直接访问…

从公开到私密:重新思考 Web3 的数据安全

去中心化存储是 Web3 的基石之一,使用户和应用能够在无需依赖中心化服务商的情况下存储数据。但自由也带来了一个重大挑战:数据安全。在一个无许可的世界中,如何确保用户文档、游戏资产或 AI 数据集等敏感内容是私密的、可控访问的&#xff0…

xilinx位置约束

xilinx位置约束 1.set_property LOC XXX XXX 参考:https://blog.csdn.net/Calvin790704/article/details/132980316 参考:https://blog.csdn.net/u011329967/article/details/124466598 pcie bank参考:Xilinx PCIE core管脚分配错误的解决方案…

亚马逊商品评论爬取与情感分析:Python+BeautifulSoup实战(含防封策略)

一、数据爬取模块(Python示例) import requests from bs4 import BeautifulSoup import pandas as pd import timeheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36,Accept-Language: en-US }def scrape_amazon_re…