安全启动缓解编排脚本
概述
此 PowerShell 脚本可自动执行 CVE-2023-24932 的安全启动缓解步骤,如 Microsoft 安全指南 所述。它处理整个过程,包括注册表更新、重启和事件日志验证,以确保您的系统免受 BlackLotus UEFI 启动套件的侵害。
功能
- 完全自动编排:脚本引导您完成每个步骤,包括多次重启,并在每次重启后自动恢复。
- 事件日志验证:检查特定事件 ID(例如 1799、1037)以确认更新成功。
- BitLocker 感知:如果 BitLocker 处于活动状态,则会发出警告,并确保您拥有恢复密钥。
- 硬件兼容性检查:阻止在不受支持的配置上执行(例如,Windows Server 2012/R2 上的 TPM 2.0)。
- 手动验证选项:允许手动检查启动管理器签名和安全启动数据库。
涵盖的步骤
该脚本遵循官方 Microsoft 指南,按顺序执行以下步骤:
-
DB 更新 (0x40)
- 将 "Windows UEFI CA 2023" 证书添加到安全启动数据库 (DB) 中。
- 需要 2 次重启。
-
启动管理器更新 (0x100)
- 将启动管理器更新为使用 "Windows UEFI CA 2023" 证书签名的版本。
- 需要 2 次重启。
-
手动验证(可选)
- 复制启动管理器 (
bootmgfw.efi) 用于手动签名验证。
- 检查 DB 中是否存在 "Windows UEFI CA 2023" 证书。
-
DBX 更新 (0x80)
- 将 "Windows Production PCA 2011" 证书添加到安全启动禁止签名数据库 (DBX) 中。
- 阻止使用此证书签名的旧版启动管理器。
- 需要 2 次重启。
-
SVN 更新 (0x200)
- 更新安全启动安全版本号 (SVN) 以防止回滚攻击。
- 需要 2 次重启。
-
最终报告
先决条件
- Windows 版本:Windows 10/11、Windows Server 2016/2019/2022 或更高版本。
- 管理员权限:必须以管理员身份运行该脚本。
- 启用安全启动:确保系统 UEFI 固件中已启用安全启动。
- BitLocker 恢复密钥:如果 BitLocker 处于活动状态,请确保您拥有恢复密钥。
使用方法
-
下载脚本:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/helleflo1312/Orchestrated-Powerhell-for-CVE-2023-24932/refs/heads/main/CVE-2023-24932-automation.ps1" -OutFile "CVE-2023-24932-automation.ps1"
-
以管理员身份运行脚本:
.\CVE-2023-24932-automation.ps1
-
按照屏幕提示操作。脚本将引导您完成每个步骤,包括重启。
硬件检查:
该脚本将根据 Microsoft 安全指南 检查硬件供应商和兼容性。
事件日志验证
该脚本检查以下事件 ID 以确认更新成功:
- 1036:DB 更新 (0x40) 成功。
- 1799:启动管理器更新 (0x100) 成功。
- 1037:DBX 更新 (0x80) 成功。
如果未找到事件,脚本将显示警告,但会继续执行。您可以使用事件查看器手动验证日志。
该脚本成功运行后的示例:

说明
- 不可逆的更改:一旦应用了 DBX 更新 (0x80),除非重置安全启动,否则无法恢复。
- 恢复介质:在应用 DBX 更新之前,请确保您拥有更新的恢复介质。较旧的介质在更新后可能无法启动。
- 测试:在广泛部署之前,请在非生产环境中测试脚本。
故障排除
- 事件日志错误:如果脚本未能找到预期的事件 ID,请手动检查系统日志以查找错误。
- BitLocker 恢复:如果系统进入 BitLocker 恢复模式,请使用恢复密钥解锁驱动器。
- 固件问题:某些 UEFI 固件可能不支持所需的更新。请联系硬件供应商获取更新。
参考
许可证
此脚本根据 MIT 许可证提供。使用风险自负。
贡献
如果您遇到问题或有改进建议,请在 GitHub 上提出问题或提交拉取请求。
免责声明
此脚本按原样提供,不提供任何形式的担保。在部署到生产系统之前,请务必在非生产环境中进行测试。