Az - Dynamic Groups Privesc

Support HackTricks

基本情報

Dynamic groups は、ルール が設定されており、そのルールに一致するすべての ユーザーまたはデバイス がグループに追加されるグループです。ユーザーまたはデバイスの 属性変更 されるたびに、動的ルールが 再チェック されます。また、新しいルール作成 されると、すべてのデバイスとユーザーが チェック されます。

Dynamic groups には Azure RBAC roles を割り当てることができますが、Dynamic groups に AzureAD roles を追加することは できません

この機能を使用するには、Azure AD premium P1 ライセンスが必要です。

Privesc

デフォルトでは、Azure AD では任意のユーザーがゲストを招待できることに注意してください。したがって、Dynamic group の ルール属性 に基づいてユーザーに 権限 を与える場合、新しい ゲスト にこれらの属性を 設定 することで 権限を昇格 させることが可能です。また、ゲストは自分のプロファイルを管理し、これらの属性を変更することもできます。

Dynamic membership を許可するグループを取得する: Get-AzureADMSGroup | ?{$_.GroupTypes -eq 'DynamicMembership'}

  • ルールの例: (user.otherMails -any (_ -contains "tester")) -and (user.userType -eq "guest")

  • ルールの説明: 'tester' という文字列を含むセカンダリメールを持つ任意のゲストユーザーがグループに追加されます

  1. Azure Active Directory -> Users に移動し、Want to switch back to the legacy users list experience? Click here to leave the previewクリック

  2. New guest user をクリックし、メールを 招待

  3. 招待が送信されると、ユーザーのプロファイル が Azure AD に 追加 されます。ユーザーのプロファイルを開き、Invitation accepted の下の (manage) をクリック

  1. Resend invite?Yes に変更すると、招待 URL が表示されます:

  1. URL をコピーして 開き、招待されたユーザーとして ログイン し、招待を 受け入れ

  2. cli にユーザーとして ログイン し、セカンダリメールを設定

# Login
$password = ConvertTo-SecureString 'password' - AsPlainText -Force
$creds = New-Object
System.Management.Automation.PSCredential('externaltester@somedomain.onmicrosoft.com', $Password)
Connect-AzureAD -Credential $creds -TenantId <tenant_id_of_attacked_domain>

# Chnage OtherMails setting
Set-AzureADUser -ObjectId <OBJECT-ID> -OtherMails <Username>@<TENANT_NAME>.onmicrosoft.com -Verbose

参考文献

Support HackTricks

Last updated