GCP - Sourcerepos Privesc
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Dépôts de code source
Pour plus d'informations sur les dépôts de code source, consultez :
GCP - Source Repositories Enum
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 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 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.
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 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 :
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>
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 :
.png)
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
.png)
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 des Source Repositories 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
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.