GCP - Compute Post Exploitation
Compute
Pour plus d'informations sur Compute et VPC (Réseau), consultez :
pageGCP - Compute EnumExporter et inspecter des images localement
Cela permettrait à un attaquant d'accéder aux données contenues dans des images existantes ou de créer de nouvelles images de VM en cours d'exécution et d'accéder à leurs données sans avoir accès à la VM en cours d'exécution.
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 :
Avant de réaliser cette action, l'attaquant pourrait avoir besoin de privilèges sur le bucket de stockage et bien sûr de privilèges sur cloudbuild car c'est le service qui sera chargé d'effectuer l'export. De plus, pour que cela fonctionne, le SA de codebuild et le SA de compute ont besoin d'autorisations privilégiées. Le SA de cloudbuild <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 :
roles/compute.storageAdmin
roles/storage.objectAdmin
Exporter et inspecter des instantanés et des disques localement
Il n'est pas possible d'exporter directement des instantanés et des disques, mais il est possible de transformer un instantané en disque, un disque en une image et en suivant la section précédente, exporter cette image pour l'inspecter localement
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 à partir de laquelle un attaquant a créé une image, il est possible d'accorder un accès à un compte externe sur l'image :
et ensuite créer une nouvelle VM à partir de celui-ci :
Si vous ne pouviez pas donner accès à votre compte externe sur l'image, vous pourriez lancer une VM en utilisant cette image dans le projet de la victime et faire exécuter les métadonnées un shell inversé pour accéder à l'image en ajoutant le paramètre :
Inspecter un instantané/disque en le connectant à une VM
Dans le but d'accéder aux données stockées dans un disque ou un instantané, vous pourriez transformer l'instantané en disque, un disque en une image et suivre les étapes précédentes.
Ou vous pourriez accorder l'accès à un compte externe sur le disque (si le point de départ est un instantané, accordez l'accès à l'instantané ou créez un disque à partir de celui-ci) :
Attacher le disque à une instance :
Montez le disque à l'intérieur de la VM :
Connectez-vous en SSH à la VM :
Identifiez le Disque : Une fois à l'intérieur de la VM, identifiez le nouveau disque en listant les périphériques de disque. Vous le trouverez généralement sous la forme
/dev/sdb
,/dev/sdc
, etc.Formatez et Montez le Disque (s'il s'agit d'un disque neuf ou brut) :
Créez un point de montage :
Montez le disque :
Si vous ne pouvez pas donner accès à un projet externe à l'instantané ou au disque, vous devrez peut-être effectuer ces actions à l'intérieur d'une instance du même projet que l'instantané/le disque.
Dernière mise à jour