GCP - Sourcerepos Privesc

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Source Repositories

Pour plus d’informations sur Source Repositories, consultez :

GCP - Source Repositories Enum

source.repos.get

Avec cette permission, il est possible de télécharger le repository localement :

Clone source repository ```bash gcloud source repos clone --project= ```

source.repos.update

Un principal disposant de cette permission pourra Ă©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 rattachĂ©e Ă  des rĂŽles personnalisĂ©s, elle doit donc ĂȘtre accordĂ©e via un rĂŽle prĂ©dĂ©fini tel que :

  • Owner
  • Editor
  • Source Repository Administrator (roles/source.admin)
  • Source Repository Writer (roles/source.writer)

Pour Ă©crire, il suffit d’effectuer un git push classique.

source.repos.setIamPolicy

Avec cette permission, un attaquant pourrait s’accorder les permissions prĂ©cĂ©dentes.

AccĂšs aux secrets

Si l’attaquant a accĂšs aux secrets oĂč les tokens sont stockĂ©s, il pourra les voler. Pour plus d’informations sur la façon d’accĂ©der Ă  un secret, consultez :

GCP - Secretmanager Privesc

Ajouter des clés SSH

Il est possible d’ajouter des clĂ©s SSH au projet Source Repository dans la console web. Cela effectue une requĂȘte POST vers /v1/sshKeys:add et peut ĂȘtre configurĂ© sur https://source.cloud.google.com/user/ssh_keys

Une fois votre clé SSH définie, vous pouvez accéder à un dépÎt avec :

Cloner le dépÎt via SSH ```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p//r/ ```

Et ensuite, utilisez les commandes git comme d’habitude.

Identifiants manuels

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 l’accùs à Google Cloud Development. Vous aurez donc besoin soit des credentials de l’utilisateur soit d’une session ouverte dans le navigateur pour cela.

Cela vous amÚnera à une page contenant un bash script à exécuter et configurant 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 permission, il est possible de dĂ©sactiver la protection par dĂ©faut de Source Repositories qui empĂȘche l’upload de code contenant des Private Keys :

DĂ©sactiver pushblock et modifier la configuration pub/sub ```bash gcloud source project-configs update --disable-pushblock ``` Vous pouvez Ă©galement configurer un pub/sub topic diffĂ©rent ou mĂȘme le dĂ©sactiver complĂštement : ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks