Active Directory のポスト・エクスプロイトを列挙する:Cable はパワフルな OSS ツール

Cable: Open-Source, Powerful Tool for Active Directory Post-Exploitation and Enumeration

2024/11/05 SecurityOnline — Active Directory (AD) は、依然としてエンタープライズ環境のコア コンポーネントであり、その脆弱性を理解することは、攻撃者と防御者の双方にとって重要である。そこに登場した Cable は、Active Directory 環境の悪用方法を列挙するために設計された、合理的なオープンソースのポスト・エクスプロイト・ツールである。.NET で作成された Cable は、セキュリティ・プロフェッショナルに対して提供するのは、AD のセキュリティ態勢のチェック方式であり、また、制御された環境で権限昇格戦術を実行するための各種の悪意の手法である。

Cable が構築された背景には、Active Directory コンテキストにおける .NET 攻撃に関する知識の向上と、Active Directory エクスプロイト手法の拡張という、2つの大きな目標がある。

Cable の主な機能

1:Kerberoasting 機能
Kerberoasting とは、servicePrincipalName (SPN) 属性を持つ、サービス・アカウントをターゲットとする攻撃手法であり、オフラインでサービス・チケットを要求する脅威アクターにクラックを許すものである。Cable は、SPN に登録された AD アカウントからチケットを取得して、クラック可能な形式で保存することで、サービス・アカウントの資格情報を取得し易くすることで、この悪意のプロセスを簡素化している。

2:Resource-Based Constrained Delegation (RBCD) の悪用
Cable は、RBCD 攻撃における重要なコンポーネントの、msDs-AllowedToActOnBehalfOfOtherIdentity 属性を操作できる。RBCD の悪用により、特定アカウントによる他ユーザーへのなりすましが達成され、AD 内での横方向の移動が可能になる。

3:DACL (Discretionary Access Control List) の操作
Cable は、DACL の機能である Access Control Entries (ACE) の Read/Modify を用いて、AD オブジェクトに対するアクセス許可の管理をユーザーに提供する。この機能は、アクセス許可の監査および、特定のセキュリティ目的のためのアクセス権の調整において不可欠である。

4:Active Directory 証明書サービス (ADCS) の列挙
近年、ADCS は潜在的な脆弱性のために一般的なターゲットになっています。Cable を使用すると、ユーザーは証明機関 (CA) と証明書テンプレートを列挙できるため、構成ミスや脆弱な証明書の可能性について洞察を得ることができます。

5:Domain と Forest における信頼関係の列挙
ドメインとフォレストの間の信頼関係により、ドメイン間のエスカレーション・パスの提供が可能になる。Cable を使用することで、これらの信頼の包括的な列挙が可能になるため、セキュリティ・アナリストによるドメイン間の脆弱性が特定が容易になる。

6:Domain Controller の列挙
Domain Controller (DC) を知ることは、AD 内における、あらゆる攻撃/防御の戦略にとって重要である。Cable は、カレント・ドメイン内の DC を列挙し、偵察/調査に役立てる。

7:柔軟な LDAP 列挙
Cable は、一般的な LDAP 列挙と、カスタム・クエリの両方をサポートしている。したがって、AD 内のユーザー/グループ/コンピューターのデータを収集するための汎用性が、きわめて高いものになる。そこから返される、特定の属性の選択が可能になるため、ユーザーのプロセスが合理化され、データ収集の精度が向上する。

8:パスワード管理と ServicePrincipalName の制御
Cable を使用すると、AD 内でのユーザー・パスワードの変更が可能になるため、テストや権限のエスカレーションが容易になる。また、servicePrincipalName (SPN) 属性を制御が達成されるため、セキュリティ・プロフェッショナルによる、オブジェクトの Kerberoastable ステータスの切り替えが可能になる。

9:AS-REP Roasting のセットアップ
Cable により、各種オブジェクトの userAccountControl 属性に対する、DONT_REQ_PREAUTH フラグの設定/削除が可能になる。この機能が、AS-REP ロースティングの鍵となる。この攻撃方法は、事前認証を必要としないアカウントをターゲットにし、それをオフラインで要求する攻撃者に、クラックを許すものである。

10:Group と User のメンバーシップ列挙
Cable を使用することで、ユーザーが保持するグループ・メンバーシップの一覧表示および、グループ・メンバーシップに属するユーザーの一覧表示が可能になる。したがって、権限が昇格したユーザーの特定や、潜在的なエスカレーション・パスの評価などが簡素化される。

11:Computer Object の管理
AD 内でコンピューター・オブジェクトの作成/削除を行う。この機能により、攻撃者による権限エスカレーションや横方向への移動おける、別の手段が提供される可能性が生じる。

セキュリティにおける Cable の実際の使用法

Cable の簡潔なモジュール設計は、AD における偵察や権限エスカレーションの演習を実施する、Red チームやペンテスターに​​とって最適なものである。それぞれ機能は、AD エクスプロイトで使用される一般的な手法と一致し、また、Cable の柔軟性により、LDAP クエリ・コンフィグにおけるディレクトリ・ サービスの高度にカスタマイズされた列挙が可能になる。Blue チームとシステム管理者は、制御された環境で Cable を使用することで、AD デプロイメントにおける潜在的な脆弱性の理解を促進できる。

Cable の使用開始

GitHub で入手できる Cable は、Active Directory 環境を操作/防御するセキュリティ・プロフェッショナルたちが使用する、ツールキットに対してパワフルな追加機能を提供する。Cable が備える幅広い機能は、Kerberoasting/DACL 操作/RBCD エクスプロイト/ADCS 列挙などをカバーするため、AD ポスト・エクスプロイト後における多数側面が簡素化される。Cable などのツールを使用して AD の脆弱性を理解し、テストすることは、ネットワーク防御全体を強化する上で、IT プロフェッショナルにとって不可欠である。