コンテンツにスキップ
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 サービス自体を停止