GCP - Sourcerepos Privesc
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Source Repositories
Für weitere Informationen über Source Repositories siehe:
GCP - Source Repositories Enumsource.repos.get
source.repos.get
Mit dieser Berechtigung ist es möglich, das Repository lokal herunterzuladen:
source.repos.update
source.repos.update
Ein Principal mit dieser Berechtigung wird in der Lage sein, Code in ein mit gcloud source repos clone <repo>
geklontes Repository zu schreiben. Beachten Sie jedoch, dass diese Berechtigung nicht an benutzerdefinierte Rollen angehängt werden kann, sondern über eine vordefinierte Rolle wie:
Owner
Editor
Source Repository Administrator (
roles/source.admin
)Source Repository Writer (
roles/source.writer
)
Um zu schreiben, führen Sie einfach einen regulären git push
aus.
source.repos.setIamPolicy
source.repos.setIamPolicy
Mit dieser Berechtigung könnte ein Angreifer sich selbst die vorherigen Berechtigungen gewähren.
Secret access
Wenn der Angreifer Zugriff auf die Secrets hat, in denen die Tokens gespeichert sind, wird er in der Lage sein, diese zu stehlen. Weitere Informationen darüber, wie man auf ein Secret zugreift, finden Sie unter:
GCP - Secretmanager PrivescSSH-Schlüssel hinzufügen
Es ist möglich, SSH-Schlüssel zum Source Repository-Projekt in der Webkonsole hinzuzufügen. Es wird eine Post-Anfrage an /v1/sshKeys:add
gesendet und kann unter https://source.cloud.google.com/user/ssh_keys konfiguriert werden.
Sobald Ihr SSH-Schlüssel gesetzt ist, können Sie auf ein Repository zugreifen mit:
Und dann verwenden Sie git
-Befehle wie gewohnt.
Manuelle Anmeldeinformationen
Es ist möglich, manuelle Anmeldeinformationen zu erstellen, um auf die Source Repositories zuzugreifen:
Wenn Sie auf den ersten Link klicken, werden Sie zu https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3 weitergeleitet.
Dies wird eine Oauth-Autorisierungsaufforderung anzeigen, um Zugriff auf Google Cloud Development zu gewähren. Sie benötigen also entweder die Anmeldeinformationen des Benutzers oder eine offene Sitzung im Browser dafür.
Dies führt Sie zu einer Seite mit einem bash-Skript zur Ausführung und konfiguriert ein git-Cookie in $HOME/.gitcookies
Nach der Ausführung des Skripts können Sie dann git clone, push... verwenden und es wird funktionieren.
source.repos.updateProjectConfig
source.repos.updateProjectConfig
Mit dieser Berechtigung ist es möglich, den standardmäßigen Schutz der Source Repositories zu deaktivieren, um keinen Code hochzuladen, der Private Keys enthält:
Du kannst auch ein anderes pub/sub-Thema konfigurieren oder es sogar komplett deaktivieren:
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated