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認証をサポートしないサービスがある可能性があるため、KERB-KEY-LIST-REQ
フィールドをPADATAリクエストの一部に含めて、二次krbtgt
キーを使用して署名された**部分的なTGTを要求し、**その後、プライマリkrbtgt
キーで署名された完全なTGTを取得することが可能です。
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)