GCP - Compute Enum

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

GCP VPC & Réseau

Apprenez comment cela fonctionne dans :

pageGCP - VPC & Networking

Énumération

# List networks
gcloud compute networks list
gcloud compute networks describe <network>

# List subnetworks
gcloud compute networks subnets list
gcloud compute networks subnets get-iam-policy <name> --region <region>
gcloud compute networks subnets describe <name> --region <region>

# List FW rules in networks
gcloud compute firewall-rules list --format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
sourceServiceAccounts.list():label=SRC_SVC_ACCT,
targetTags.list():label=TARGET_TAGS,
targetServiceAccounts.list():label=TARGET_SVC_ACCT,
disabled
)"

# List Hierarchical Firewalls
gcloud compute firewall-policies list  (--folder <value>| --organization <value>)
gcloud compute firewall-policies describe <fw_policy>
gcloud compute firewall-policies list-rules <fw_policy>

# Get Firewalls of each region
gcloud compute network-firewall-policies list
## Get final FWs applied in a region
gcloud compute network-firewall-policies get-effective-firewalls --network=<vpc_name> --region <region>

Vous pouvez facilement trouver des instances de calcul avec des règles de pare-feu ouvertes avec https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum

Instances de calcul

C'est ainsi que vous pouvez exécuter des machines virtuelles dans GCP. Consultez cette page pour plus d'informations :

pageGCP - Compute Instances

Énumération

# Get list of zones
# It's interesting to know which zones are being used
gcloud compute regions list | grep -E "NAME|[^0]/"

# List compute instances & get info
gcloud compute instances list
gcloud compute instances describe <instance name>
gcloud compute instances get-iam-policy <instance> --zone=ZONE
gcloud compute instances get-screenshot <instance name> # Instace must have "Display Device" enabled
gcloud compute instances os-inventory list-instances # Get OS info of instances (OS Config agent is running on instances)


# Enumerate disks
gcloud compute disks list
gcloud compute disks describe <disk>
gcloud compute disks get-iam-policy <disk>

Pour plus d'informations sur la façon de SSH ou modifier les métadonnées d'une instance pour escalader les privilèges, consultez cette page :

pageGCP - local privilege escalation ssh pivoting

Élévation de privilèges

Sur la page suivante, vous pouvez vérifier comment abuser des autorisations de calcul pour escalader les privilèges :

pageGCP - Compute Privesc

Énumération non authentifiée

pageGCP - Compute Unauthenticated Enum

Post-exploitation

pageGCP - Compute Post Exploitation

Persistance

pageGCP - Compute Persistence

Journaux de la console série

Les journaux de la console série de Compute Engine sont une fonctionnalité qui vous permet de visualiser et diagnostiquer les journaux de démarrage et du système d'exploitation de vos instances de machine virtuelle.

Les journaux de la console série fournissent une vue de bas niveau du processus de démarrage de l'instance, y compris les messages du noyau, les scripts d'initialisation et d'autres événements système qui se produisent lors du démarrage. Cela peut être utile pour déboguer les problèmes de démarrage, identifier les mauvaises configurations ou les erreurs logicielles, ou résoudre les problèmes de connectivité réseau.

Ces journaux peuvent exposer des informations sensibles des journaux système que les utilisateurs peu privilégiés ne voient généralement pas, mais avec les autorisations IAM appropriées, vous pouvez les lire.

Vous pouvez utiliser la commande gcloud suivante pour interroger les journaux du port série (l'autorisation requise est compute.instances.getSerialPortOutput) :

gcloud compute instances get-serial-port-output <instance-name>

Gestionnaire de configuration du système d'exploitation

Vous pouvez utiliser le service de gestion de la configuration du système d'exploitation pour déployer, interroger et maintenir des configurations cohérentes (état souhaité et logiciels) pour votre instance de machine virtuelle (VM). Sur Compute Engine, vous devez utiliser les politiques invitées pour maintenir des configurations logicielles cohérentes sur une VM.

La fonction de gestion de la configuration du système d'exploitation vous permet de définir des politiques de configuration qui spécifient quels packages logiciels doivent être installés, quels services doivent être activés et quels fichiers ou configurations doivent être présents sur vos VM. Vous pouvez utiliser une approche déclarative pour gérer la configuration logicielle de vos VM, ce qui vous permet d'automatiser et de mettre à l'échelle plus facilement votre processus de gestion de la configuration.

Cela permet également de se connecter aux instances via les autorisations IAM, ce qui est très utile pour l'élévation de privilèges et le pivotement.

Pour activer os-config dans un projet entier ou dans une instance, vous devez simplement définir la clé enable-oslogin des métadonnées sur true au niveau souhaité. De plus, vous pouvez définir les métadonnées enable-oslogin-2fa sur true pour activer l'authentification à deux facteurs.

Lorsque vous l'activez lors de la création d'une instance, les clés de métadonnées seront automatiquement définies.

En savoir plus sur 2fa dans OS-config, cela s'applique uniquement si l'utilisateur est un utilisateur, s'il s'agit d'un SA (comme le SA de calcul), il ne nécessitera rien de plus.

Énumération

gcloud compute os-config patch-deployments list
gcloud compute os-config patch-deployments describe <patch-deployment>

gcloud compute os-config patch-jobs list
gcloud compute os-config patch-jobs describe <patch-job>

Images

Images personnalisées

Les images de calcul personnalisées peuvent contenir des détails sensibles ou d'autres configurations vulnérables que vous pouvez exploiter.

Lorsqu'une image est créée, vous pouvez choisir 3 types de chiffrement : en utilisant une clé gérée par Google (par défaut), une clé provenant de KMS, ou une clé brute fournie par le client.

Énumération

Vous pouvez interroger la liste des images non standard dans un projet avec la commande suivante :

gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>

Vous pouvez ensuite exporter les disques virtuels de n'importe quelle image dans plusieurs formats. La commande suivante exporterait l'image test-image au format qcow2, vous permettant de télécharger le fichier et de construire une machine virtuelle localement pour une enquête ultérieure:

gcloud compute images export --image test-image \
--export-format qcow2 --destination-uri [BUCKET]

# Execute container inside a docker
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh

Élévation de privilèges

Vérifiez la section sur l'élévation de privilèges des instances Compute.

Modèles d'instances personnalisés

Un modèle d'instance définit les propriétés de l'instance pour aider au déploiement de configurations cohérentes. Ils peuvent contenir les mêmes types de données sensibles que les métadonnées personnalisées d'une instance en cours d'exécution. Vous pouvez utiliser les commandes suivantes pour enquêter :

# List the available templates
gcloud compute instance-templates list

# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]

Il pourrait être intéressant de savoir quel disque est utilisé par les nouvelles images, mais ces modèles n'auront généralement pas d'informations sensibles.

Instantanés

Les instantanés sont des sauvegardes des disques. Notez que ce n'est pas la même chose que de cloner un disque (une autre fonctionnalité disponible). L'instantané utilisera le même chiffrement que le disque dont il est issu.

Énumération

gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>

Élévation de privilèges

Consultez la section sur l'élévation de privilèges des instances de calcul.

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge HackTricks AWS)!

Autres façons de soutenir HackTricks:

Dernière mise à jour