GCP - Workflows Privesc
Workflows
Grundinformationen:
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
)Soweit ich weiß, ist es nicht möglich, eine Shell mit Zugriff auf den Metadaten-Endpunkt zu erhalten, der die SA-Anmeldeinformationen des SA enthält, das an einen Workflow angehängt ist. Es ist jedoch möglich, die Berechtigungen des SA zu missbrauchen, indem man die auszuführenden Aktionen innerhalb des Workflows hinzufügt.
Es ist möglich, die Dokumentation der Connectoren zu finden. Zum Beispiel ist dies die Seite des Secretmanager-Connectors. In der Seitenleiste sind mehrere andere Connectoren zu finden.
Und hier finden Sie ein Beispiel für einen Connector, der ein Geheimnis druckt:
Aktualisierung über die CLI:
Wenn Sie einen Fehler wie ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist
erhalten, warten Sie einfach eine Minute und versuchen Sie es erneut.
Wenn Sie keinen Webzugang haben, ist es möglich, die Ausführung eines Workflows auszulösen und zu sehen mit:
Sie können auch die Ausgabe vorheriger Ausführungen überprüfen, um nach sensiblen Informationen zu suchen.
Beachten Sie, dass selbst wenn Sie einen Fehler wie PERMISSION_DENIED: Permission 'workflows.operations.get' denied on...
erhalten, weil Sie diese Berechtigung nicht haben, der Workflow generiert wurde.
Leak OIDC-Token (und OAuth?)
Laut den Dokumenten ist es möglich, Workflow-Schritte zu verwenden, die eine HTTP-Anfrage mit dem OAuth- oder OIDC-Token senden. Allerdings muss die HTTP-Anfrage mit dem Oauth-Token, wie im Fall von Cloud Scheduler, an den Host .googleapis.com
gerichtet sein.
Daher ist es möglich, das OIDC-Token zu leaken, indem man einen von dem Benutzer kontrollierten HTTP-Endpunkt angibt, aber um das OAuth-Token zu leaken, benötigen Sie einen Bypass für diesen Schutz. Sie können jedoch weiterhin jede GCP-API kontaktieren, um im Namen des SA Aktionen durchzuführen, entweder über Connectoren oder HTTP-Anfragen mit dem OAuth-Token.
Oauth
OIDC
workflows.workflows.update
...
workflows.workflows.update
...Mit dieser Berechtigung anstelle von workflows.workflows.create
ist es möglich, einen bereits bestehenden Workflow zu aktualisieren und die gleichen Angriffe durchzuführen.
Last updated