GCP - Source Repositories Enum
Basic Information
Google Cloud Source Repositories is a fully-featured, scalable, private Git repository service. It's designed to host your source code in a fully managed environment, integrating seamlessly with other GCP tools and services. It offers a collaborative and secure place for teams to store, manage, and track their code.
Key features of Cloud Source Repositories include:
Fully Managed Git Hosting: Offers the familiar functionality of Git, meaning you can use regular Git commands and workflows.
Integration with GCP Services: Integrates with other GCP services like Cloud Build, Pub/Sub, and App Engine for end-to-end traceability from code to deployment.
Private Repositories: Ensures your code is stored securely and privately. You can control access using Cloud Identity and Access Management (IAM) roles.
Source Code Analysis: Works with other GCP tools to provide automated analysis of your source code, identifying potential issues like bugs, vulnerabilities, or bad coding practices.
Collaboration Tools: Supports collaborative coding with tools like merge requests, comments, and reviews.
Mirror Support: Allows you to connect Cloud Source Repositories with repositories hosted on GitHub or Bitbucket, enabling automatic synchronization and providing a unified view of all your repositories.
OffSec information
The source repositories configuration inside a project will have a Service Account used to publishing Cloud Pub/Sub messages. The default one used is the Compute SA. However, I don't think it's possible steal its token from Source Repositories as it's being executed in the background.
To see the code inside the GCP Cloud Source Repositories web console (https://source.cloud.google.com/), you need the code to be inside master branch by default.
You can also create a mirror Cloud Repository pointing to a repo from Github or Bitbucket (giving access to those platforms).
It's possible to code & debug from inside GCP.
By default, Source Repositories prevents private keys to be pushed in commits, but this can be disabled.
Open In Cloud Shell
It's possible to open the repository in Cloud Shell, a prompt like this one will appear:
This will allow you to code and debug in Cloud Shell (which could get cloudshell compromised).
Enumeration
Privilege Escalation & Post Exploitation
pageGCP - Sourcerepos PrivescUnauthenticated Enum
pageGCP - Source Repositories Unauthenticated EnumLast updated