Int3rtia/ruac
GitHub: Int3rtia/ruac
一个基于CMSTP INF劫持技术的UAC绕过工具,用Rust编写,可静默提升权限并执行自定义payload。
Stars: 7 | Forks: 1
我为 Interium 编写的 UAC 绕过程序。利用 CMSTP INF 劫持技术,运行 `cmstp.exe /au` 并附带一个包含 `RunPreSetupCommands` 的 INF 文件。cmstp 在其清单中设置了 `autoElevate=true`,因此 Windows 会静默提升其权限,不显示 UAC 提示。有效载荷将以高完整性级别(High IL)运行。
已在 Windows 10 和 Windows 11 25H2(内部版本 26200.8457)上测试。使用 Rust 编写。
注意:CMSTP 技术早已为人所知(自 2017 年就已存在),但大多数公开的概念验证(PoC)是用 C# 或 PowerShell 编写的,并且会留下大量痕迹。这个实现更干净。

目前,它只是生成一个提升权限的 `cmd.exe`。你可以将 `elevated_payload()` 替换为任何你实际上想要运行的代码。
## 使用方法
直接运行即可。
```
uac_bypass.exe
```
如果你想将其作为库模式使用,请查看 `src/main.rs` 中的 `elevated_payload()`,那就是提升代码运行的地方。防护机制是 `main()` 中对 `/setup` 参数的检查。
## 防护机制的工作原理
INF 文件会执行:`"<你的 exe 路径>" /setup`
当提升后的实例启动时,`main()` 会检查参数中是否包含 `/setup`。如果找到,它会跳过绕过逻辑,直接调用 `elevated_payload()`。如果没有这个防护机制,程序会陷入死循环,不断尝试绕过自身。
## AI 声明
字符串混淆的设置以及部分 Windows crate API 的接线工作是在 AI 的帮助下完成的。技术本身、逻辑、对话框关闭、窗口清理以及提升后的进程结束流程均由我自己完成。实际的 UAC 绕过方法(CMSTP INF RunPreSetupCommands)是公开的研究成果。
## 局限性
- 用户账户必须属于管理员组(标准用户无法使用)
- UAC 不得设置为“始终通知”(仅限默认设置)
- 系统中必须存在 CMSTP(默认所有 Windows 安装都包含,但可被移除)
- 未内置反病毒规避功能。**这仅仅是绕过手段**,混淆是另一个独立的问题
## 许可协议
随意使用。如果你将其用于非法用途,责任自负。
标签:CMSTP, Conpot, INF劫持, Rust, UAC绕过, Windows 10, Windows 11, Windows安全, 协议分析, 可视化界面, 攻击技术, 权限提升, 端点可见性, 网络流量审计, 自动提权, 通知系统