GCP - Compute Post Exploitation
Compute
Para obtener más información sobre Compute y VPC (Networking) consulta:
pageGCP - Compute EnumExportar e Inspeccionar Imágenes localmente
Esto permitiría a un atacante acceder a los datos contenidos dentro de imágenes existentes o crear nuevas imágenes de VM 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:
Antes de realizar esta acción, el atacante podría necesitar privilegios sobre el bucket de almacenamiento y definitivamente 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 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
Exportar e Inspeccionar Instantáneas y Discos localmente
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
Inspeccionar una imagen creando una VM
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 sobre la imagen, podrías lanzar una VM utilizando esa imagen en el proyecto de la víctima y hacer que los metadatos ejecuten un shell inverso para acceder a la imagen agregando el parámetro:
Inspeccionar un Snapshot/Disk adjuntándolo a una VM
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 conceder 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:
Accede por SSH a la VM:
Identifica el Disco: Una vez dentro de la VM, identifica el nuevo disco listando los dispositivos de disco. Normalmente, puedes encontrarlo como
/dev/sdb
,/dev/sdc
, etc.Formatea y Monta el Disco (si es un disco nuevo o sin formato):
Crea un punto de montaje:
Monta 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.
Última actualización