Zenn Dev 8chikuwa3 Articles 9d16e3fadb70d6
AD CSのESC脆弱性チェックと対応
- URL: https://zenn.dev/8chikuwa3/articles/9d16e3fadb70d6
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: Active Directory Certificate Services(AD CS)における特権昇格の脆弱性群(ESC1〜16)を、SpecterOps 社のホワイトペーパー「Certified Pre-Owned」に基づいて体系的に解説し、OSS ツール GhostPack/Certify を使った監査手順と対応策をまとめた実践的な記事。証明書テンプレート・PKI コンテナ・CA 本体の3層を個別にスキャンする方法を示し、SAN 任意指定(ESC1)や NTLM リレー(ESC8/11)など致命的な脆弱性への具体的な対応手順を記載している。企業ライセンス問題を避けるため Visual Studio Community ではなく .NET SDK + nuget.exe でのビルド手順を採用している。
詳細
ツール準備:
- GhostPack/Certify は exe 配布なし → .NET SDK + nuget.exe でビルド
- nuget.exe restore Certify.sln → dotnet build -c Release で Certify.exe を生成
- 一般ユーザー権限のドメイン参加端末から安全に実行可(LDAP 読み取りのみ)
3層の監査コマンド:
- テンプレート: Certify.exe enum-templates –filter-enabled –filter-vulnerable –hide-admins(ESC1〜4,9,13 を検出)
- PKI コンテナ: Certify.exe enum-pkiobjects(Domain Users / Authenticated Users が権限を持つ場合は即対応)
- CA 本体: Certify.exe enum-cas –filter-vulnerable –hide-admins(ESC6,7,8,11 を検出)
主要脆弱性と対応:
- ESC1(SAN 任意指定): テンプレートの無効化 or「Active Directoryの情報から構築する」に変更
- ESC6(CA レジストリの EDITF_ATTRIBUTESUBJECTALTNAME2 有効): レジストリフラグを無効化
- ESC7(ManageCA 権限の漏洩): CA のアクセス許可を厳格化
- ESC8/11(NTLM リレー): IIS で HTTPS 強制・EPA を必須に設定・RPCエンドポイントの暗号化強制。Web 登録サービスが常時不要なら IIS サービス自体を停止