Netwrix 1Secureは、データとアイデンティティ全体にわたる統合された可視性を提供します。14日間の無料トライアルでフルアクセス可能です。無料トライアルを開始

リソースセンターブログ

Kerberos PAC とは?

Kerberos PAC とは?

Mar 17, 2023

Privileged Attribute Certificate(PAC)は、認証を行うユーザーとその特権に関する情報を含む Kerberos サービスチケットの拡張です。ユーザーが Active Directory(AD)ドメインで認証を行うと、ドメインコントローラーが PAC 情報を Kerberos チケットに追加します。Kerberos チケットサービスを他のシステムへの認証に使用する場合、ドメインコントローラーに問い合わせることなく、ユーザーのチケットから PAC を取得して、その特権レベルを判断できます。

本ガイドでは、Kerberos PAC に関わるいくつかの攻撃、これらに対する防御としての PAC 検証の限界、および Netwrix ソリューションがどのように役立つかを詳しく説明します。また、Kerberos PAC に関するよくある質問にも回答します。

Kerberos PAC を悪用する攻撃

PAC には非常に価値のある情報が含まれているため、複数の Windows AD 攻撃手法の標的になっています。ここでは代表的なものをいくつか紹介します。

権限昇格攻撃(CVE-2014-6324)

2014 年に、Windows Server の 2012 R2 以前のバージョンにおける PAC 検証アルゴリズムの脆弱性が公に開示されたことで、PAC は AD の権限昇格攻撃の標的になりました。この脆弱性により、攻撃者は侵害した任意のユーザー アカウントに対して PAC を偽造でき、結果的にそのユーザーを実質的に Domain Admin にすることが可能になります。

Windows のサイバーセキュリティチームは、 MS14-068 の更新プログラムをリリースして、CVE-2014-6324に迅速に対応しました。

脆弱性とパッチの完全な情報については、Microsoft’s postをお読みください。この攻撃については、Black Hat 2015 およびAdsecurity.org でも詳しく取り上げられています。

この脆弱性をテストするには、Python Kerberos Exploitation Kit (PyKEK) またはKekeo を使用できます。

Golden and Silver Tickets

Golden Tickets および Silver Tickets は、Active Directory の攻撃において攻撃者が偽造 PAC を活用することも可能にします。

ゴールデン チケット(Golden Ticket)は、盗まれた KDC キーを使って作成される偽造の Kerberos チケット授与チケット(TGT)です。これにより攻撃者は、ドメイン内の任意のユーザーに対して有効な Kerberos TGT を作成し、そのユーザーの PAC を操作して追加の特権を取得できます。Golden Tickets は、攻撃者が一見無害に見えるアカウントを使用して特権的なアクティビティを実行できるため、検出を回避するのに役立ちます。

同様に、Silver Tickets は攻撃者がチケット授与サービス(TGS)チケットに対して Active Directory の PAC を偽造できるようにします。 ただし、Golden Tickets と違って、Silver Tickets は攻撃者に対して特定のホスト上の特定のサービスに限った権限のみを与えます。TGS チケットはサービスのパスワード ハッシュで暗号化されているため、脅威アクターがあるサービスのハッシュを盗めば、そのサービス向けの TGS チケットを作成できます。

サービス アカウントには、権限が限られている場合があります。代表的な例として、SQL サーバー上でホストされているデータベースに対してシステム レベルの権限を持たない SQL サービス アカウントが挙げられます。 しかし、これらのアカウントは安全ではありません。攻撃者は Silver Tickets を使って PAC を偽造し、限定的な権限しかないサービス アカウントに追加の特権を付与したうえで、最終的にターゲットを完全に侵害できてしまうためです。

以下のとおり、Golden Tickets と Silver Tickets は 512(Domain Admins)や 519(Enterprise Admins)といった RID を使って、ユーザーを特権グループのメンバーにします。

Image

PAC の検証

偽造された PAC の周辺でセキュリティをどのように実装できますか? PAC validation 役には立ちますが、万能薬ではありません。

PAC validation はレジストリキー ValidateKdcPacSignature によって制御されており、HKLMSYSTEMCurrentControlSetControlLsaKerberosParameters にあります。このキーを 0 に設定すると、PAC validation は無効になります。

Windows システムで PAC validation が有効になっている場合、そのシステムに認証するユーザーの PAC は、有効性を確認するために Active Directory に対してチェックされます——ただし、一定の条件を満たしている場合に限ります。

具体的には、Microsoftが 説明しているとおり

Windows OS は、当該サービスが TCB 権限を持っておらず、かつ Service Control Manager (SCM) サービスではない場合に、PAC validation メッセージを DC の NetLogon サービスへ送信します。Local Security Authority Subsystem Service (LSASS) プロセスは、LSA クライアント(アプリケーション サーバー)がローカル システム、ネットワーク サービス、またはローカル サービスのコンテキストで実行されていない場合、または SeTCBprivilege(オペレーティング システムの一部として動作する)を持っていない場合に、PAC validation メッセージを DC へ送信します。

言い換えると、PAC の検証は攻撃者が Silver および Golden Tickets を実行することを防げません。私のテストでは、PAC の検証の有無にかかわらず、対象システムに対して Silver および Golden Tickets を活用できました。 

ユーザー PAC を調べる

ユーザーの PAC を確認してみたい場合、Impacket に付属しているスクリプト getPAC.py、 は始めるのに最適な方法です。

Windows でこれをテストするには、 CommandoVMをチェックするとよいでしょう。 このツールは getPAC.py スクリプト(および他にも多くのもの)を実行可能ファイルとしてパッケージ化するため、Python の依存関係を心配する必要がありません。

getPAC.py スクリプトを使うことで、特別な権限なしに任意のユーザーを対象にし、その PAC の設定と情報を返すことができます:

Terminal output of Impacket's getPac.exe displaying Kerberos validation information for user michael.bluth, with GroupIds 512 and 513 highlighted.

ご覧のとおり、このスクリプトはグループ メンバーシップ以上の情報を返します。これらの結果について詳しくは、グループ キーの情報と Kerberos のグループ メンバーシップを確認し、Microsoft の次のドキュメントを参照してください:Privilege Attribute Certificate data structure

Netwrix ができること

PAC クライアントの検証や getPAC.py のようなスクリプトは、ユーザーやデータを不正アクセスから保護できます。残念ながら、十分な防御はできません。特に、攻撃者が Golden および Silver Tickets を使って PAC 攻撃を偽造する場合はなおさらです。

そこで活躍するのが、Netwrix のエンドツーエンド Active Directory security solution です。包括的で使いやすく、安全なこの脅威検知ツールは、次のことを支援します:

  • セキュリティ評価を通じて、セキュリティリスクを特定し、是正します。
  • 強固な パスワードポリシーを有効化し 高度な脅威から資格情報を保護します。
  • 常駐の特権アカウントを、just-in-time の just-enough access に置き換えます。
  • 侵害を防ぐために、高度な脅威を適時に検知します。
  • セキュリティプロトコルを検証し、確立し、強化します。
  • コンプライアンス監査に必要なセキュリティレポートを生成します。
  • 予期される脅威への対応を自動化します。
  • 不要な Active Directory の削除や変更をロールバックします。
  • 完全なドメイン復旧を合理化し、継続性を確保します。

よくある質問

Kerberos における PAC とは何ですか?

Privileged Attribute Certificate(PAC)は Kerberos チケットの一部です。ユーザーの権限に関する情報が含まれており、ユーザーが認証を行うたびに Active Directory のドメインで使用されます。

PAC の検証とは?

Windows システムで有効にすると、PAC の検証は Active Directory と照合することで、認証しているユーザーの PAC の有効性を確認します。残念ながら、PAC の検証を有効にしても 防止できません Golden Ticket および Silver Ticket 攻撃を。

共有する

もっと詳しく

著者について

Asset Not Found

Joe Dibley

セキュリティリサーチャー

Netwrix のセキュリティリサーチャーであり、Netwrix Security Research Team のメンバーです。Joe は Active Directory、Windows、およびさまざまなエンタープライズソフトウェアのプラットフォームとテクノロジーの専門家であり、新たなセキュリティリスク、複雑な攻撃手法、そしてそれに関連する緩和策と検知について研究しています。