GCP - Source Repositories Enum

Soutenir HackTricks

Informations de base

Google Cloud Source Repositories est un service de dépôt Git privé entièrement fonctionnel et évolutif. Il est conçu pour héberger votre code source dans un environnement entièrement géré, s'intégrant parfaitement avec d'autres outils et services GCP. Il offre un espace collaboratif et sécurisé pour les équipes afin de stocker, gérer et suivre leur code.

Les principales caractéristiques des dépôts source Cloud incluent :

  1. Hébergement Git entièrement géré : Offre la fonctionnalité familière de Git, ce qui signifie que vous pouvez utiliser des commandes et des flux de travail Git réguliers.

  2. Intégration avec les services GCP : S'intègre avec d'autres services GCP comme Cloud Build, Pub/Sub et App Engine pour une traçabilité de bout en bout du code au déploiement.

  3. Dépôts privés : Assure que votre code est stocké de manière sécurisée et privée. Vous pouvez contrôler l'accès en utilisant les rôles Cloud Identity and Access Management (IAM).

  4. Analyse du code source : Travaille avec d'autres outils GCP pour fournir une analyse automatisée de votre code source, identifiant les problèmes potentiels comme les bogues, les vulnérabilités ou les mauvaises pratiques de codage.

  5. Outils de collaboration : Prend en charge le codage collaboratif avec des outils comme les demandes de fusion, les commentaires et les revues.

  6. Support de miroir : Vous permet de connecter les dépôts source Cloud avec des dépôts hébergés sur GitHub ou Bitbucket, permettant une synchronisation automatique et fournissant une vue unifiée de tous vos dépôts.

Informations OffSec

  • La configuration des dépôts source à l'intérieur d'un projet aura un compte de service utilisé pour publier des messages Cloud Pub/Sub. Le compte par défaut utilisé est le Compute SA. Cependant, je ne pense pas qu'il soit possible de voler son jeton depuis les dépôts source car il s'exécute en arrière-plan.

  • Pour voir le code à l'intérieur de la console web des dépôts source Cloud GCP (https://source.cloud.google.com/), vous devez que le code soit dans la branche master par défaut.

  • Vous pouvez également créer un dépôt Cloud miroir pointant vers un dépôt de Github ou Bitbucket (en donnant accès à ces plateformes).

  • Il est possible de coder et déboguer depuis l'intérieur de GCP.

  • Par défaut, les dépôts source empêchent les clés privées d'être poussées dans les commits, mais cela peut être désactivé.

Ouvrir dans Cloud Shell

Il est possible d'ouvrir le dépôt dans Cloud Shell, une invite comme celle-ci apparaîtra :

Cela vous permettra de coder et de déboguer dans Cloud Shell (ce qui pourrait compromettre cloudshell).

Énumération

# 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...

Escalade de Privilèges & Post Exploitation

Enum Non Authentifié

Soutenir HackTricks

Last updated