一款跨版本 Windows 进程终结工具。它加载一个已签名的 HONOR 内核驱动程序(MonProcessEX.sys),解析每个目标进程的 PID,并通过单个 IOCTL 从内核上下文将其终止。无需内核偏移量、无需下载 PDB、无需针对特定构建的 shellcode——该技术在所有 Windows 10 和 Windows 11 版本上均以相同方式工作。
该工具是一个独立的可执行文件。它通过服务控制管理器安装驱动程序,执行终止操作,然后停止并删除服务,不留任何持久化痕迹。目标可通过配置文件、命令行或内置默认值在运行时配置。
天生跨版本。 一个驱动程序、一个 IOCTL、一个终止原语。适用于所有 Windows 10 和 Windows 11 版本。
1. 将 moncrush.exe 和 MonProcessEX.sys 放在同一文件夹中。
2. 在提升权限的 shell 中运行。
moncrush.exe -n "notepad.exe,calc.exe"
3. 目标进程被终止。驱动程序自行卸载。完成。
无需工具链、无需偏移量、无需构建步骤。
+-------------------------------------------------------------------------------------------+
| 用户模式 |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | 枚举所有 | | 通过进程条目 | | 与目标列表 | |
| | 正在运行的 | -> | 解析目标 PID | -> | 匹配, | |
| | 进程 | | | | 收集 PID | |
| +-------------------+ +-------------------+ +----------+----------+ |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| output = 终止状态 v |
+-------------------------------------------------------------------------------------------+
| 内核模式 |
| |
| MonProcessEX.sys 已签名的 HONOR 内核驱动程序 |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> PID 终止分发 | |
| | | | |
| | | 内核模式进程查找 | |
| | v | |
| | 定位 EPROCESS -> 从内核上下文终止 | |
| | | | |
| | v | |
| | 调用进程退出路径 | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| 清理 |
| +---------------------------------------------------------------------------------+ |
| | 停止并删除 SCM 服务 | |
| | 卸载驱动程序,不留持久化痕迹 | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
该驱动程序暴露了一个终止 IOCTL,可根据给定的 PID 终止进程。用户模式组件枚举正在运行的进程、解析每个目标的 PID,并通过设备接口提交。用户模式不会触及任何内核结构,因此该技术不受 Windows 版本变化的影响。
cargo build --release --target x86_64-pc-windows-gnu
发布配置启用了 LTO 和单一代码生成单元。该项目自带 [workspace] 声明,完全自包含。
moncrush.exe [options]
-s, --silent 抑制所有控制台输出
-r, --repeat 持续运行,重新检查目标
-d, --dry-run 枚举目标但不终止
-j, --json 机器可读的 JSON 输出
-l, --list 打印目标名称并退出
-v, --version 打印版本并退出
-x, --self-destruct 成功运行后删除自身
--no-check 跳过虚拟机和调试器检查
--delay <ms> 执行前休眠
--jitter <ms> 随机化重复间隔
--max-attempts <n> 在 n 轮终止后停止(0=无限)
--svc <name> 自定义服务名称
--driver <path> 自定义驱动程序文件路径
-n, --names <csv> 逗号分隔的目标列表覆盖
-c, --config <path> 从配置文件加载目标
-h, --help 显示此帮助
退出码:0 成功,2 无目标,3 驱动程序失败,5 环境中止。目标解析顺序:--names > --config > targets.conf(磁盘)> 内置默认值。
--no-check 绕过。--delay <ms> 在执行任何操作前休眠,打破与初始执行的时间关联。-x 在成功运行后删除可执行文件并清除其 Prefetch 条目。目标列表完全可配置,无需重新编译:
配置文件。 在可执行文件旁边放置 targets.conf,每行一个进程名称。以 # 开头的行将被忽略:
MsMpEng.exe
csfalconservice.exe
SentinelAgent.exe
cortex_agent.exe
模板随附为 targets.example.conf。
命令行。 moncrush.exe -n "MsMpEng.exe,csfalconservice.exe"
内置默认值。 无配置且无参数时,内置集合为:
MIT。参见 LICENSE。
本项目仅用于研究和授权测试。在非您拥有的系统中加载未签名或易受攻击的驱动程序在大多数司法管辖区属于违法行为。您有责任遵守所有适用法律以及您所测试系统的授权范围。
| 功能 | 详情 |
|---|
| 跨版本 | 适用于所有 Windows 10 和 Windows 11 版本,无需偏移量 |
| 内核模式终止 | 驱动程序从内核上下文终止 PID |
| PPL 绕过 | MonProcessEX.sys 的终止路径可绕过受保护进程检查 |
| 已签名驱动 | MonProcessEX.sys 是真实的已签名 HONOR 驱动程序 |
| 不在微软阻止列表中 | 未出现在微软的易受攻击驱动程序阻止规则中 |
| 自给自足 | 通过 SCM 安装、启动并清理驱动程序 |
| 零依赖 | 静态 Rust 二进制文件;放入 exe + 驱动即可运行 |
| 可配置 | targets.conf 或 -n,无需重新编译 |
| 混淆处理 | 设备路径和目标列表在静态存储时已加密 |
| 单一可执行文件 | 单个二进制文件;从 shell 运行时输出控制台信息,双击时静默运行 |
| 干跑模式 | 在执行前枚举目标和 PID |
| 抖动循环 | --repeat 以随机间隔重新检查 |
| 退出码 + JSON | 适合 C2 的自动化接口 |