GCP - Compute Post Exploitation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Per ulteriori informazioni su Compute e VPC (Networking) controlla:
GCP - Compute EnumQuesto permetterebbe a un attaccante di accedere ai dati contenuti all'interno delle immagini già esistenti o creare nuove immagini di VM in esecuzione e accedere ai loro dati senza avere accesso alla VM in esecuzione.
È possibile esportare un'immagine VM in un bucket e poi scaricarla e montarla localmente con il comando:
Per eseguire questa azione, l'attaccante potrebbe aver bisogno di privilegi sul bucket di archiviazione e sicuramente privilegi su cloudbuild, poiché è il servizio che verrà richiesto di eseguire l'esportazione.
Inoltre, affinché questo funzioni, il SA di codebuild e il SA di compute devono avere permessi privilegiati.
Il SA di cloudbuild <project-id>@cloudbuild.gserviceaccount.com
ha bisogno di:
roles/iam.serviceAccountTokenCreator
roles/compute.admin
roles/iam.serviceAccountUser
E il SA <project-id>-compute@developer.gserviceaccount.com
ha bisogno di:
roles/compute.storageAdmin
roles/storage.objectAdmin
Non è possibile esportare direttamente snapshot e dischi, ma è possibile trasformare uno snapshot in un disco, un disco in un'immagine e seguendo la sezione precedente, esportare quell'immagine per ispezionarla localmente.
Con l'obiettivo di accedere ai dati memorizzati in un'immagine o all'interno di una VM in esecuzione da cui un attaccante ha creato un'immagine, è possibile concedere a un account esterno l'accesso all'immagine:
e poi creare una nuova VM da esso:
Se non puoi dare accesso al tuo account esterno tramite l'immagine, puoi avviare una VM utilizzando quell'immagine nel progetto della vittima e far eseguire alla metadata una reverse shell per accedere all'immagine aggiungendo il parametro:
Con l'obiettivo di accedere ai dati memorizzati in un disco o in uno snapshot, potresti trasformare lo snapshot in un disco, un disco in un'immagine e seguire i passaggi precedenti.
Oppure potresti concedere a un account esterno l'accesso al disco (se il punto di partenza è uno snapshot, concedi l'accesso allo snapshot o crea un disco da esso):
Collega il disco a un'istanza:
Montare il disco all'interno della VM:
SSH nella VM:
Identificare il Disco: Una volta dentro la VM, identificare il nuovo disco elencando i dispositivi disco. Tipicamente, puoi trovarlo come /dev/sdb
, /dev/sdc
, ecc.
Formattare e Montare il Disco (se è un disco nuovo o raw):
Creare un punto di montaggio:
Montare il disco:
Se non puoi dare accesso a un progetto esterno allo snapshot o al disco, potresti dover eseguire queste azioni all'interno di un'istanza nello stesso progetto dello snapshot/disk.
Impara e pratica il Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)