GCP - IAM, Principals & Org Unauthenticated Enum

htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 제로부터 전문가까지 배우세요!

HackTricks를 지원하는 다른 방법:

Iam & GCP Principals

자세한 정보는 확인하세요:

pageGCP - IAM, Principals & Org Policies Enum

Workspace에서 도메인이 사용되고 있습니까?

  1. DNS 레코드 확인

google-site-verification 레코드가 있는 경우 Workspace를 사용 중 (또는 사용했을 수 있음)입니다.

dig txt hacktricks.xyz

[...]
hacktricks.xyz.		3600	IN	TXT	"google-site-verification=2mWyPXMPXEEy6QqWbCfWkxFTcQhyYdwHrOxee1Yeo-0"
hacktricks.xyz.		3600	IN	TXT	"google-site-verification=C19PtLcZ1EGyzUYYJTX1Tp6bOGessxzN9gqE-SVKhRA"
hacktricks.xyz.		300	IN	TXT	"v=spf1 include:usb._netblocks.mimecast.com include:_spf.google.com include:_spf.psm.knowbe4.com include:_spf.salesforce.com include:spf.mandrillapp.com ~all"
  1. **include:_spf.google.com**와 같은 것이 나타나면 확인됩니다 (만약 나타나지 않는다면 gmail을 메일 제공자로 사용하지 않고도 Workspace에 도메인이 있을 수 있으므로 거부되지 않음을 유의하십시오).

  2. 해당 도메인으로 Workspace 설정 시도

다른 옵션은 해당 도메인을 사용하여 Workspace를 설정해 보는 것입니다. 도메인이 이미 사용 중임을 알 수 있는 경우 (이미지와 같이 도메인이 이미 사용 중이라고 불평하는 경우)!

Workspace 도메인을 설정하려면 다음을 따르십시오: https://workspace.google.com/business/signup/welcome

  1. 해당 도메인을 사용하는 이메일의 비밀번호를 복구하려고 시도

해당 도메인에서 사용 중인 유효한 이메일 주소를 알고 있다면 (예: admin@email.com 또는 info@email.com), https://accounts.google.com/signin/v2/recoveryidentifier에서 계정을 복구해 보고 시도하면 Google이 해당 계정에 대해 전혀 모르다는 오류가 표시되지 않는다면 Workspace를 사용 중이라는 것을 알 수 있습니다.

이메일 및 서비스 계정 열거

프로젝트에 권한을 할당하려고 시도하여 오류 메시지를 확인함으로써 Workspace 도메인 및 SA 이메일의 유효한 이메일을 열거할 수 있습니다. 이를 위해서는 프로젝트에 권한을 할당할 수 있는 권한만 있으면 됩니다 (해당 프로젝트가 소유자인 경우).

이를 확인하려면 존재하는지 확인할 수 있지만 권한을 부여하지 않아도 되며, **user**인 경우 serviceAccount 유형을 사용하고 **SA**인 경우 **user**를 사용할 수 있습니다:

# Try to assign permissions to user 'unvalid-email-34r434f@hacktricks.xyz'
# but indicating it's a service account
gcloud projects add-iam-policy-binding <project-controlled-by-you> \
--member='serviceAccount:unvalid-email-34r434f@hacktricks.xyz' \
--role='roles/viewer'
## Response:
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: User unvalid-email-34r434f@hacktricks.xyz does not exist.

# Now try with a valid email
gcloud projects add-iam-policy-binding <project-controlled-by-you> \
--member='serviceAccount:support@hacktricks.xyz' \
--role='roles/viewer'
# Response:
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Principal support@hacktricks.xyz is of type "user". The principal should appear as "user:support@hacktricks.xyz". See https://cloud.google.com/iam/help/members/types for additional documentation.

사용자 이메일이 유효한 경우 오류 메시지가 그 유형이 아니라는 것을 나타내므로, 권한을 부여하지 않고도 이메일 support@hacktricks.xyz가 존재하는 것을 발견할 수 있었습니다.

서비스 계정에 대해서도 serviceAccount: 대신 user: 유형을 사용하여 동일한 작업을 수행할 수 있습니다:

# Non existent
gcloud projects add-iam-policy-binding <project-controlled-by-you> \
--member='serviceAccount:<invalid-sa-name>@<proj-uniq-name>.iam.gserviceaccount.com' \
--role='roles/viewer'
# Response
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: User <invalid-sa-name>@<proj-uniq-name>.iam.gserviceaccount.com does not exist.

# Existent
gcloud projects add-iam-policy-binding <project-controlled-by-you> \
--member='serviceAccount:<sa-name>@<proj-uniq-name>.iam.gserviceaccount.com' \
--role='roles/viewer'
# Response
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Principal testing@digital-bonfire-410512.iam.gserviceaccount.com is of type "serviceAccount". The principal should appear as "serviceAccount:testing@digital-bonfire-410512.iam.gserviceaccount.com". See https://cloud.google.com/iam/help/members/types for additional documentation.
htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅까지 AWS 해킹을 배우세요!

HackTricks를 지원하는 다른 방법:

最終更新