针对 2026 年 7 月修复的 Windows WalletService 漏洞的本地权限提升概念验证。
技术文章:CVE-2026-49176 漏洞利用开发:从 WalletService 到 SYSTEM。
标准用户创建一个包含持久化回调的 Wallet ESE 数据库,并将其 Documents 已知文件夹重定向到该数据库。存在漏洞的 WalletService 以 LocalSystem 身份打开该数据库并启用持久化回调,导致 ESE 加载所提供的 DLL。该载荷会在活动桌面会话中以 SYSTEM 身份启动命令提示符。
在存在漏洞的 Windows 11 系统上,打开非提升权限的 PowerShell 并运行:
powershell.exe -ExecutionPolicy Bypass -File .\trigger.ps1
或者,双击 run.cmd。应会打开一个 shell 并打印 nt authority\system。
要重新构建随附的二进制文件,请安装 Visual Studio C++ 生成工具并运行:
powershell.exe -ExecutionPolicy Bypass -File .\build.ps1
已在 Windows 11 25H2 版本 26200.8737 上测试。
WalletService 在模拟调用方时解析 FOLDERID_Documents,然后在打开 <Documents>\Wallet\wallet.db 之前恢复为 LocalSystem。它接受调用方创建的数据库并启用 ESE 持久化回调。打开 Cards 表时,会解析存储在数据库架构中的回调路径,并以 SYSTEM 身份加载指定的 DLL。