GCP - Workflows Privesc
Workflows
Podstawowe informacje:
GCP - Workflows Enumworkflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)
workflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)O ile mi wiadomo, nie jest możliwe uzyskanie powłoki z dostępem do punktu końcowego metadanych zawierającego dane uwierzytelniające SA przypisanego do Workflow. Jednak możliwe jest nadużycie uprawnień SA, dodając działania do wykonania wewnątrz Workflow.
Możliwe jest znalezienie dokumentacji konektorów. Na przykład, oto strona konektora Secretmanager. W pasku bocznym można znaleźć kilka innych konektorów.
A tutaj można znaleźć przykład konektora, który drukuje sekret:
Aktualizacja z CLI:
Jeśli otrzymasz błąd taki jak ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist
, po prostu poczekaj minutę i spróbuj ponownie.
Jeśli nie masz dostępu do sieci, możliwe jest wywołanie i zobaczenie wykonania Workflow za pomocą:
Możesz również sprawdzić wyniki wcześniejszych wykonania, aby poszukać wrażliwych informacji
Zauważ, że nawet jeśli otrzymasz błąd taki jak PERMISSION_DENIED: Permission 'workflows.operations.get' denied on...
ponieważ nie masz tej zgody, workflow został wygenerowany.
Wyciekanie tokena OIDC (i OAuth?)
Zgodnie z dokumentacją możliwe jest użycie kroków workflow, które wyślą żądanie HTTP z tokenem OAuth lub OIDC. Jednak, podobnie jak w przypadku Cloud Scheduler, żądanie HTTP z tokenem Oauth musi być skierowane do hosta .googleapis.com
.
Dlatego możliwe jest wyciekanie tokena OIDC poprzez wskazanie punktu końcowego HTTP kontrolowanego przez użytkownika, ale aby wyciekać token OAuth, potrzebowałbyś obejścia tej ochrony. Niemniej jednak, nadal możesz kontaktować się z dowolnym API GCP, aby wykonywać działania w imieniu SA używając zarówno konektorów, jak i żądań HTTP z tokenem OAuth.
Oauth
OIDC
workflows.workflows.update
...
workflows.workflows.update
...Dzięki temu uprawnieniu, zamiast workflows.workflows.create
, możliwe jest zaktualizowanie już istniejącego workflow i przeprowadzenie tych samych ataków.
Last updated