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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dumpguard_bof — DumpGuardのBeacon Object File (BOF)移植版。最新のWindowsシステム上のセッションからNTLMv1ハッシュを抽出します。 | Kitploit
ツール/GitHubGitHub/0xedh/dumpguard_bof
パスワード攻撃エクスプロイトポストエクスプロイトペネトレーションテスト認証レッドチーミング
GitHub0xedh/dumpguard_bof

dumpguard_bof

DumpGuardのBeacon Object File (BOF)移植版。最新のWindowsシステム上のセッションからNTLMv1ハッシュを抽出します。

リポジトリを見る
222247ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

DumpGuard BOF

DumpGuard の Beacon Object File (BOF) ポート。最新の Windows システム上のセッションから NTLMv1 ハッシュを抽出します。

Demo

このプロジェクトについて

このリポジトリには、DumpGuard の Beacon Object File (BOF) 実装が含まれています。元の C#/.NET 実装から純粋な C に移植され、Havoc および BOF 実行をサポートする他の C2 フレームワークで使用できます。

これは Proof of Concept (PoC) であり、学習用の演習です。

この BOF ポートは、Remote Credential Guard プロトコル、Kerberos 認証フロー、および基盤となる Windows セキュリティメカニズムの詳細を理解するための個人的な取り組みの一環として作成されました。このツールを BOF 実行用に C# から純粋な C へ移植する作業は、主に教育目的の試みでした。

以下の点にご注意ください:

  • このコードにはバグ、エラー、または不完全な実装が含まれている可能性があります。
  • すべての Windows バージョンや構成で広範囲にテストされているわけではありません。
  • 一部のエッジケースやプロトコルの微妙な点が適切に処理されていない可能性があります。
  • 実装は、信頼性に影響を与える点でオリジナルと異なる場合があります。
  • これは本番環境対応のコードではありません。自己責任で使用してください Ü。

問題を見つけた場合や改善提案がある場合は、コントリビューションを歓迎します。堅牢で十分にテストされた実装については、オリジナルの DumpGuard ツール を参照してください。

オリジナル研究

この BOF は、SpecterOps の @bytewreck による研究とツールに基づいています:

  • オリジナルツール: github.com/bytewreck/DumpGuard
  • ブログ記事: Catching Credential Guard Off Guard

概要

DumpGuard は、Windows Remote Credential Guard (RCG) を悪用して、ログオン中のユーザーから NTLMv1 ハッシュを LSASS メモリに触れることなく、管理者権限を必要とせずに抽出します。Credential Guard が有効な場合でも動作します。

仕組み

  1. ローカルで CredSSP/RDP サーバーを偽装します。BOF は偽の RDP サーバーとして動作します。
  2. Windows SSPI を欺いて、完全な Kerberos + CredSSP 認証を実行させます。
  3. TSRemoteGuardCreds にラップされたユーザーの資格情報を受信します。
  4. LSA の TSSSP パッケージを呼び出して、既知のチャレンジで NTLMv1 レスポンスを計算します。

4 ラウンドの CredSSP ダンス

ラウンド 4 の後、暗号化された資格情報ブロブを取得します。魔法が起こるのは、TSSSP パッケージを指定して LsaCallAuthenticationPackage を呼び出したときです。LSA はリクエストを RDPEAR -> TSRemoteGuard -> MSV1_0 経由でルーティングし、シークレットを復号化して NTLMv1 レスポンスを計算してくれます。

背景

Credential Guard は、NTLM および Kerberos のシークレットをセキュアな VBS 空間 (LsaIso.exe) に隔離し、Mimikatz のような直接メモリアクセス攻撃を防ぎます。しかし、Credential Guard は正当な認証のためにそれらのシークレットを使用する必要が依然としてあります。このテクニックが悪用するのは、まさにそのインターフェースです。

完全な技術的な詳細については、Catching Credential Guard Off Guard を参照してください。

実装

この BOF ポートは、オリジナルの DumpGuard ツールの「Self」モードのみを実装しています。「All」モードはこのバージョンでは実装されていません。

Self モード

Remote Credential Guard プロトコルを介して、現在のプロセスユーザー の NTLMv1 ハッシュをダンプします。

  • 権限要件: なし (現在のユーザーコンテキストで実行)
  • Credential Guard の状態: Credential Guard が有効かどうかに関係なく動作
  • 要件: 登録済み SPN を持つアカウントの資格情報

他のユーザーのハッシュの抽出

この BOF は「self」モードのみを実装していますが、たとえば、そのユーザーとして実行されているプロセスに注入することで、他のユーザーの NTLMv1 ハッシュを抽出することもできます。たとえば、管理者権限を持っている場合、別のログオンユーザーが所有するプロセスに BOF を注入して、そのハッシュを取得できます。

前提条件

SPN が有効なアカウント

このテクニックには、Service Principal Name (SPN) が登録されたアカウントの資格情報が必要です。これを実現する 1 つの方法は、マシンアカウントを作成し、それに SPN を追加することです。

ステップ 1: マシンアカウントを作成する

Impacket を使用:

root@kitploit:~
python3 addcomputer.py -computer-name 'YOURCOMPUTER$' domain.local/user:password -dc-ip <DC_IP>

出力例:

root@kitploit:~
[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.

ステップ 2: マシンアカウントに SPN を追加する

krbrelayx の addspn.py を使用:

root@kitploit:~
python3 addspn.py -u domain.local\\YOURCOMPUTER\$ -p '<password>' -s host/yourspn.domain.local --target-type samname <DC_IP>

ステップ 3: SPN を確認する (必要な場合)

pywerview を使用:

root@kitploit:~
python3 pywerview.py get-adobject -d domain.local -u YOURCOMPUTER\$ -p '<password>' -t <DC_IP> --sam-account-name YOURCOMPUTER\$

出力内で serviceprincipalname: host/yourspn.domain.local を探してください。

使用方法

Havoc C2

root@kitploit:~
inline-execute /path/to/dumpguard.x64.o x <domain> <username> <password> <spn>

注: x パラメータは、ドメインの前に必要なプレースホルダー/ダミー引数です。これは将来のバージョン (存在する場合) で対処される可能性があります。

例:

root@kitploit:~
inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local

出力例:

root@kitploit:~
[DG] Domain: sevenkingdoms.local
[DG] User: EVIL_COMPUTER$
[DG] SPN: host/EVILSPN.sevenkingdoms.local
[DG] checkpoint 1: init APIs
[DG] SSPI init OK
[DG] checkpoint 2: acquire creds
[DG] checkpoint 3: starting SSPI loop
[DG] Round 1
[DG] AS-REQ: LTK derived, etype=18 len=32
[DG] AS-REQ: sending to KDC...
[DG] Round 2
[DG] Round 3
[DG] NTLMv1: SEVENKINGDOMS\EVIL_COMPUTER$::GOAD-WIN2025::6D270E39AD2DE48B561895C3257D7123FE84F1438B147E2A:1122334455667788

重要: 抽出された NTLMv1 ハッシュは、BOF プロセスを実行しているユーザー に属するものであり、認証に使用されたマシンアカウント (EVIL_COMPUTER$) に属するものではありません。マシンアカウントの資格情報は、KDC への認証と Remote Credential Guard セッションの確立にのみ使用されます。

出力は hashcat 互換の NTLMv1 形式です:

root@kitploit:~
DOMAIN\user::HOSTNAME::NTRESPONSE:CHALLENGE

ビルド

root@kitploit:~
make clean && make

出力: build/dumpguard.x64.o

要件

  • 対象はドメイン参加済みの Windows マシンである必要があります
  • SPN が有効なアカウントの資格情報が必要です (前提条件を参照)
  • BOF は現在のプロセスユーザーのコンテキストで実行されます

参考情報

Microsoft ドキュメント

  • Credential Guard の概要
  • Remote Credential Guard
  • AcquireCredentialsHandle
  • InitializeSecurityContext
  • AcceptSecurityContext
  • LsaRegisterLogonProcess
  • LsaConnectUntrusted
  • LsaCallAuthenticationPackage

Microsoft プロトコル

  • MS-RDPEAR - リモートデスクトッププロトコル: 認証リダイレクト仮想チャネルプロトコル
  • MS-CSSP - 資格情報セキュリティサポートプロバイダープロトコル

研究論文およびブログ記事

  • Catching Credential Guard Off Guard - Valdemar Caroe, SpecterOps (2025)
  • Pass the Challenge: Defeating Windows Defender Credential Guard - Oliver Lyak (2022)
  • Windows Exploitation Tricks: Exploiting Arbitrary File Writes for Local Elevation of Privilege - James Forshaw, Project Zero (2018)
  • The LSA Whisperer Project - Evan McBroom, SpecterOps

ライセンス

BSD 3-Clause ライセンス

オリジナルの DumpGuard ツールは BSD 3-Clause ライセンスの下でライセンスされており、Copyright (c) 2025 Valdemar Carøe です。この BOF ポートも同じライセンス条件を維持しています。


質問、バグ報告、またはコントリビューションについては、GitHub で issue を開いてください。

ツールをダウンロード
ラウンドクライアント -> サーバーサーバー -> クライアント
1SPNEGO + TGT-REQTGT-REPLY (実際の KDC から)
2AP-REQ (サービスチケット)AP-REP + MIC
3PubKeyAuth (バインディングハッシュ)サーバーバインディングハッシュ
4AuthInfo (TSRemoteGuardCreds)N/A