GCP - Sourcerepos Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Pour plus d'informations sur les dépôts de code source, consultez :
GCP - Source Repositories Enumsource.repos.get
Avec cette autorisation, il est possible de télécharger le dépôt localement :
source.repos.update
Un principal avec cette permission sera capable d'écrire du code à l'intérieur d'un dépôt cloné avec gcloud source repos clone <repo>
. Mais notez que cette permission ne peut pas être attachée à des rôles personnalisés, elle doit donc être donnée via un rôle prédéfini comme :
Propriétaire
Éditeur
Administrateur de dépôt source (roles/source.admin
)
Écrivain de dépôt source (roles/source.writer
)
Pour écrire, il suffit d'effectuer un git push
régulier.
source.repos.setIamPolicy
Avec cette permission, un attaquant pourrait se donner les permissions précédentes.
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 :
GCP - Secretmanager PrivescIl est possible d'ajouter des clés ssh au projet de dépôt source dans la console web. Cela effectue une requête POST à /v1/sshKeys:add
et peut être configuré sur https://source.cloud.google.com/user/ssh_keys
Une fois votre clé ssh configurée, vous pouvez accéder à un dépôt avec :
Et ensuite, utilisez les commandes git
comme d'habitude.
Il est possible de créer des identifiants manuels pour accéder aux Source Repositories :
En cliquant sur le premier lien, vous serez dirigé vers https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3
Ce qui affichera une invite d'autorisation Oauth pour donner accès à Google Cloud Development. Vous aurez donc besoin soit des identifiants de l'utilisateur, soit d'une session ouverte dans le navigateur pour cela.
Cela vous enverra à une page avec un script bash à exécuter et à configurer un cookie git dans $HOME/.gitcookies
En exécutant le script, vous pouvez ensuite utiliser git clone, push... et cela fonctionnera.
source.repos.updateProjectConfig
Avec cette permission, il est possible de désactiver la protection par défaut des Source Repositories pour ne pas télécharger de code contenant des clés privées :
Vous pouvez également configurer un sujet pub/sub différent ou même le désactiver complètement :
Apprenez et pratiquez le hacking AWS :HackTricks Formation Expert Red Team AWS (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Formation Expert Red Team GCP (GRTE)