Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PSPKIAudit — PSPKIツールキットに基づくAD CS監査のためのPowerShellツールキット | Kitploit
ツール/GitHubGitHub/ghostpack/pspkiaudit
特権昇格ペネトレーションテスト
GitHubghostpack/pspkiaudit

PSPKIAudit

PSPKIツールキットに基づくAD CS監査のためのPowerShellツールキット

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

人気

すべて見る →

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

すべてのツールを探索

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

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

PSPKIAudit

Active Directory 証明書サービス (AD CS) を監査するための PowerShell ツールキット。

これは PKISolution の PSPKI ツールキット (Microsoft Public License) をベースに構築されています。このリポジトリには、PSGallery で入手可能なものよりも新しいバージョンの PSPKI が含まれています (PSPKI ディレクトリを参照)。Vadims Podans (PSPKI の作成者) 氏が、いくつかのバグの修正パッチを含むこのバージョンを快く提供してくださいました。

この README はあくまでも出発点です。完全な詳細と防御のガイダンスについては、「Certified Pre-Owned」ホワイトペーパーをご参照ください。

このモジュールには以下の主要な機能が含まれています。

  1. Invoke-PKIAudit - 現在のフォレストの AD CS 設定を監査し、主に CA サーバーと公開されたテンプレートを分析して、権限昇格の可能性がないかを調べます。
  2. Get-CertRequest - CA のデータベースをクエリして、CA が発行した証明書を調査します。主な目的は、証明書テンプレートの権限昇格の脆弱性を悪用した可能性のある証明書要求を発見することです。さらに、ユーザーまたはコンピューターが侵害された場合、インシデント対応担当者はこれを使用して、CA サーバーが侵害されたユーザー/コンピューターに対して発行した証明書 (その後失効させるべきもの) を見つけることができます。

警告: このコードはベータ版です。Invoke-PKIAudit はクエリするデータ量がごく限られているため、環境に影響を与えないと確信しています。Get-CertRequest については、一般的な CA サーバーのワークロードに対して十分なテストは行っていません。Get-CertRequest は CA のデータベースを直接クエリし、数千件の結果を処理する必要があるため、パフォーマンスに影響を与える可能性があります。

結果がない場合でも、環境が安全であるとは保証されません!!

また、当社の緩和策のアドバイスが環境を安全にしたり、運用を妨げないことを保証することはできません!!

お客様自身の責任で、Active Directory/PKI/アーキテクチャチームと相談し、環境に最適な緩和策を決定してください。

コードが壊れた場合、または何か見落としがあった場合は、Issue を送信するか、修正のプルリクエストをお送りください!

  • セットアップ
  • AD CS の設定ミスの監査
    • 出力の説明
    • ESC1 - 設定ミスのある証明書テンプレート
    • ESC2 - 設定ミスのある証明書テンプレート
    • ESC3 - 設定ミスのある登録エージェントテンプレート
    • ESC4 - 脆弱な証明書テンプレートのアクセス制御
    • ESC5 - 脆弱な PKI AD オブジェクトのアクセス制御
    • ESC6 - EDITF_ATTRIBUTESUBJECTALTNAME2
    • ESC7 - 脆弱な証明機関のアクセス制御
    • ESC8 - AD CS HTTP エンドポイントへの NTLM リレー
    • その他 - 明示的なマッピング
  • 発行済み証明書要求のトリアージ

セットアップ

要件

管理者特権の PowerShell プロンプト (PowerShell バージョン 5.1 以上) を使用して、Windows マシンに以下をインストールします。

  • RSAT の 証明書サービス および Active Directory 機能。次のコマンドでインストールします。``` Get-WindowsCapability -Online -Name "Rsat.*" | where Name -match "CertificateServices|ActiveDirectory" | Add-WindowsCapability -Online
* [PSPKI PowerShell モジュール](https://github.com/PKISolutions/PSPKI)。次のコマンドでインストールします:```
Install-Module -Name PSPKI

インポート

モジュールをダウンロードし、フォルダに展開してください。その後、以下のコマンドを使用してモジュールをインポートします:``` cd PSPKIAudit Get-ChildItem -Recurse | Unblock-File

Import-Module .\PSPKIAudit.psd1

# Auditing AD CS Misconfigurations

`Invoke-PKIAudit` を実行すると、現在のドメインのAD CSに対してすべての監査チェックが実行され、さまざまな証明機関および証明書テンプレートの設定が列挙されます。特定のCAを監査するには、`Invoke-PKIAudit -CAComputerName CA.DOMAIN.COM` または `Invoke-PKIAudit -CAName X-Y-Z` を実行します。

誤構成(ESC1-8)は、検出された特定の誤構成を示すプロパティとして、CA/テンプレートの結果に表示されます。

登録/アクセス制御のテストに使用するグループ/ユーザーを変更する場合は、`Invoke-PKIAudit.ps1` の先頭にある `$CommonLowprivPrincipals` 正規表現を変更してください。

すべてのCA情報をCSVにエクスポートするには、`Get-AuditCertificateAuthority [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation CAs.csv` を実行します。

公開されているすべてのテンプレート情報(脆弱なテンプレートだけでなく)をCSVにエクスポートするには、`Get-AuditCertificateTemplate [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation templates.csv` を実行します。

## 出力の説明

出力には主に2つのセクションがあります。検出されたCAに関する詳細と、潜在的に脆弱なテンプレートに関する詳細です。

証明機関の結果:

| Certificate Authority Property | 説明                                                            |
| ------------------------------ | --------------------------------------------------------------- |
| ComputerName                   | CAが実行されているシステム。                                    |
| CAName                         | CAの名前。                                                      |
| ConfigString                   | 完全なCOMPUTER\CA_NAME構成文字列。                              |
| IsRoot                         | CAがルートCAであるかどうか。                                    |
| AllowsUserSuppliedSans         | CAに`EDITF_ATTRIBUTESUBJECTALTNAME2`フラグが設定されているか。   |
| VulnerableACL                  | CAに脆弱なACL設定があるかどうか。                               |
| EnrollmentPrincipals           | CAレベルで`Enroll`権限を持つプリンシパル。                      |
| EnrollmentEndpoints            | CAのWebサービス登録エンドポイント。                             |
| NTLMEnrollmentEndpoints        | NTLMが有効なCAのWebサービス登録エンドポイント。                 |
| DACL                           | 完全なアクセス制御情報。                                        |
| Misconfigurations              | 存在する特定の誤構成を示すESCX(ある場合)。                    |

証明書テンプレートの結果:

| Property                | 説明                                                                                              |
| ----------------------- | ------------------------------------------------------------------------------------------------- |
| CA                      | テンプレートが公開されている完全なCA ConfigString(公開されていない場合はnull)。                 |
| Name                    | テンプレート名。                                                                                  |
| SchemaVersion           | テンプレートのスキーマバージョン(1/2/3)。                                                       |
| OID                     | テンプレートの一意のオブジェクト識別子。                                                          |
| VulnerableTemplateACL   | テンプレートに脆弱なACL設定がある場合にTrue。                                                     |
| LowPrivCanEnroll        | 低特権ユーザーがテンプレートに登録できる場合にTrue。                                              |
| EnrolleeSuppliesSubject | `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT`フラグが存在する場合にTrue(つまり、ユーザーが任意のSANを指定可能)。 |
| EnhancedKeyUsage        | テンプレートで有効な使用EKU。                                                                     |
| HasAuthenticationEku    | テンプレートに認証を許可するEKUがある場合にTrue。                                                 |
| HasDangerousEku         | テンプレートに「危険な」(任意の目的またはnull)EKUがある場合にTrue。                             |
| EnrollmentAgentTemplate | テンプレートに「証明書要求エージェント」EKUがある場合にTrue。                                    |
| CAManagerApproval       | 登録にマネージャーの承認が必要な場合にTrue。                                                      |
| IssuanceRequirements    | 承認された署名情報。                                                                              |
| ValidityPeriod          | 証明書の有効期間。                                                                                |
| RenewalPeriod           | 証明書の更新期間。                                                                                |
| Owner                   | 証明書を所有するプリンシパル。                                                                    |
| DACL                    | 完全なアクセス制御情報。                                                                          |
| Misconfigurations       | 存在する特定の誤構成を示すESCX(ある場合)。                                                      |

## ESC1 - 誤った構成の証明書テンプレート

### Details <!-- omit in toc -->

この権限昇格シナリオは、以下の条件がすべて満たされた場合に発生します。

1. **エンタープライズCAが低特権ユーザーに登録権を付与している。** エンタープライズCAの構成で、低特権ユーザーが証明書を要求できるよう許可されている必要があります。詳細については、ホワイトペーパーの冒頭にある「Background - Enrollment」セクションを参照してください。

2. **マネージャーの承認が無効になっている。** この設定では、証明書「マネージャー」権限を持つユーザーが、証明書が発行される前に要求された証明書をレビューおよび承認する必要があります。詳細については、ホワイトペーパーの冒頭にある「Background - Issuance Requirements」セクションを参照してください。

3. **許可された署名は不要である。** この設定では、CSRが既存の許可された証明書によって署名されている必要があります。詳細については、ホワイトペーパーの冒頭にある「Background - Issuance Requirements」セクションを参照してください。

4. **過度に寛容な証明書テンプレートのセキュリティ記述子が、低特権ユーザーに証明書登録権を付与している。** 証明書登録権を持つことで、低特権の攻撃者はテンプレートに基づいて証明書を要求および取得できます。登録権は、証明書テンプレートADオブジェクトのセキュリティ記述子を介して付与されます。
ツールをダウンロード