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)
Informazioni di base:
GCP - Workflows Enumworkflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)Per quanto ne so, non è possibile ottenere una shell con accesso all'endpoint dei metadati contenente le credenziali del SA attaccato a un Workflow. Tuttavia, è possibile abusare dei permessi del SA aggiungendo le azioni da eseguire all'interno del Workflow.
È possibile trovare la documentazione dei connettori. Ad esempio, questa è la pagina del connettore Secretmanager. Nella barra laterale è possibile trovare diversi altri connettori.
E qui puoi trovare un esempio di un connettore che stampa un segreto:
Aggiornamento dalla CLI:
Se ricevi un errore come ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist
, aspetta un minuto e riprova.
Se non hai accesso web, è possibile attivare e vedere l'esecuzione di un Workflow con:
Puoi anche controllare l'output delle esecuzioni precedenti per cercare informazioni sensibili
Nota che anche se ricevi un errore come PERMISSION_DENIED: Permission 'workflows.operations.get' denied on...
perché non hai quel permesso, il workflow è stato generato.
Secondo la documentazione è possibile utilizzare passaggi del workflow che invieranno una richiesta HTTP con il token OAuth o OIDC. Tuttavia, proprio come nel caso di Cloud Scheduler, la richiesta HTTP con il token Oauth deve essere inviata all'host .googleapis.com
.
Pertanto, è possibile leakare il token OIDC indicando un endpoint HTTP controllato dall'utente, ma per leakare il token OAuth avresti bisogno di un bypass per quella protezione. Tuttavia, sei ancora in grado di contattare qualsiasi API GCP per eseguire azioni per conto del SA utilizzando sia connettori che richieste HTTP con il token OAuth.
workflows.workflows.update
...Con questo permesso, invece di workflows.workflows.create
, è possibile aggiornare un workflow già esistente e eseguire gli stessi attacchi.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)