ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

深度解析UAC-BOF-Bonanza的TrustedPathDLLHijack:一个空格如何劫持Windows目录

2026/8/22 14:33:49 拓冰建站 浏览量
深度解析UAC-BOF-Bonanza的TrustedPathDLLHijack:一个空格如何劫持Windows目录 深度解析UAC-BOF-Bonanza的TrustedPathDLLHijack一个空格如何劫持Windows目录【免费下载链接】UAC-BOF-BonanzaCollection of UAC Bypass Techniques Weaponized as BOFs项目地址: https://gitcode.com/gh_mirrors/ua/UAC-BOF-BonanzaUAC-BOF-Bonanza 是一个开源的 UAC 绕过技术合集它将 7 种公开的 Windows 权限提升方法武器化为 BOFBeacon Object File信标对象文件可在 Havoc、Sliver 等 C2 框架中直接调用。其中的TrustedPathDLLHijack可信路径 DLL 劫持技术最为人称道仅仅在目录名C:\Windows后面多加一个空格就能伪造出一个系统级目录劫持 DLL 加载顺序让恶意代码以管理员权限执行。本文将用通俗易懂的方式带你完整拆解这项 UAC 权限提升技术的原理、实现与检测要点。一、先搞懂背景UAC 绕过与 BOF 是什么 在深入技术细节之前先补齐两个概念UAC用户账户控制Windows 的安全机制把普通进程的完整性级别限制在中等只有触发提示框或满足可信发布者条件程序才能提升到高管理员权限。BOFBeacon Object File一段可在内存中加载执行的二进制载荷常用于 C2 渗透框架。相比落地的 EXEBOF 不写入磁盘检测难度更高。UAC 绕过的目标只有一个在不弹出 UAC 确认框的前提下让低权限进程执行出高权限代码。UAC-BOF-Bonanza 收录了 7 种技术TrustedPathDLLHijack 是其中唯一依赖目录伪造 DLL 搜索顺序的经典手法技术名称一句话原理CmstpElevatedCOM利用提权的 ICMLuaUtil COM 对象执行文件ColorDataProxy写入注册表 IColorDataProxy COM 对象执行文件EditionUpgradeManager修改 windir 注册表 提权 COM 接口执行SilentCleanupWinDir修改 windir 注册表 计划任务提权执行RegistryShellCommand修改 Shell 命令注册表键触发自动提权 EXETrustedPathDLLHijack伪造C:\Windows \目录劫持 DLL 加载实现提权SspiUacBypass伪造 SSPI 网络认证令牌创建 SYSTEM 服务二、一个空格的核心TrustedPathDLLHijack 工作原理 这个技术的精髓藏在一个看起来手滑的路径里合法路径 C:\Windows\System32\ 伪造路径 C:\Windows \System32\ ← 注意 Windows 后多了一个空格对 Windows 文件系统来说C:\Windows \和C:\Windows是两个完全不同的目录。这正是整个攻击的支点第 1 步创建带空格的假系统目录普通标准用户没有权限往C:\Windows\System32里写文件但在 C 盘根目录下创建新文件夹是允许的。于是攻击者创建C:\Windows \假 Windows 目录C:\Windows \System32\假系统目录在源码 TrustedPathDLLHijackBOF.c 中这一步对应KERNEL32$CreateDirectoryW的两次调用并特意使用了\\?\长路径前缀以正确保留路径末尾的空格。第 2 步复制提权诱饵和恶意 DLL向假目录中放入两个文件ComputerDefaults.exe从真正的C:\Windows\System32复制而来字节级一致因此微软的数字签名依然有效。它的清单manifest声明了requireAdministrator且发布者为受信任的微软——这正是它能自动提权、不弹 UAC 框的关键。Secur32.dll攻击者自己的恶意 DLL文件名与ComputerDefaults.exe的真实依赖同名。文件角色选择原因ComputerDefaults.exe提权载体微软签名 声明要求管理员UAC 可信发布者校验会静默放行Secur32.dll恶意载荷目标 EXE 的依赖项同名 DLL 可被优先加载第 3 步触发 DLL 劫持恶意代码获得管理员权限Windows 加载 DLL 时遵循搜索顺序首先查找可执行文件自身所在目录然后才轮到 System32。当执行位于C:\Windows \System32\的ComputerDefaults.exe时UAC 校验签名 → 微软签名有效 →静默提升至高完整性级别进程开始解析依赖Secur32.dll→ 搜索顺序第一步就是 EXE 所在目录 →命中攻击者放进来的假 DLL恶意 DLL 的初始化代码在高权限上下文中运行——UAC 绕过完成。第 4 步COM 静默执行与痕迹清理项目没有直接用CreateProcess启动而是通过IShellWindows/IShellDispatch2这套 COM 接口链源自社区 DCOM BOF 实现代码中有完整致谢以SW_HIDE隐藏窗口方式执行目标 EXE全程无控制台窗口降低被观察发现的概率。执行完成后源码会Sleep(30000)默认 30 秒注释建议按 DLL 实际执行时长调整随后删除假 EXE、假 DLL 以及两个假目录——伪造痕迹被主动抹除这是该实现 OpSec 意识较强的地方。三、项目结构与三种使用形态 TrustedPathDLLHijack 模块的源码组织非常清晰TrustedPathDLLHijack/ ├── src/ │ ├── TrustedPathDLLHijackBOF.c # BOF 主实现接收远端推送的 DLL 字节流 │ ├── TrustedPathDLLHijackBOF_FileOnDisk.c # BOF 变体DLL 已存在目标磁盘 │ └── standalone/ │ └── TrustedPathDLLHijack.c # 独立 EXE 版本需传入 DLL 路径参数 ├── Makefile # MinGW 交叉编译脚本 └── extension.json # Sliver C2 扩展清单内存投递TrustedPathDLLHijackBOF.c 通过BeaconDataParse从 C2 数据中取出 DLL 大小与字节流用CreateFileA WriteFile写入假目录全程无需预先把 DLL 放到目标机器上磁盘投递TrustedPathDLLHijackBOF_FileOnDisk.c 则直接用CopyFileA复制磁盘上已有的 DLL适合载荷已落地的场景独立测试standalone/TrustedPathDLLHijack.c 编译成 EXE 后可单独验证适合在测试机上做 PoC 复现。四、编译与使用指南一键编译步骤仓库中各模块共享根目录 Makefile执行make即会用x86_64-w64-mingw32-gcc交叉编译出 BOF 的.o文件和独立 EXEgit clone https://gitcode.com/gh_mirrors/ua/UAC-BOF-Bonanza cd UAC-BOF-Bonanza/TrustedPathDLLHijack make产物位于bin/TrustedPathDLLHijackBOF.o与bin/standalone/TrustedPathDLLHijack.exe。在 Havoc C2 中调用仓库提供了集成全部技术的模块 Havoc-UACBypass.py加载后执行子命令即可trustedpath子命令接收一个本地 DLL 路径参数uac-bypass trustedpath /root/test.dll在 Sliver C2 中调用模块目录下的 extension.json 声明了 Sliver 扩展元信息入口点go、依赖coff-loader参数为dll_size与dll_path。将TrustedPathDLLHijack文件夹复制进 Sliver 扩展目录、执行make后用extensions load加载即可在 Sliver 客户端中调用。五、⚠️ OpSec 与检测注意事项公开技术的宿命README 中明确提示这是公开 UAC 绕过手法主流 EDR/SOC 通常具备检测能力实测环境建议仅用于授权的渗透测试与红蓝对抗演练高危行为特征在C:\根下创建Windows类目录、向其中写入同名系统 DLL、非系统目录进程加载Secur32.dll这些都是很好的检测点防御者可据此编写白名单与异常行为规则自清理是双刃剑30 秒后删除痕迹虽然减少了驻留文件但也意味着取证窗口极短对蓝队提出更高的实时检测要求平台验证作者在 Windows 1123H2与 Windows 1022H2上验证有效旧版本系统行为可能有差异。六、总结一个空格背后的设计哲学TrustedPathDLLHijack 展示了 Windows 攻击面中一个常被忽视的角落文件系统不聪明——它只认字符不认语义。一个空格就制造出了C:\Windows与C:\Windows \的合法分界再叠加 DLL 搜索顺序的应用目录优先规则和 UAC 可信发布者的静默提权逻辑三者组合成了一条无需用户交互的完整提权链。对红队而言它是低权限后无痛提权的实用手段对蓝队而言它是理解 Windows 信任边界、完善目录写入监控与 DLL 加载审计的绝佳案例。想动手复现从仓库的独立 EXE 版本开始是最安全的入门路径。【免费下载链接】UAC-BOF-BonanzaCollection of UAC Bypass Techniques Weaponized as BOFs项目地址: https://gitcode.com/gh_mirrors/ua/UAC-BOF-Bonanza创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考