oxfemale/KillChain

GitHub: oxfemale/KillChain

利用存在漏洞的内核驱动程序(CVE-2026-0828)从用户态绕过 Windows 进程保护机制,终止受保护进程并可选禁用 Windows Defender 的内核级进程终止工具。

Stars: 7 | Forks: 0

# KillChain ![killchain](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6d1817613e221236.png) ![killchain](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/93e8397638221238.png) ## 概述 **KillChain** 是一个用户模式工具,利用存在漏洞的内核驱动程序(`ProcessMonitorDriver.sys`,CVE-2026-0828)从用户空间终止受保护的进程。它通过自定义的 IOCTL 接口与内核通信,绕过了标准的进程保护机制。 该工具将驱动程序二进制文件直接嵌入到可执行文件中,在运行时将其解压到临时位置,将其注册为内核服务,通过 `NtLoadDriver` 加载,并通过 `DeviceIoControl` 发送终止请求。 ## 演示 [![KillChain 演示](https://img.youtube.com/vi/gF7_tfTjnHQ/0.jpg)](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内核, 云资产清单, 内核安全, 内核驱动, 反杀软, 子域名枚举, 客户端加密, 底层开发, 恶意软件分析, 提权, 数据展示, 数据擦除, 杀进程, 白帽子, 系统安全, 红队, 绕过防护, 网络协议, 进程操作, 进程终止, 逆向工程, 驱动加载