unkvolism/Solemn

GitHub: unkvolism/Solemn

一款基于 Rust 的 Windows 命令行工具,用于自动化管理 HVCI 内存完整性机制的自定义驱动阻止列表,帮助防御方快速拦截已知漏洞或恶意驱动加载。

Stars: 25 | Forks: 7

# 郑重声明

Solemn

一款用于手动将驱动程序添加到 Windows 上 HVCI(内存完整性)自定义阻止列表的命令行工具,基于 Yarden Shafir 的研究。 ## 背景 ### 什么是 HVCI? **基于虚拟机监控程序的代码完整性 (Hypervisor-Protected Code Integrity, HVCI)**,在 Windows 安全中心设置中通常被称为**内存完整性**,是一项关键且基于虚拟化的安全 (VBS) 功能。它使用 Microsoft Hyper-V 虚拟机监控程序来创建一个安全的隔离环境,以保护 Windows 内核的代码完整性 (CI) 过程。 简而言之,HVCI 可确保 Windows 内核中运行的所有代码(尤其是驱动程序)均经过安全签名且未被篡改。这为防范许多试图将恶意代码注入内核的高级恶意软件提供了强有力的保护。 ### `HvciDisallowedImages` 注册表值 尽管 HVCI 依赖于由 Microsoft 管理的易受攻击驱动程序主要阻止列表,但还有一个鲜为人知且功能强大的手动干预功能:`HvciDisallowedImages` 注册表值。 此功能由研究员 Yarden Shafir 进行了详细探讨,它允许系统管理员创建自定义的本机阻止列表。通过在以下位置创建一个 `REG_MULTI_SZ` 值: ``` HKLM\SYSTEM\CurrentControlSet\Control\CI ``` 管理员可以列出他们希望阻止的任何驱动程序的文件名。当 Windows 启动时,代码完整性子系统会读取此列表,并阻止其中列出的任何驱动程序加载,无论其签名如何。 **Solemn** 提供了一个安全便捷的命令行界面来管理此列表。 ## 功能 - 将指定的驱动程序添加到 `HvciDisallowedImages` 阻止列表中。 - 在尝试进行任何修改之前检查管理员权限。 - 如果注册表值不存在,则自动创建。 - 防止向列表中添加重复的驱动程序条目。 - 为状态、成功和错误消息提供清晰、带颜色的命令行输出。 ## 构建 要构建 Solemn,您需要安装 Rust 工具链。您可以从 [rustup.rs](https://rustup.rs/) 获取它。 ``` # 1. Clone the repository git clone https://github.com/unkvolism/Solemn.git cd Solemn # 2. 以 release 模式 Build the project cargo build --release ``` ## 用法 Solemn 必须在具有管理员权限的终端(命令提示符、PowerShell 等)中运行。 该命令使用 `-d` 或 `--driver-name` 标志接受驱动程序的文件名。 ``` # 基本用法 .\solemn.exe --driver-name CursedDriver.sys # 使用 short flag .\solemn.exe -d AnotherDriver.sys ``` ## 警告 此工具会修改与系统启动和安全性相关的 Windows 注册表关键部分。阻止必要的系统驱动程序(例如,像 `storahci.sys`、`nvme.sys` 这样的磁盘驱动程序、核心内核文件或关键芯片组驱动程序)将导致系统无法启动。 - 使用此工具的风险由您自行承担。 - 仅阻止您确认为非必需的驱动程序,或作为特定安全测试一部分的驱动程序。 - 始终备有系统恢复计划,例如 Windows 安装 U 盘,以便在需要时访问恢复工具并离线编辑注册表。 ## 测试环境 Solemn 已在以下环境进行测试: ``` Microsoft Windows [Version 10.0.26100.4946] (Windows 11) ``` ## 致谢 此工具及其底层概念基于 **Yarden Shafir** 展示的出色研究。 使用 `HvciDisallowedImages` 的技术在她在 OffensiveCon 2023 的演讲*"Your Mitigations Are My Opportunities"*中进行了演示。Solemn 是她所展示方法的实用 Rust 实现。 - [Yarden Shafir 的 X (Twitter)](https://x.com/yarden_shafir) - [OffensiveCon 2023 演讲 — *Your Mitigations Are My Opportunities*](https://www.youtube.com/watch?v=YnxGW8Fvqvk)
标签:0day挖掘, Awesome, Conpot, HVCI, HvciDisallowedImages, VBS, Windows安全, Yarden Shafir, 代码完整性, 内存完整性, 内核安全, 可视化界面, 安全防护, 注册表操作, 系统管理, 虚拟化安全, 通知系统, 防恶意软件, 驱动拦截, 驱动程序阻止列表