GCP - Source Repositories Enum

Support HackTricks

Grundinformationen

Google Cloud Source Repositories ist ein vollständig ausgestatteter, skalierbarer, privater Git-Repository-Dienst. Es ist darauf ausgelegt, deinen Quellcode in einer vollständig verwalteten Umgebung zu hosten, die nahtlos mit anderen GCP-Tools und -Diensten integriert ist. Es bietet einen kollaborativen und sicheren Ort für Teams, um ihren Code zu speichern, zu verwalten und zu verfolgen.

Wichtige Funktionen von Cloud Source Repositories sind:

  1. Vollständig verwaltetes Git-Hosting: Bietet die vertraute Funktionalität von Git, was bedeutet, dass du reguläre Git-Befehle und -Workflows verwenden kannst.

  2. Integration mit GCP-Diensten: Integriert sich mit anderen GCP-Diensten wie Cloud Build, Pub/Sub und App Engine für eine durchgängige Nachverfolgbarkeit vom Code bis zur Bereitstellung.

  3. Private Repositories: Stellt sicher, dass dein Code sicher und privat gespeichert wird. Du kannst den Zugriff mit Cloud Identity and Access Management (IAM)-Rollen steuern.

  4. Quellcodeanalyse: Arbeitet mit anderen GCP-Tools zusammen, um eine automatisierte Analyse deines Quellcodes bereitzustellen, die potenzielle Probleme wie Bugs, Schwachstellen oder schlechte Programmierpraktiken identifiziert.

  5. Kollaborationstools: Unterstützt kollaboratives Codieren mit Tools wie Merge-Anfragen, Kommentaren und Überprüfungen.

  6. Spiegelunterstützung: Ermöglicht es dir, Cloud Source Repositories mit Repositories zu verbinden, die auf GitHub oder Bitbucket gehostet werden, was eine automatische Synchronisierung ermöglicht und eine einheitliche Ansicht aller deiner Repositories bietet.

OffSec-Informationen

  • Die Konfiguration der Quell-Repositorys innerhalb eines Projekts wird ein Service-Konto haben, das zum Veröffentlichen von Cloud Pub/Sub-Nachrichten verwendet wird. Das standardmäßig verwendete ist das Compute SA. Allerdings glaube ich nicht, dass es möglich ist, sein Token aus den Source Repositories zu stehlen, da es im Hintergrund ausgeführt wird.

  • Um den Code in der GCP Cloud Source Repositories-Webkonsole (https://source.cloud.google.com/) zu sehen, muss der Code standardmäßig im Master-Branch sein.

  • Du kannst auch ein Spiegel-Cloud-Repository erstellen, das auf ein Repo von Github oder Bitbucket zeigt (mit Zugriff auf diese Plattformen).

  • Es ist möglich, von innerhalb von GCP zu codieren und zu debuggen.

  • Standardmäßig verhindert Source Repositories, dass private Schlüssel in Commits gepusht werden, aber dies kann deaktiviert werden.

In Cloud Shell öffnen

Es ist möglich, das Repository in Cloud Shell zu öffnen, ein Prompt wie dieses wird erscheinen:

Dies ermöglicht es dir, in Cloud Shell zu codieren und zu debuggen (was dazu führen könnte, dass cloudshell kompromittiert wird).

Enumeration

# Repos enumeration
gcloud source repos list #Get names and URLs
gcloud source repos describe <repo_name>
gcloud source repos get-iam-policy <repo_name>

# gcloud repo clone
gcloud source repos clone <REPO NAME>
gcloud source repos get-iam-policy <REPO NAME>
... git add & git commit -m ...
git push --set-upstream origin master
git push -u origin master

# Access via git
## To add a SSH key go to https://source.cloud.google.com/user/ssh_keys (no gcloud command)
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>
git add, commit, push...

Privilegieneskalation & Nachausnutzung

GCP - Sourcerepos Privesc

Unauthentifiziertes Enum

GCP - Source Repositories Unauthenticated Enum
Unterstütze HackTricks

Last updated