Az - Cloud Kerberos Trust
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)
この投稿は https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/ の要約であり、攻撃に関するさらなる情報を確認できます。この技術については https://www.youtube.com/watch?v=AFay_58QubYでもコメントされています。
Azure ADとの信頼関係が確立されると、ADに読み取り専用ドメインコントローラー(RODC)が作成されます。 RODCコンピュータアカウントは**AzureADKerberos$
という名前です。また、krbtgt_AzureAD
という名前の二次krbtgt
アカウントも作成されます。このアカウントには、Azure ADが作成するチケットに使用されるKerberosキー**が含まれています。
したがって、このアカウントが侵害されると、任意のユーザーを偽装することが可能になるかもしれません... ただし、このアカウントはドメイン管理者、エンタープライズ管理者、管理者などの一般的な特権ADグループのためにチケットを作成することができないため、これは真実ではありません。
ただし、実際のシナリオでは、これらのグループに属さない特権ユーザーが存在することになります。したがって、新しいkrbtgtアカウントが侵害された場合、それを使用して彼らを偽装することができる可能性があります。
さらに、ユーザーがハイブリッドアイデンティティを使用してWindowsで認証すると、Azure ADはPRTと共に部分的なKerberosチケットを発行します。 TGTは部分的であるため、AzureADはオンプレミスADのユーザーに関する限られた情報(セキュリティ識別子(SID)や名前など)を持っています。
Windowsはその後、krbtgt
サービスのためにサービスチケットを要求することで、この部分的なTGTを完全なTGTに交換することができます。
Kerberos認証をサポートしないサービスがある可能性があるため、二次krbtgt
キーを使用して署名された部分的TGTを要求することが可能です。これは、リクエストのPADATA部分に**KERB-KEY-LIST-REQ
**フィールドを含めることで行われ、その後、プライマリkrbtgt
キーで署名された完全なTGTを取得します。NTハッシュをレスポンスに含めます。
AzureADが部分的TGTを生成するとき、それはユーザーに関する詳細を使用します。したがって、グローバル管理者がAzureAD内のユーザーのセキュリティ識別子と名前のデータを変更できる場合、そのユーザーのTGTを要求すると、セキュリティ識別子は異なるものになります。
Microsoft GraphやAzure AD Graphを通じてそれを行うことはできませんが、API Active Directory Connectが同期ユーザーを作成および更新するために使用するものを利用することが可能です。これにより、グローバル管理者は任意のハイブリッドユーザーのSAM名とSIDを変更することができ、その後認証を行うと、変更されたSIDを含む部分的TGTを取得します。
AADInternalsを使用して、Set-AADIntAzureADObjectコマンドレットを介して同期ユーザーを更新することができることに注意してください。
攻撃の成功とドメイン管理者権限の取得は、特定の前提条件を満たすことに依存しています:
同期APIを介してアカウントを変更する能力が重要です。これは、グローバル管理者の役割を持つか、AD Connect同期アカウントを持つことで達成できます。あるいは、ハイブリッドアイデンティティ管理者の役割でも十分であり、これによりAD Connectを管理し、新しい同期アカウントを作成する能力が与えられます。
ハイブリッドアカウントの存在が不可欠です。このアカウントは、被害者アカウントの詳細で変更可能であり、認証のためにアクセス可能である必要があります。
Active Directory内のターゲット被害者アカウントを特定する必要があります。攻撃はすでに同期された任意のアカウントに対して実行できますが、Azure ADテナントはオンプレミスのセキュリティ識別子を複製していない必要があり、チケットを取得するために未同期アカウントを変更する必要があります。
さらに、このアカウントはドメイン管理者に相当する権限を持っている必要がありますが、AzureAD RODCによって無効なTGTが生成されるのを避けるために、一般的なAD管理者グループのメンバーであってはなりません。
最も適切なターゲットは、AD Connect Syncサービスによって使用されるActive Directoryアカウントです。このアカウントはAzure ADと同期されておらず、そのSIDは有効なターゲットとなり、パスワードハッシュを同期する役割のためにドメイン管理者に相当する権限を本質的に持っています(パスワードハッシュ同期が有効であると仮定)。エクスプレスインストールのドメインでは、このアカウントはMSOL_で始まります。他のインスタンスでは、ディレクトリ複製権限を持つすべてのアカウントを列挙することでアカウントを特定できます。
元の投稿で確認してください: https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)