Az - Federation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
From the docs:フェデレーションは、信頼を確立したドメインの集合です。信頼のレベルは異なる場合がありますが、通常は認証を含み、ほぼ常に認可を含みます。典型的なフェデレーションには、共有アクセスのために信頼を確立した複数の組織が含まれることがあります。
オンプレミス環境をAzure ADとフェデレートし、このフェデレーションを認証と認可に使用できます。このサインイン方法は、すべてのユーザーの認証がオンプレミスで行われることを保証します。この方法により、管理者はより厳格なアクセス制御を実施できます。AD FSおよびPingFederateとのフェデレーションが利用可能です。
基本的に、フェデレーションでは、すべての認証がオンプレ環境で行われ、ユーザーはすべての信頼された環境でSSOを体験します。したがって、ユーザーはオンプレの資格情報を使用してクラウドアプリケーションにアクセスできます。
セキュリティアサーションマークアップ言語(SAML)は、プロバイダー間でのすべての認証および認可の情報の交換に使用されます。
フェデレーションのセットアップには、3つの当事者が存在します:
ユーザーまたはクライアント
アイデンティティプロバイダー(IdP)
サービスプロバイダー(SP)
(Images from https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps)
最初に、ユーザーがアプリケーション(サービスプロバイダーまたはSP、例えばAWSコンソールやvSphere Webクライアント)にアクセスします。このステップは特定の実装に応じてスキップされ、クライアントが直接IdP(アイデンティティプロバイダー)に移動することがあります。
次に、SPはユーザー認証のために適切なIdP(例:AD FS、Okta)を特定します。その後、SAML(セキュリティアサーションマークアップ言語)AuthnRequestを作成し、クライアントを選択したIdPにリダイレクトします。
IdPが引き継ぎ、ユーザーを認証します。認証後、IdPによってSAMLResponseが作成され、ユーザーを通じてSPに転送されます。
最後に、SPはSAMLResponseを評価します。成功裏に検証され、IdPとの信頼関係が示されると、ユーザーはアクセスを許可されます。これにより、ログインプロセスが完了し、ユーザーはサービスを利用できるようになります。
SAML認証と一般的な攻撃についてもっと学びたい場合は、次に進んでください:
AD FSは、クレームベースのアイデンティティモデルです。
"..クレームは、主にインターネット上のクレームベースのアプリケーションへのアクセスを認可するために使用される、ユーザーに関する単なるステートメント(例えば、名前、アイデンティティ、グループ)です。"
ユーザーのクレームはSAMLトークン内に書き込まれ、IdPによって機密性を提供するために署名されます。
ユーザーはImmutableIDによって識別されます。これはグローバルに一意で、Azure ADに保存されています。
ImmutableIDは、ユーザーのためにオンプレミスのms-DS-ConsistencyGuidとして保存されており、またはユーザーのGUIDから導出できます。
ゴールデンSAML攻撃:
ADFSでは、SAML Responseはトークン署名証明書によって署名されます。
証明書が侵害された場合、Azure ADに同期された任意のユーザーとして認証することが可能です!
PTAの悪用と同様に、ユーザーのパスワード変更やMFAは効果がありません。なぜなら、私たちは認証応答を偽造しているからです。
証明書はDA権限を持つAD FSサーバーから抽出でき、その後、インターネットに接続された任意のマシンから使用できます。
アイデンティティプロバイダー(IdP)がユーザーサインインを認可するためにSAMLResponseを生成するプロセスは重要です。IdPの特定の実装に応じて、応答は署名または暗号化される場合があります。これにより、**サービスプロバイダー(SP)**はSAMLResponseの真正性を確認でき、信頼されたIdPによって発行されたものであることを保証します。
これはゴールデンチケット攻撃と類似しており、ユーザーのアイデンティティと権限を認証するためのキー(ゴールデンチケットのKRBTGT、ゴールデンSAMLのトークン署名秘密鍵)を操作して認証オブジェクト(TGTまたはSAMLResponse)を偽造することができます。これにより、任意のユーザーを偽装し、SPへの不正アクセスを許可します。
ゴールデンSAMLにはいくつかの利点があります:
リモートで作成でき、対象のドメインやフェデレーションの一部である必要はありません。
**二要素認証(2FA)**が有効でも効果があります。
トークン署名の秘密鍵は自動的に更新されません。
ユーザーのパスワードを変更しても、すでに生成されたSAMLは無効になりません。
Active Directory Federation Services (AD FS)は、信頼されたビジネスパートナー間でのアイデンティティ情報の安全な交換を促進するMicrosoftのサービスです。これは、ドメインサービスがフェデレーション内の他のサービスプロバイダーとユーザーアイデンティティを共有できるようにします。
AWSが侵害されたドメインを信頼している場合(フェデレーション内で)、この脆弱性を利用してAWS環境内の任意の権限を取得することが可能です。この攻撃には、SAMLオブジェクトに署名するために使用される秘密鍵が必要であり、これはゴールデンチケット攻撃におけるKRBTGTが必要なことに似ています。AD FSユーザーアカウントへのアクセスがあれば、この秘密鍵を取得できます。
ゴールデンSAML攻撃を実行するための要件は次のとおりです:
トークン署名秘密鍵
IdP公開証明書
IdP名
ロール名(引き受けるロール)
ドメイン\ユーザー名
AWSのロールセッション名
AmazonアカウントID
太字の項目のみが必須です。他の項目は任意で入力できます。
秘密鍵を取得するには、AD FSユーザーアカウントへのアクセスが必要です。そこから、秘密鍵をmimikatzのようなツールを使用して個人ストアからエクスポートできます。他の必要な情報を収集するには、Microsoft.Adfs.Powershellスナップインを次のように利用できます。ADFSユーザーとしてログインしていることを確認してください:
有効なSAMLResponseを、なりすましたいユーザーとして忘れることが可能です。shimitを使用して:
クラウド専用ユーザーのImmutableIDを作成し、彼らを偽装することも可能です。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)