GCP - IAM, Principals & Org Unauthenticated Enum

Erlernen Sie das Hacken von AWS von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Iam & GCP Prinzipien

Für weitere Informationen siehe:

pageGCP - IAM, Principals & Org Policies Enum

Wird die Domain in Workspace verwendet?

  1. Überprüfen Sie DNS-Einträge

Wenn es einen google-site-verification-Eintrag gibt, ist es wahrscheinlich, dass es Workspace verwendet hat (oder verwendet):

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"

Wenn etwas wie include:_spf.google.com erscheint, bestätigt es dies (beachten Sie, dass es dies nicht verneint, da eine Domain in Workspace sein kann, ohne Gmail als E-Mail-Anbieter zu verwenden).

  1. Versuchen Sie, ein Workspace mit dieser Domain einzurichten

Eine weitere Option ist, zu versuchen, einen Workspace mit der Domain einzurichten. Wenn es beschwert, dass die Domain bereits verwendet wird (wie im Bild), wissen Sie, dass sie bereits verwendet wird!

Um eine Workspace-Domain einzurichten, folgen Sie: https://workspace.google.com/business/signup/welcome

  1. Versuchen Sie, das Passwort einer E-Mail mit dieser Domain wiederherzustellen

Wenn Sie eine gültige E-Mail-Adresse kennen, die in dieser Domain verwendet wird (z. B.: admin@email.com oder info@email.com), können Sie versuchen, das Konto unter https://accounts.google.com/signin/v2/recoveryidentifier wiederherzustellen. Wenn kein Fehler angezeigt wird, der darauf hinweist, dass Google keine Ahnung von diesem Konto hat, wird Workspace verwendet.

E-Mails und Dienstkonten auflisten

Es ist möglich, gültige E-Mails einer Workspace-Domain und SA-E-Mails zu auflisten, indem man versucht, ihnen Berechtigungen zuzuweisen und die Fehlermeldungen zu überprüfen. Dazu benötigen Sie lediglich Berechtigungen, um einem Projekt Berechtigungen zuzuweisen (das nur Ihnen gehören kann).

Beachten Sie, dass Sie sie überprüfen können, aber selbst wenn sie existieren, ihnen keine Berechtigung erteilen können. Verwenden Sie den Typ serviceAccount, wenn es sich um einen Benutzer handelt, und Benutzer, wenn es sich um ein SA handelt:

# 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.

Beachten Sie, dass bei einer gültigen Benutzer-E-Mail die Fehlermeldung darauf hinweist, dass der Typ nicht stimmt. So konnten wir feststellen, dass die E-Mail support@hacktricks.xyz existiert, ohne ihr Berechtigungen zu gewähren.

Sie können dasselbe mit Dienstkonten tun, indem Sie den Typ user: anstelle von serviceAccount: verwenden:

# 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.
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated