GCP - Sourcerepos Privesc

Support HackTricks

Quell-Repository

Für weitere Informationen zu Quell-Repositorys siehe:

source.repos.get

Mit dieser Berechtigung ist es möglich, das Repository lokal herunterzuladen:

gcloud source repos clone <repo-name> --project=<project-uniq-name>

source.repos.update

Ein Principal mit dieser Berechtigung wird in der Lage sein, Code in einem Repository zu schreiben, das mit gcloud source repos clone <repo> geklont wurde. Beachten Sie jedoch, dass diese Berechtigung nicht an benutzerdefinierte Rollen angehängt werden kann, daher muss sie über eine vordefinierte Rolle vergeben werden, 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

Mit dieser Berechtigung könnte ein Angreifer sich selbst die vorherigen Berechtigungen gewähren.

Secret access

Wenn der Angreifer Zugriff auf die Geheimnisse hat, in denen die Tokens gespeichert sind, wird er in der Lage sein, sie zu stehlen. Für weitere Informationen darüber, wie man auf ein Geheimnis zugreift, siehe:

Add SSH keys

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 eingerichtet ist, können Sie auf ein Repository zugreifen mit:

git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>

Und dann verwenden Sie git-Befehle wie gewohnt.

Manuelle Anmeldeinformationen

Es ist möglich, manuelle Anmeldeinformationen zu erstellen, um auf die Source Repositories zuzugreifen:

Ein Klick auf den ersten Link führt Sie zu https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Dies wird ein Oauth-Autorisierungsfenster anzeigen, um Zugriff auf Google Cloud Development zu gewähren. Sie benötigen entweder die Anmeldeinformationen des Benutzers oder eine offene Sitzung im Browser dafür.

Dies wird Sie zu einer Seite mit einem Bash-Skript zur Ausführung und zur Konfiguration eines Git-Cookies in $HOME/.gitcookies senden.

Durch Ausführen des Skripts können Sie dann git clone, push... verwenden, und es wird funktionieren.

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:

gcloud source project-configs update --disable-pushblock

Sie können auch ein anderes Pub/Sub-Thema konfigurieren oder es sogar vollständig deaktivieren:

gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
Unterstütze HackTricks

Last updated