Si tiene un registro de google-site-verification, es probable que esté (o haya estado) utilizando 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"
Si también aparece algo como include:_spf.google.com confirma que es válido (ten en cuenta que si no aparece, no lo niega, ya que un dominio puede estar en Workspace sin usar gmail como proveedor de correo).
Intenta configurar un Workspace con ese dominio
Otra opción es intentar configurar un Workspace utilizando el dominio, si indica que el dominio ya está en uso (como en la imagen), ¡sabes que ya está en uso!
Intenta recuperar la contraseña de un correo utilizando ese dominio
Si conoces alguna dirección de correo válida que se esté utilizando en ese dominio (como: admin@email.com o info@email.com) puedes intentar recuperar la cuenta en https://accounts.google.com/signin/v2/recoveryidentifier, y si no muestra un error indicando que Google no tiene información sobre esa cuenta, entonces está utilizando Workspace.
Enumerar correos electrónicos y cuentas de servicio
Es posible enumerar correos electrónicos válidos de un dominio de Workspace y correos de SA intentando asignarles permisos y verificando los mensajes de error. Para esto, solo necesitas tener permisos para asignar permisos a un proyecto (que puede ser de tu propiedad).
Ten en cuenta que para verificarlos, incluso si existen, sin otorgarles permisos, puedes usar el tipo serviceAccount cuando es un usuario y usuario cuando es 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.
Ten en cuenta que cuando el correo del usuario era válido, el mensaje de error indicaba que el tipo no lo es, por lo que logramos descubrir que el correo electrónico support@hacktricks.xyz existe sin otorgarle ningún privilegio.
Puedes hacer lo mismo con las Cuentas de Servicio utilizando el tipo user: en lugar de 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.