GCP - Sourcerepos Privesc

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge HackTricks AWS)!

Autres façons de soutenir HackTricks :

Dépôts Source

Pour plus d'informations sur les Dépôts Source, consultez :

source.repos.get

Avec cette autorisation, il est possible de télécharger le dépôt localement :

gcloud source repos clone <repo-name> --project=<project-uniq-name>

source.repos.update

Un principal avec cette autorisation pourra écrire du code à l'intérieur d'un dépôt cloné avec gcloud source repos clone <repo>. Notez cependant que cette autorisation ne peut pas être attachée à des rôles personnalisés, elle doit donc être donnée via un rôle prédéfini tel que :

  • Propriétaire

  • Éditeur

  • Administrateur de dépôt source (roles/source.admin)

  • Rédacteur de dépôt source (roles/source.writer)

Pour écrire, il suffit d'exécuter un git push.

source.repos.setIamPolicy

Avec cette autorisation, un attaquant pourrait s'octroyer les autorisations précédentes.

Accès aux secrets

Si l'attaquant a accès aux secrets où les jetons sont stockés, il pourra les voler. Pour plus d'informations sur la façon d'accéder à un secret, consultez :

Ajouter des clés SSH

Il est possible d'ajouter des clés SSH au projet du dépôt source dans la console web. Cela envoie une requête POST à /v1/sshKeys:add et peut être configuré dans https://source.cloud.google.com/user/ssh_keys

Une fois votre clé SSH configurée, vous pouvez accéder à un dépôt avec :

git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>

Et ensuite utiliser les commandes git comme d'habitude.

Identifiants Manuels

Il est possible de créer des identifiants manuels pour accéder aux dépôts de code source :

En cliquant sur le premier lien, vous serez redirigé vers https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Ce qui déclenchera une invite d'autorisation Oauth pour donner accès au Google Cloud Development. Vous aurez donc besoin soit des identifiants de l'utilisateur ou d'une session ouverte dans le navigateur pour cela.

Cela vous dirigera vers une page avec un script bash à exécuter et configurer un cookie git dans $HOME/.gitcookies

En exécutant le script, vous pourrez ensuite utiliser git clone, push... et cela fonctionnera.

source.repos.updateProjectConfig

Avec cette autorisation, il est possible de désactiver la protection par défaut des dépôts de code source pour ne pas télécharger de code contenant des clés privées :

gcloud source project-configs update --disable-pushblock

Vous pouvez également configurer un sujet pub/sub différent ou même le désactiver complètement :

gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)!

D'autres façons de soutenir HackTricks:

Dernière mise à jour