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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
KRBUACBypass — Kerberosチケットを悪用し、tgtdelegトリックとSCMアクセスを活用して、サービスチケットに偽のMachineIDを注入することでWindows UACをバイパスし、SYSTEM権限を取得します。 | Kitploit
ツール/GitHubGitHub/wh0amitz/krbuacbypass
特権昇格エクスプロイトペネトレーションテスト認証レッドチーミング
GitHubwh0amitz/krbuacbypass

KRBUACBypass

Kerberosチケットを悪用し、tgtdelegトリックとSCMアクセスを活用して、サービスチケットに偽のMachineIDを注入することでWindows UACをバイパスし、SYSTEM権限を取得します。

リポジトリを見る
513643年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

背景

このPOCは、BlackHat USA 2022でJames Forshaw(@tiraniddo)氏が発表した「Taking Kerberos To The Next Level」というトピックに触発されたものです。彼は、Kerberosチケットを悪用してUACバイパスを実現するデモを公開しました。サービスチケットにKERB-AD-RESTRICTION-ENTRYを追加し、偽のMachineIDを入力することで、SCMにアクセスしてシステムサービスを作成し、簡単にUACをバイパスしてSYSTEM権限を取得できます。James Forshawは、この原理を「Bypassing UAC in the most Complex Way Possible!」というブログ記事で説明しており、私はそれに非常に興味を持ちました。彼は完全なエクスプロイトコードを提供していませんでしたが、私はRubeusをベースにPOCを構築しました。Rubeusは、生のKerberos操作とチケット悪用のためのC#ツールセットであり、Kerberosリクエストを簡単に開始し、チケットを操作できる便利なインターフェースを提供します。

KRBUACBypassに関する関連記事は、私のブログ「Revisiting a UAC Bypass By Abusing Kerberos Tickets」でご覧いただけます。背景原理や実装方法についても説明しています。記事でも述べたように、この記事は@tiraniddo氏の「Taking Kerberos To The Next Level」に触発されたものです(彼の共有がなければ実現できませんでした)。そして、私は大学卒業前にこれをツールとして実装しました。

Tgtdeleg トリック

現在のユーザーの資格情報を持っていないため、手動でTGTを生成することはできません。しかし、Benjamin Delpy(@gentilkiwi)は、自身のKekeoに、非制約の委任を悪用してセッションキー付きのローカルTGTを取得するトリック(tgtdeleg)を追加しました。

Tgtdelegは、Kerberos GSS-APIを悪用して、ホスト上で昇格した権限を取得することなく、現在のユーザーが利用可能なTGTを取得します。この方法は、AcquireCredentialsHandle関数を使用して現在のユーザーのKerberosセキュリティ資格情報ハンドルを取得し、InitializeSecurityContext関数をHOST/DC.domain.comに対して、ISC_REQ_DELEGATEフラグとターゲットSPNを使用して呼び出し、擬似委任コンテキストを準備してドメインコントローラーに送信します。これにより、GSS-API出力のKRB_AP-REQに、Authenticator Checksum内のKRB_CREDが含まれるようになります。その後、サービスチケットのセッションキーがローカルKerberosキャッシュから抽出され、Authenticator内のKRB_CREDを復号して使用可能なTGTを取得します。Rubeusツールセットにもこの手法が組み込まれています。詳細については、「Rubeus – Now With More Kekeo」を参照してください。

このTGTを使用すると、独自のサービスチケットを生成でき、実行可能な操作手順は次のとおりです。

  1. Tgtdelegトリックを使用してユーザーのTGTを取得する。
  2. TGTを使用してKDCにリクエストを送り、ローカルコンピューター用の新しいサービスチケットを生成する。KERB-AD-RESTRICTION-ENTRYを追加するが、偽のMachineIDを入力する。
  3. サービスチケットをキャッシュに投入する。

Krbscm

サービスチケットを取得したら、Kerberos認証を使用して、Service Control Manager (SCM) Named PipesまたはTCP(HOST/HOSTNAMEまたはRPC/HOSTNAME SPN経由)にアクセスできます。SCMのWin32 APIは常にNegotiate認証を使用することに注意してください。James Forshawは簡単なPOCを作成しました:SCMUACBypass.cpp。2つのAPI(AcquireCredentialsHandleとInitializeSecurityContextW)をフックし、SCMが呼び出す認証パッケージの名前(pszPackage)をKerberosに変更することで、ローカル認証時にSCMがKerberosを使用できるようにします。

詳細については、以下をお読みください。

  • 英語: https://whoamianony.top/posts/revisiting-a-uac-bypass-by-abusing-kerberos-tickets/
  • 中国語: https://paper.seebug.org/3003/

実際に動かしてみよう

それでは、実行結果を見てみましょう。下図に示すように、まずasktgs関数を使用して現在のサーバーのHOSTサービスのチケットを要求し、次にkrbscmを使用してシステムサービスを作成し、SYSTEM権限を取得します。

root@kitploit:~
KRBUACBypass.exe asktgs
KRBUACBypass.exe krbscm

Animation

ツールをダウンロード