
AD管理者、防御側のセキュリティ専門家、そして悪名高きレッドチーマーのためのAD CSツールキット

Locksmith 2は、Active Directory Certificate Services (AD CS) インフラストラクチャを監査するための包括的なPowerShellモジュールです。確立されたESC (Escalation) 手法に基づいて、証明書テンプレート、認証機関、およびPKIインフラストラクチャオブジェクト全体にわたるセキュリティ設定の不備を特定します。
AD管理者、セキュリティ専門家、およびペネトレーションテスター向けに構築されたLocksmith 2は、以下を提供します:
Locksmith 2は、オープンソースのAD CSセキュリティツール群であるLocksmithシリーズの次世代版であり、コード構成の改善、レポート機能の強化、およびより深いリスク分析により、オリジナル版を改良しています。
Install-Module -Name Locksmith2 -Scope CurrentUser -Force
git clone https://github.com/jakehildreth/Locksmith2.git
cd Locksmith2
Import-Module .\Locksmith2.psd1
Invoke-Locksmith2
New-LS2Dashboard
| 手法 | 説明 | 対象オブジェクト | サブ手法 |
|---|---|---|---|
| ESC1 | 誤設定された証明書テンプレート | テンプレート | — |
| ESC2 | 証明書 SubCA の悪用 | テンプレート | — |
| ESC3 | 登録エージェントの制限 | テンプレート | ESC3c1, ESC3c2 |
| ESC4 | 脆弱なアクセス制御 | テンプレート | ESC4a (ACL), ESC4o (所有者) |
| ESC5 | 脆弱な PKI オブジェクトのアクセス制御 | インフラストラクチャオブジェクト | ESC5a (ACL), ESC5o (所有者) |
| ESC6 | EDITF_ATTRIBUTESUBJECTALTNAME2 が有効 | CA | — |
| ESC7 | 脆弱な CA 管理者/マネージャーロール | CA | ESC7a (管理者), ESC7m (マネージャー) |
| ESC8 | 脆弱な Web 登録エンドポイント | CA | — |
| ESC9 | 弱い証明書マッピング | テンプレート | — |
| ESC11 | RPC 暗号化の欠如 | CA | — |
| ESC13 | グループにリンクされた OID アプリケーションポリシー | テンプレート | — |
| ESC16 | 無効化された CRL/AIA セキュリティ拡張 | CA | — |
ESC 手法の詳細については、SpecterOps による Certified Pre-Owned を参照してください。
Invoke-Locksmith2既知のすべての ESC 脆弱性を対象とした、包括的な AD CS セキュリティ監査スキャンを実行します。
Invoke-Locksmith2 [-Forest <String>] [-Credential <PSCredential>] [-Mode <Int>]
[-SkipVersionCheck] [-SkipPowerShellCheck]
[-ExpandGroups] [-Rescan]
# -Mode values:
# (omit) = return LS2Issue objects to the pipeline (default)
# 0 = Emulates Mode 0/no parameters from the original Locksmith: output issues to console as table
# 1 = Emulates Mode 1 from the original Locksmith: output issues + fix scripts to console as list
Find-LS2VulnerableTemplate証明書テンプレートをスキャンして、特定の ESC 脆弱性を検出します。
Find-LS2VulnerableTemplate -Technique <String>
# Supported: ESC1, ESC2, ESC3c1, ESC3c2, ESC4a, ESC4o, ESC9, ESC13
戻り値: プログラムで使用するための LS2Issue オブジェクト
Find-LS2VulnerableCA証明機関の構成上の問題と危険なロール割り当てをスキャンします。
Find-LS2VulnerableCA -Technique <String>
# Supported: ESC6, ESC7a, ESC7m, ESC8, ESC11, ESC16
戻り値: プログラムで使用するための LS2Issue オブジェクト
Find-LS2VulnerableObjectPKI インフラストラクチャのオブジェクト (コンテナ、コンピューターアカウント) をスキャンしてセキュリティ上の問題を検出します。
Find-LS2VulnerableObject -Technique <String>
# Supported: ESC5a, ESC5o
を返します: プログラムで使用するための LS2Issue オブジェクト
Get-LS2Stores監査中に設定された内部データストアを、検査と分析のために返します。
Get-LS2Stores [-Name <String>]
# Valid -Name values: PrincipalStore, AdcsObjectStore, DomainStore, IssueStore,
# SafePrincipals, DangerousPrincipals, StandardOwners
# Omit -Name to return all stores.
戻り値:
Set-LS2Forestスキャンの対象フォレストを設定します。複数のスキャンを実行する場合や、Find-LS2Vulnerable* 関数を単独で使用する場合に便利です。
Set-LS2Forest -Forest <String>
Set-LS2CredentialAD クエリ用の資格情報を設定します。複数のスキャンを実行する場合や、Find-LS2Vulnerable* 関数を単独で使用する場合に便利です。
Set-LS2Credential -Credential <PSCredential>
Find-LS2RiskyPrincipal構成中心のリスク分析からプリンシパル中心のリスク分析へと視点を切り替えます。脆弱性を個々のプリンシパルごとに集約し、どのユーザーまたはサービスアカウントが最も高い AD CS エクスポージャーを持っているかを示します。
Find-LS2RiskyPrincipal [-Technique <String>] [-MinimumIssueCount <Int>] [-Top <Int>] [-Rescan]
戻り値: Principal、IssueCount、Techniques、VulnerableObjects、Issues を含む PSCustomObject
New-LS2Dashboard現在のスキャン結果からインタラクティブな HTML ダッシュボードを生成します。PSWriteHTML は同梱(vendored)されているため、別途インストールする必要はありません。
New-LS2Dashboard [-FilePath <String>] [-Show] [-ExpandGroups] [-Online]
戻り値: 指定されたパスにHTMLファイル。ストアを populate するには、まず Invoke-Locksmith2 または Find-LS2Vulnerable* を実行してください。
Locksmith 2 は「オープンソース、承認されたコントリビューション」です。つまり、提出前にメンテナーと協議する必要があります。
Locksmith 2 は、正当なセキュリティ評価および防御目的にのみ提供されています。セキュリティ監査を実行する前に適切な承認を得る責任はユーザーにあります。作者は、本ツールによる誤用や損害について責任を負いません。
MIT License w/Commons Clause - 詳細は LICENSE ファイルを参照してください。
Made with 💜 by Jake Hildreth