GCP - Sourcerepos Privesc

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Quellcode-Repositories

Für weitere Informationen zu Quellcode-Repositories siehe:

pageGCP - Source Repositories Enum

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 Prinzipal mit dieser Berechtigung kann Code in einem mit gcloud source repos clone <repo> geklonten Repository schreiben. Beachten Sie jedoch, dass diese Berechtigung nicht benutzerdefinierten Rollen zugewiesen werden kann, sondern über eine vordefinierte Rolle wie:

  • Besitzer

  • Editor

  • Administrator des Quellcode-Repositorys (roles/source.admin)

  • Schreibender des Quellcode-Repositorys (roles/source.writer)

Um zu schreiben, führen Sie einfach einen regulären git push aus.

source.repos.setIamPolicy

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

Geheimer Zugriff

Wenn der Angreifer Zugriff auf die Secrets hat, in denen die Tokens gespeichert sind, kann er sie stehlen. Weitere Informationen dazu, wie auf ein Secret zugegriffen werden kann, finden Sie unter:

pageGCP - Secretmanager Privesc

SSH-Schlüssel hinzufügen

Es ist möglich, SSH-Schlüssel zum Source Repository-Projekt hinzuzufügen über die Weboberfläche. Es wird ein POST-Request an /v1/sshKeys:add gesendet und kann konfiguriert werden unter https://source.cloud.google.com/user/ssh_keys

Sobald Ihr SSH-Schlüssel festgelegt 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 verwenden Sie dann die git Befehle wie gewohnt.

Manuelle Anmeldeinformationen

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

Wenn Sie auf den ersten Link klicken, gelangen Sie zu https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Dort wird eine OAuth-Autorisierungsaufforderung angezeigt, um Zugriff auf die Google Cloud-Entwicklung zu gewähren. Sie benötigen entweder die Anmeldeinformationen des Benutzers oder eine offene Sitzung im Browser dafür.

Dadurch gelangen Sie zu einer Seite mit einem Bash-Skript zum Ausführen und Konfigurieren eines Git-Cookies in $HOME/.gitcookies

Nach Ausführung 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 Standardschutz der Quellrepositories zu deaktivieren, um keinen Code mit privaten Schlüsseln hochzuladen:

gcloud source project-configs update --disable-pushblock

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

gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated