GCP - Sourcerepos Privesc
Quellcode-Repositories
Für weitere Informationen zu Quellcode-Repositories siehe:
pageGCP - 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 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
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 PrivescSSH-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:
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
source.repos.updateProjectConfig
Mit dieser Berechtigung ist es möglich, den Standardschutz der Quellrepositories zu deaktivieren, um keinen Code mit privaten Schlüsseln hochzuladen:
Sie können auch ein anderes Pub/Sub-Thema konfigurieren oder es vollständig deaktivieren:
Last updated