GCP - Workflows Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Información básica:
workflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)Hasta donde sé, no es posible obtener un shell con acceso al endpoint de metadatos que contiene las credenciales de la SA atacada a un Workflow. Sin embargo, es posible abusar de los permisos de la SA añadiendo las acciones a realizar dentro del Workflow.
Es posible encontrar la documentación de los conectores. Por ejemplo, esta es la página del conector de Secretmanager. En la barra lateral es posible encontrar varios otros conectores.
Y aquí puedes encontrar un ejemplo de un conector que imprime un secreto:
Actualizar desde la CLI:
Si recibes un error como ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist
, simplemente espera un minuto y vuelve a intentarlo.
Si no tienes acceso web, es posible activar y ver la ejecución de un Workflow con:
También puedes verificar la salida de ejecuciones anteriores para buscar información sensible.
Ten en cuenta que incluso si obtienes un error como PERMISSION_DENIED: Permission 'workflows.operations.get' denied on...
porque no tienes ese permiso, el flujo de trabajo ha sido generado.
Según la documentación, es posible utilizar pasos de flujo de trabajo que enviarán una solicitud HTTP con el token OAuth o OIDC. Sin embargo, al igual que en el caso de Cloud Scheduler, la solicitud HTTP con el token Oauth debe ser al host .googleapis.com
.
Por lo tanto, es posible filtrar el token OIDC indicando un endpoint HTTP controlado por el usuario, pero para filtrar el token OAuth necesitarías un bypass para esa protección. Sin embargo, aún puedes contactar cualquier API de GCP para realizar acciones en nombre del SA utilizando conectores o solicitudes HTTP con el token OAuth.
workflows.workflows.update
...Con este permiso en lugar de workflows.workflows.create
, es posible actualizar un flujo de trabajo ya existente y realizar los mismos ataques.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)