Se ha un record google-site-verification è probabile che stia (o stesse) utilizzando 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"
Se qualcosa come include:_spf.google.com compare, conferma (nota che se non compare non lo nega in quanto un dominio può essere in Workspace senza utilizzare gmail come fornitore di posta).
Prova a configurare un Workspace con quel dominio
Un'altra opzione è provare a configurare un Workspace utilizzando il dominio, se si lamenta che il dominio è già in uso (come nell'immagine), sai che è già in uso!
Prova a recuperare la password di un'email utilizzando quel dominio
Se conosci un indirizzo email valido utilizzato in quel dominio (come: admin@email.com o info@email.com) puoi provare a recuperare l'account su https://accounts.google.com/signin/v2/recoveryidentifier, e se il tentativo non mostra un errore che indica che Google non ha idea di quell'account, allora sta utilizzando Workspace.
Enumerare email e account di servizio
È possibile enumerare email valide di un dominio Workspace e email di SA provando ad assegnare loro autorizzazioni e controllando i messaggi di errore. Per fare ciò è sufficiente avere le autorizzazioni per assegnare autorizzazioni a un progetto (che può essere di tua proprietà).
Nota che per controllarli ma anche se esistono non concedere loro un'autorizzazione puoi utilizzare il tipo serviceAccount quando è un user e user quando è un SA:
# Try to assign permissions to user 'unvalid-email-34r434f@hacktricks.xyz'# but indicating it's a service accountgcloudprojectsadd-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 emailgcloudprojectsadd-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.
Nota come quando l'email dell'utente era valida, il messaggio di errore indicava che il tipo non lo è, quindi siamo riusciti a scoprire che l'email support@hacktricks.xyz esiste senza concedere alcun privilegio.
Puoi fare lo stesso con gli Account Servizio utilizzando il tipo user: invece di serviceAccount::
# Non existentgcloudprojectsadd-iam-policy-binding<project-controlled-by-you> \--member='serviceAccount:<invalid-sa-name>@<proj-uniq-name>.iam.gserviceaccount.com' \--role='roles/viewer'# ResponseERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: User <invalid-sa-name>@<proj-uniq-name>.iam.gserviceaccount.com does not exist.
# Existentgcloudprojectsadd-iam-policy-binding<project-controlled-by-you> \--member='serviceAccount:<sa-name>@<proj-uniq-name>.iam.gserviceaccount.com' \--role='roles/viewer'# ResponseERROR: (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.