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)
Informações Básicas:
workflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)Até onde sei, não é possível obter um shell com acesso ao endpoint de metadados contendo as credenciais da SA atacada a um Workflow. No entanto, é possível abusar das permissões da SA adicionando as ações a serem realizadas dentro do Workflow.
É possível encontrar a documentação dos conectores. Por exemplo, esta é a página do conector Secretmanager. Na barra lateral, é possível encontrar vários outros conectores.
E aqui você pode encontrar um exemplo de um conector que imprime um segredo:
Atualização a partir da CLI:
Se você receber um erro como ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist
, apenas espere um minuto e tente novamente.
Se você não tiver acesso à web, é possível acionar e ver a execução de um Workflow com:
Você também pode verificar a saída de execuções anteriores para procurar informações sensíveis
Note que mesmo se você receber um erro como PERMISSION_DENIED: Permission 'workflows.operations.get' denied on...
porque você não tem essa permissão, o fluxo de trabalho foi gerado.
De acordo com a documentação, é possível usar etapas de fluxo de trabalho que enviarão uma solicitação HTTP com o token OAuth ou OIDC. No entanto, assim como no caso do Cloud Scheduler, a solicitação HTTP com o token Oauth deve ser para o host .googleapis.com
.
Portanto, é possível vazar o token OIDC indicando um endpoint HTTP controlado pelo usuário, mas para vazar o token OAuth você precisaria de um bypass para essa proteção. No entanto, você ainda pode contatar qualquer API GCP para realizar ações em nome da SA usando conectores ou solicitações HTTP com o token OAuth.
workflows.workflows.update
...Com esta permissão em vez de workflows.workflows.create
, é possível atualizar um fluxo de trabalho já existente e realizar os mesmos ataques.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)