oxfemale/KillChain
GitHub: oxfemale/KillChain
利用存在漏洞的内核驱动程序(CVE-2026-0828)从用户态绕过 Windows 进程保护机制,终止受保护进程并可选禁用 Windows Defender 的内核级进程终止工具。
Stars: 7 | Forks: 0
# KillChain


## 概述
**KillChain** 是一个用户模式工具,利用存在漏洞的内核驱动程序(`ProcessMonitorDriver.sys`,CVE-2026-0828)从用户空间终止受保护的进程。它通过自定义的 IOCTL 接口与内核通信,绕过了标准的进程保护机制。
该工具将驱动程序二进制文件直接嵌入到可执行文件中,在运行时将其解压到临时位置,将其注册为内核服务,通过 `NtLoadDriver` 加载,并通过 `DeviceIoControl` 发送终止请求。
## 演示
[](https://youtube.com/shorts/gF7_tfTjnHQ)
## 架构
```
KillChain/
??? KillChain.cpp — Entry point, CLI argument parsing, main termination loop
??? LoadDriver.h — Driver extraction, service registration, NtLoadDriver/NtUnloadDriver logic
??? Logger.h — Thread-safe console/file logging with color-coded output
??? driverBytes.h — Embedded driver binary (raw byte array)
ProcessMonitorDriver.sys (embedded inside the executable)
??? Exposes IOCTL_KILL_PROCESS (0xB822200C) — terminates a target process by PID
```
### 执行流程
```
1. Parse CLI arguments
2. Extract embedded .sys ? %TEMP%\EmbeddedDriverService.sys
3. Create registry service key + register via SCM
4. Load driver into kernel via NtLoadDriver (requires SeLoadDriverPrivilege)
5. Open device handle: \\.\STProcessMonitorDriver
6. Loop (up to 360 seconds):
a. Resolve PID by name on every iteration (if --name was used)
b. Send IOCTL_KILL_PROCESS with the target PID
c. After 2 successful kills, optionally disable Windows Defender via registry
7. Close device handle; optionally run --uninstall-driver cleanup
```
## 功能
| 功能 | 描述 |
|---|---|
| **按 PID 终止** | 通过内核 IOCTL 根据数字 PID 终止任何进程 |
| **按名称终止** | 根据可执行文件名解析并终止进程,每次迭代都会重新检查 |
| **持久循环** | 持续监控并重新终止目标进程,最长可达 360 秒 |
| **禁用 Defender** | 写入 `HKLM\SOFTWARE\Policies\Microsoft\Windows Defender` 以禁用实时保护 |
| **内嵌驱动** | 驱动程序二进制文件直接打包进可执行文件中 —— 无需外部 `.sys` 文件 |
| **卸载驱动** | 从内核卸载驱动程序,移除 SCM 服务,清理注册表,删除临时文件 |
| **可配置日志** | 四个详细级别,支持可选的文件输出 |
## 环境要求
- Windows 10 / 11 (x64)
- **管理员权限** —— `SeLoadDriverPrivilege` 和注册表访问需要此权限
- 已启用**测试签名模式**,或具备有效的驱动程序签名
- Visual Studio 2022 及 **C++20** 工具集
## 构建
1. 在 Visual Studio 2022 中打开 `KillChain.sln`
2. 选择 **Release | x64** 配置
3. 按下 `Ctrl+Shift+B` 进行构建
输出路径:`x64\Release\KillChain.exe`
## 使用方法
```
KillChain.exe [options]
Options:
--pid Terminate process by PID
--name Terminate process by executable name
--disable-defender Also disable Windows Defender via registry
--log-level <0-3> Logging verbosity (0=errors, 1=normal, 2=verbose, 3=debug)
--output Save log output to file
--uninstall-driver Unload driver, delete service and driver file
--help Show this help
```
### 示例
```
REM Terminate a protected process by name
KillChain.exe --name MsMpEng.exe
REM Terminate by PID with verbose logging written to a file
KillChain.exe --pid 1234 --log-level 2 --output log.txt
REM Kill a process and disable Windows Defender afterwards
KillChain.exe --name notepad.exe --disable-defender
REM Clean up the driver after testing
KillChain.exe --uninstall-driver
```
## IOCTL 接口
| 常量 | 值 |
|---|---|
| `IOCTL_KILL_PROCESS` | `0xB822200C` |
| 字段 | 类型 | 描述 |
|---|---|---|
| 输入缓冲区 | `ULONG64` | 目标进程 PID |
| 输出缓冲区 | `DWORD` | 未使用 (虚设) |
| 设备路径 | — | `\\.\STProcessMonitorDriver` |
## 日志记录
| 级别 | 值 | 描述 |
|---|---|---|
| `LOG_ERROR` | 0 | 仅错误 |
| `LOG_INFO` | 1 | 正常操作消息 *(默认)* |
| `LOG_WARNING` | 2 | 警告和信息消息 |
| `LOG_DEBUG` | 3 | 完整调试跟踪 |
输出是线程安全的(由 `CRITICAL_SECTION` 支持),可以同时写入带有 ANSI 颜色的控制台和日志文件。
## 驱动程序生命周期
| 步骤 | Win32 / NT API |
|---|---|
| 解压至临时目录 | `CreateFile` + `WriteFile` |
| 注册服务 | `RegCreateKeyEx` + `CreateService` (SCM) |
| 加载至内核 | `NtLoadDriver` (ntdll) |
| 验证是否活动 | `EnumDeviceDrivers` + `GetDeviceDriverBaseName` |
| 从内核卸载 | `NtUnloadDriver` (ntdll) |
| 移除服务 | `DeleteService` (SCM) + `RegDeleteTree` |
| 删除临时文件 | `DeleteFile` |
## CVE 参考
**CVE-2026-0828** —— `ProcessMonitorDriver.sys` 暴露了一个 IOCTL,允许任何拥有设备句柄的用户模式调用者终止任意进程——包括受保护的系统进程——而无需进行标准的访问控制检查。
## 作者
**Eleven Red Pandas**
- GitHub: [https://github.com/oxfemale](https://github.com/oxfemale)
- X: [https://x.com/bytecodevm](https://x.com/bytecodevm)
## 许可证
本项目仅提供用于**教育和研究目的**。严禁在生产环境中重新分发或使用。
标签:0day挖掘, C++, CVE-2026-0828, DAST, IOCTL通信, Linux, NtLoadDriver, Web报告查看器, Windows内核, 云资产清单, 内核安全, 内核驱动, 反杀软, 子域名枚举, 客户端加密, 底层开发, 恶意软件分析, 提权, 数据展示, 数据擦除, 杀进程, 白帽子, 系统安全, 红队, 绕过防护, 网络协议, 进程操作, 进程终止, 逆向工程, 驱动加载