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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
NativeBypassCredGuard — NTAPI関数のみを使用してWDigest.dllにパッチを適用し、Credential Guardをバイパスします。 | Kitploit
ツール/GitHubGitHub/ricardojoserf/nativebypasscredguard
パスワード攻撃IDS/IPS回避ポストエクスプロイトレッドチーミング
GitHubricardojoserf/nativebypasscredguard

NativeBypassCredGuard

NTAPI関数のみを使用してWDigest.dllにパッチを適用し、Credential Guardをバイパスします。

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

NativeBypassCredGuard

NativeBypassCredGuard は、ntdll.dll がエクスポートする NTAPI 関数のみを使用して WDigest.dll にパッチを適用することで Credential Guard をバイパスするように設計されたツールです。C# と C++ の 2 つのバージョンがあります。

このツールは、ディスク上の WDigest.dll ファイル内でパターン "39 ?? ?? ?? ?? 00 8b ?? ?? ?? ?? 00" を検索し(References セクションの最初の投稿で説明されているように、このパターンはすべての Windows バージョンのこのファイルに存在します)、必要なメモリアドレスを計算し、最後に WDigest.dll 内の g_fParameter_UseLogonCredential(1 に)と g_IsCredGuardEnabled(0 に)という 2 つの変数の値をパッチします。

これにより、メモリ内での資格情報の平文保存が強制され、以降ユーザーがログインするたびに資格情報がクリアテキストで保存されるようになります。その結果、次回 LSASS プロセスをダンプすると、パスワードが平文で含まれる可能性があります。

使用される NTAPI 関数は次のとおりです:

poc

  • NtOpenProcessToken と NtAdjustPrivilegesToken を使用して SeDebugPrivilege 特権を有効にする
  • NtCreateFile と NtReadFile を使用してディスク上の DLL ファイルへのハンドルを開き、そのバイトを読み取る
  • NtGetNextProcess と NtQueryInformationProcess を使用して lsass プロセスへのハンドルを取得する
  • NtReadVirtualMemory と NtQueryInformationProcess を使用して WDigest.dll のベースアドレスを取得する
  • NtReadVirtualMemory を使用して変数の値を読み取る
  • NtWriteProcessMemory を使用して変数に新しい値を書き込む

NTAPI 関数のみを使用することで、ntdll.dll ライブラリをリマップしてユーザーモードフックやセキュリティメカニズムをバイパスすることが可能です。これはこのツールのオプション機能です。使用する場合、クリーンなバージョンの ntdll.dll はサスペンドモードで作成されたプロセスから取得されます。


使用方法

root@kitploit:~
NativeBypassCredGuard.exe <OPTION> <REMAP-NTDLL>

オプション(必須):

  • check: 現在の値を読み取る
  • patch: 新しい値を書き込む

ntdll のリマップ(任意):

  • true: ntdll ライブラリをリマップする
  • false(または省略): ntdll ライブラリをリマップしない

使用例

値の読み取り(ntdll リマップなし):

root@kitploit:~
NativeBypassCredGuard.exe check

img1

値のパッチ適用(ntdll リマップあり):

root@kitploit:~
NativeBypassCredGuard.exe patch true

img2


注意事項

  • このツールは 64 ビットシステム向けに設計されているため、64 ビットバイナリとしてコンパイルする必要があります

  • lsass へのハンドルを開くことができない場合や、PEB 構造体が読み取れない場合は動作しません。後者については、lsass プロセスから ntdll!NtReadVirtualMemory と ntdll!NtQueryInformationProcess を使用してベースアドレスを取得する代わりに、kernel32!LoadLibrary を使用してプロセス内に WDigest.dll を読み込み、そのベースアドレスを取得する方法を選択できます(このコードは C バージョンではコメントアウトされています)。ただし、ntdll.dll ではなく kernel32.dll がエクスポートする関数を使用することになり、プロセスがその DLL を読み込むのはおそらく奇妙に見えるでしょう :)

  • 0x3rhy 氏がこのプロジェクトに基づく BOF ファイルを作成しました: BypassCredGuard-BOF


参考文献

  • Revisiting a Credential Guard Bypass(著: itm4n)- DLL の .text セクションを検索するためのパターンを拝借した素晴らしい分析です

  • WDigest: Digging the dead from the grave(著: neuralhax)- g_fParameter_UseLogonCredential に他の値を使用できることを証明した素晴らしいブログです。まだテストしていませんが、useLogonCredential_Value 変数を試すことができます

  • Exploring Mimikatz - Part 1 - WDigest(著: xpn)- WDigest の資格情報キャッシュをリバースエンジニアリングして解説した素晴らしいブログ記事です

ツールをダウンロード