GCP - IAM, Principals & Org Unauthenticated Enum

Zacznij od zera i stań się ekspertem od hakowania AWS dzięki htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Iam & GCP Podmioty

Aby uzyskać więcej informacji, sprawdź:

pageGCP - IAM, Principals & Org Policies Enum

Czy domena jest używana w Workspace?

  1. Sprawdź rekordy DNS

Jeśli ma rekord google-site-verification, jest prawdopodobne, że jest (lub była) używana w 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"

Jeśli pojawi się coś takiego jak include:_spf.google.com, potwierdza to (zauważ, że jeśli tego nie ma, nie oznacza to, że domena nie jest używana w Workspace bez użycia usług Gmail).

  1. Spróbuj skonfigurować Workspace z tą domeną

Inną opcją jest próba skonfigurowania Workspace z użyciem tej domeny, jeśli zgłasza, że domena jest już używana (jak na obrazku), to oznacza, że jest już używana!

Aby spróbować skonfigurować domenę Workspace, przejdź do: https://workspace.google.com/business/signup/welcome

  1. Spróbuj odzyskać hasło do konta e-mail z tej domeny

Jeśli znasz jakikolwiek ważny adres e-mail używany w tej domenie (np. admin@email.com lub info@email.com), możesz spróbować odzyskać konto na stronie https://accounts.google.com/signin/v2/recoveryidentifier, a jeśli nie pojawi się żadny błąd wskazujący, że Google nie ma informacji o tym koncie, to oznacza, że jest używany Workspace.

Wyliczanie adresów e-mail i kont usługowych

Możliwe jest wyliczenie ważnych adresów e-mail w domenie Workspace oraz adresów kont usługowych (SA), próbując przypisać im uprawnienia i sprawdzając komunikaty błędów. Wystarczy mieć uprawnienia do przypisywania uprawnień do projektu (który może być tylko twoją własnością).

Zauważ, że aby je sprawdzić, nawet jeśli istnieją, nie nadawaj im uprawnień, możesz użyć typu serviceAccount gdy jest to user oraz user gdy jest to SA:

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

Zauważ, że gdy adres e-mail użytkownika był poprawny, komunikat o błędzie wskazywał, że typ nie jest poprawny, dzięki czemu udało nam się odkryć, że adres e-mail support@hacktricks.xyz istnieje, nie przyznając mu żadnych uprawnień.

Możesz zrobić to samo z Kontami Usług używając typu user: zamiast serviceAccount::

# 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.
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated