Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
bitlocker-hardening — BitLocker TPM+PIN 加固以防御 CVE-2026-45585(YellowKey) | Kitploit
工具/GitHubGitHub/andrei-majer/bitlocker-hardening
防御工具加密/解密工具漏洞分析漏洞利用配置审计硬件安全身份验证事件响应
GitHubandrei-majer/bitlocker-hardening

bitlocker-hardening

BitLocker TPM+PIN 加固以防御 CVE-2026-45585(YellowKey)

查看仓库
42个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

🔐 yellowkey-mitigation

针对 CVE-2026-45585 (YellowKey) 的 BitLocker TPM+PIN 强化措施

针对 WinRE BitLocker 绕过的自动缓解措施——目前尚无完整补丁

CVE Platform PowerShell License: MIT


🔍 漏洞概述

YellowKey 是一个公开披露的 BitLocker 绕过方法,允许拥有物理访问权限的攻击者在受 BitLocker 保护的 Windows 11 驱动器上获得无限制的 shell——无需恢复密钥、无需 PIN、也无需任何凭据。

Windows 恢复环境中的一个组件 (autofstxe.exe) 执行事务性 NTFS 回放例程,该例程会删除 winpeshl.ini。其副作用是启动一个具有完全访问已解密卷权限的 shell。攻击者通过将文件夹复制到 USB 驱动器(或直接复制到 EFI 分区)、重启进入 WinRE 并按住 CTRL 来触发该攻击。


💡 缓解措施

从 仅 TPM 切换为 TPM+PIN 可以完全阻止该攻击。由于启动时需要 PIN,无论 WinRE shell 如何生成,攻击者都无法解密驱动器——没有正确的 PIN,TPM 不会释放卷主密钥。

仅 TPM 的 BitLocker 会在同硬件上任何启动时自动解锁。而 TPM+PIN 需要一个只有用户知道的秘密,从而堵住了 YellowKey 的漏洞。

该脚本处理了默认情况下阻止 manage-bde 添加 PIN 保护器的组策略先决条件,然后安全地将驱动器从仅 TPM 转换为 TPM+PIN,一次运行即可完成。


⚡ 脚本功能流程

root@kitploit:~
  运行 Add-BitLockerTPMPin.ps1(管理员权限)
       │
       ▼
  [版本检查] ──→ 在 Windows 10 上优雅退出(不受影响)
       │
       ▼
  [BitLocker 状态检查] ──→ 确认 C: 盘加密已激活
       │
       ▼
  [组策略修复] ──→ 设置 UseAdvancedStartup + UseTPMPIN + UseEnhancedPin
       │                   (必需——否则 manage-bde 会拒绝 TPM+PIN)
       ▼
  [gpupdate /force] ──→ 立即应用策略,无需重启
       │
       ▼
  [manage-bde -protectors -add C: -TPMAndPIN] ──→ 交互式提示输入 PIN
       │
       ▼
  [列出保护器] ──→ 显示所有当前保护器以供验证
       │
       ▼
  [移除仅 TPM 保护器] ──→ 可选,带确认提示

🚀 快速开始

前提条件

  • Windows 11(24H2 或更高版本)或 Windows Server 2022/2025
  • C: 盘已启用 BitLocker
  • 管理员权限
  • 运行前确保可访问恢复密钥(存储在 Microsoft 账户中或打印出来)

运行

root@kitploit:~
# 在提升的 PowerShell 提示符下,分别运行以下两条命令:
Set-ExecutionPolicy Bypass -Scope Process -Force
root@kitploit:~
# 所有受 BitLocker 保护的驱动器(自动检测):
.\Add-BitLockerTPMPin.ps1

# 或指定特定驱动器:
.\Add-BitLockerTPMPin.ps1 -Drive C
.\Add-BitLockerTPMPin.ps1 -Drive D

系统会交互式地提示您为每个驱动器设置 PIN。支持字母数字 PIN(脚本通过注册表启用了增强型 PIN)。

注意: TPM+PIN 保护器仅适用于 操作系统驱动器(通过 TPM 启动的驱动器)。数据驱动器(D:、E: 等)使用密码或恢复密钥保护器——脚本会自动检测并跳过它们。


📖 使用说明

交互流程

root@kitploit:~
找到受 BitLocker 保护的驱动器:
  C:\  完全加密  保护:开启
  D:\  完全加密  保护:开启

已设置组策略键。正在刷新策略...

==============================
驱动器:C:\
==============================
正在添加 TPM+PIN 保护器。系统将提示您输入 PIN。
PIN 必须为 6 个字符或以上。支持字母数字。

输入用于保护卷的 PIN:
再次输入 PIN 以确认:
已添加密钥保护器:
  TPM 和 PIN:
    ID:{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}

C:\ 上的当前保护器:
  ...

找到仅 TPM 保护器:{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}
是否移除 C:\ 上的仅 TPM 保护器?这将仅保留 TPM+PIN。(y/N):y
已移除仅 TPM 保护器。

==============================
驱动器:D:\
==============================
D:\ 没有 TPM 保护器——TPM+PIN 仅适用于操作系统驱动器。跳过。

完成。使用以下命令验证:manage-bde -status <drive>

运行后验证

root@kitploit:~
manage-bde -status C:
# 应显示:密钥保护器:TPM 和 PIN
# 保护状态:保护已开启

🛡️ 安全说明

运行前请准备好恢复密钥。 脚本仅在确认 TPM+PIN 保护器已成功添加后才移除仅 TPM 保护器,但如果机器在运行中重启或 manage-bde -add 步骤部分失败,您将需要恢复密钥来解锁驱动器。

立即检索您的恢复密钥:

root@kitploit:~
# 将恢复密钥打印到控制台(存储到安全位置)
manage-bde -protectors -get C: -Type RecoveryPassword

或者在 Microsoft 账户中查找:account.microsoft.com/devices/recoverykey

选择 PIN 很重要。 短数字 PIN 对针对性的物理攻击提供的保护较弱。建议至少使用 8 个字符。脚本已启用字母数字 PIN。


⚙️ 组策略键的作用

脚本在 HKLM:\SOFTWARE\Policies\Microsoft\FVE 下设置四个注册表值:

这些正是 Windows 组策略 (gpedit.msc) 写入的键。通过注册表设置它们等同于通过 MMC 管理单元配置策略。


🔧 手动步骤(无需脚本)

如果您希望单独执行每个步骤:

root@kitploit:~
# 1. 设置组策略注册表键
$p = "HKLM:\SOFTWARE\Policies\Microsoft\FVE"
if (-not (Test-Path $p)) { New-Item -Path $p -Force }
Set-ItemProperty -Path $p -Name "UseAdvancedStartup" -Value 1 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseTPMPIN"          -Value 2 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseTPM"             -Value 2 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseEnhancedPin"     -Value 1 -Type DWord -Force
gpupdate /force

# 2. 添加 TPM+PIN 保护器
manage-bde -protectors -add C: -TPMAndPIN

# 3. 找到仅 TPM 保护器 ID
manage-bde -protectors -get C:

# 4. 移除它(用第 3 步得到的 ID 替换 GUID)
manage-bde -protectors -delete C: -id {YOUR-TPM-ONLY-GUID}

# 5. 验证
manage-bde -status C:

🗂️ 仓库结构

root@kitploit:~
yellowkey-mitigation/
├── Add-BitLockerTPMPin.ps1   # 主要缓解脚本
└── README.md

🤖 AI 致谢

此脚本与 Claude (Anthropic) 共同开发。所有逻辑已由作者在 Windows 11 上审查并测试。


📄 许可证

MIT——可自由使用、修改和分发。


© 2026 Andrei Majer

GitHub LinkedIn

下载工具
详细信息
CVECVE-2026-45585
CVSS 评分6.8(中危)
CVSS 向量CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-77(命令注入)
攻击向量需要物理访问
发布时间2026 年 5 月 19 日
补丁尚无——微软仅发布了手动缓解措施
MSRC 公告msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45585
PoC已公开 (Nightmare-Eclipse/YellowKey)
受影响版本Windows 11 (24H2, 25H2, 26H1), Windows Server 2022/2025
未受影响版本Windows 10
键值作用
UseAdvancedStartup1启用“启动时需要附加身份验证”策略——没有此设置,所有 UseTPM* 键将被忽略
UseTPMPIN20 = 阻止,1 = 强制要求,2 = 允许 TPM+PIN
UseTPM2允许同时使用仅 TPM 和 PIN(防止策略冲突)
UseEnhancedPin1允许在 PIN 中使用字母数字字符