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)
Para más información sobre Compute y VPC (Redes) consulta:
GCP - Compute EnumEsto permitiría a un atacante acceder a los datos contenidos dentro de imágenes ya existentes o crear nuevas imágenes de VMs en ejecución y acceder a sus datos sin tener acceso a la VM en ejecución.
Es posible exportar una imagen de VM a un bucket y luego descargarla y montarla localmente con el comando:
Para realizar esta acción, el atacante podría necesitar privilegios sobre el bucket de almacenamiento y, por supuesto, privilegios sobre cloudbuild, ya que es el servicio que se va a solicitar para realizar la exportación.
Además, para que esto funcione, el SA de codebuild y el SA de compute necesitan permisos privilegiados.
El SA de cloudbuild <project-id>@cloudbuild.gserviceaccount.com
necesita:
roles/iam.serviceAccountTokenCreator
roles/compute.admin
roles/iam.serviceAccountUser
Y el SA <project-id>-compute@developer.gserviceaccount.com
necesita:
roles/compute.storageAdmin
roles/storage.objectAdmin
No es posible exportar instantáneas y discos directamente, pero es posible transformar una instantánea en un disco, un disco en una imagen y, siguiendo la sección anterior, exportar esa imagen para inspeccionarla localmente.
Con el objetivo de acceder a los datos almacenados en una imagen o dentro de una VM en ejecución desde donde un atacante ha creado una imagen, es posible otorgar acceso a una cuenta externa sobre la imagen:
y luego crear una nueva VM a partir de ella:
Si no pudiste dar acceso a tu cuenta externa a través de la imagen, podrías lanzar una VM usando esa imagen en el proyecto de la víctima y hacer que los metadatos ejecuten un shell inverso para acceder a la imagen añadiendo el parámetro:
Con el objetivo de acceder a los datos almacenados en un disco o un snapshot, podrías transformar el snapshot en un disco, un disco en una imagen y seguir los pasos anteriores.
O podrías otorgar acceso a una cuenta externa sobre el disco (si el punto de partida es un snapshot, otorgar acceso sobre el snapshot o crear un disco a partir de él):
Adjuntar el disco a una instancia:
Montar el disco dentro de la VM:
SSH en la VM:
Identificar el Disco: Una vez dentro de la VM, identifica el nuevo disco listando los dispositivos de disco. Típicamente, puedes encontrarlo como /dev/sdb
, /dev/sdc
, etc.
Formatear y Montar el Disco (si es un disco nuevo o en bruto):
Crear un punto de montaje:
Montar el disco:
Si no puedes dar acceso a un proyecto externo a la instantánea o disco, es posible que necesites realizar estas acciones dentro de una instancia en el mismo proyecto que la instantánea/disco.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)