GCP - IAM, Principals & Org Unauthenticated Enum
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Iam & GCP Principals
Vir meer inligting, kyk:
GCP - IAM, Principals & Org Policies Enum
Word domein in Workspace gebruik?
- Kontroleer DNS rekords
As dit ’n google-site-verification rekord het, is dit waarskynlik dat dit (of dit was) Workspace gebruik:
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"
As iets soos include:_spf.google.com ook verskyn, bevestig dit dit (let daarop dat as dit nie verskyn nie, dit nie ontken nie, aangesien ’n domein in Workspace kan wees sonder om gmail as e-posverskaffer te gebruik).
- Probeer om ’n Workspace met daardie domein op te stel
’n Ander opsie is om te probeer om ’n Workspace met die domein op te stel. As dit kla dat die domein reeds gebruik word (soos in die beeld), weet jy dit is reeds gebruik!
Om ’n Workspace-domein op te stel, volg: https://workspace.google.com/business/signup/welcome
.png)
- Probeer om die wagwoord van ’n e-pos met daardie domein te herstel
As jy enige geldige e-posadres weet wat in daardie domein gebruik word (soos: admin@email.com of info@email.com), kan jy probeer om die rekening te herstel in https://accounts.google.com/signin/v2/recoveryidentifier, en as die poging nie ’n fout toon wat aandui dat Google geen idee het van daardie rekening nie, dan gebruik dit Workspace.
Enumereer e-posse en diensrekeninge
Dit is moontlik om geldige e-posse van ’n Workspace-domein en SA-e-posse te enumereer deur te probeer om hulle toestemmings toe te ken en die foutboodskappe te kontroleer. Hiervoor moet jy net toestemming hê om toestemming aan ’n projek toe te ken (wat net deur jou besit kan word).
Let daarop dat om hulle te kontroleer, maar selfs al bestaan hulle, nie ’n toestemming aan hulle te verleen nie, kan jy die tipe serviceAccount gebruik wanneer dit ’n user is en user wanneer dit ’n SA is:
# 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.
’n Sneller manier om diensrekeninge in bekende projekte te evalueer, is om net te probeer om toegang te verkry tot die URL: https://iam.googleapis.com/v1/projects/<project-id>/serviceAccounts/<sa-email>
Byvoorbeeld: https://iam.googleapis.com/v1/projects/gcp-labs-3uis1xlx/serviceAccounts/appengine-lab-1-tarsget@gcp-labs-3uis1xlx.iam.gserviceaccount.com
As die antwoord ’n 403 is, beteken dit dat die SA bestaan. Maar as die antwoord ’n 404 is, beteken dit dat dit nie bestaan nie:
// Exists
{
"error": {
"code": 403,
"message": "Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.",
"status": "PERMISSION_DENIED"
}
}
// Doesn't exist
{
"error": {
"code": 404,
"message": "Unknown service account",
"status": "NOT_FOUND"
}
}
Let op hoe wanneer die gebruiker se e-pos geldig was, die foutboodskap aangedui het dat hulle tipe nie is nie, so ons het daarin geslaag om te ontdek dat die e-pos support@hacktricks.xyz bestaan sonder om enige voorregte toe te ken.
Jy kan die selfde doen met Diensrekeninge deur die tipe user: te gebruik in plaas van 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.
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

