GCP - Cloud Run Enum

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Cloud Run

Cloud Run est une plateforme de calcul gérée sans serveur qui vous permet d'exécuter des conteneurs directement sur l'infrastructure évolutive de Google.

Vous pouvez exécuter votre conteneur ou Si vous utilisez Go, Node.js, Python, Java, .NET Core ou Ruby, vous pouvez utiliser l'option de déploiement basée sur la source qui construit le conteneur pour vous.

Google a conçu Cloud Run pour fonctionner en synergie avec d'autres services sur Google Cloud, vous permettant de construire des applications complètes.

Services et tâches

Sur Cloud Run, votre code peut s'exécuter en continu en tant que service ou en tant que tâche. Les services et les tâches s'exécutent dans le même environnement et peuvent utiliser les mêmes intégrations avec d'autres services sur Google Cloud.

  • Services Cloud Run. Utilisés pour exécuter du code qui répond à des requêtes web ou des événements.

  • Tâches Cloud Run. Utilisées pour exécuter du code qui effectue un travail (une tâche) et se termine lorsque le travail est terminé.

Service Cloud Run

Google Cloud Run est une autre offre sans serveur où vous pouvez rechercher des variables d'environnement également. Cloud Run crée un petit serveur web, fonctionnant sur le port 8080 à l'intérieur du conteneur par défaut, qui attend une requête HTTP. Lorsque la requête est reçue, une tâche est exécutée et le journal de la tâche est renvoyé via une réponse HTTP.

Détails pertinents

  • Par défaut, l'accès au serveur web est public, mais il peut également être limité au trafic interne (VPC...) De plus, l'authentification pour contacter le serveur web peut être autoriser tout ou exiger une authentification via IAM.

  • Par défaut, le chiffrement utilise une clé gérée par Google, mais une CMEK (Customer Managed Encryption Key) de KMS peut également être choisie.

  • Par défaut, le compte de service utilisé est celui par défaut de Compute Engine qui a un accès Éditeur sur le projet et a la portée cloud-platform.

  • Il est possible de définir des variables d'environnement en clair pour l'exécution, voire de monter des secrets cloud ou d'ajouter des secrets cloud aux variables d'environnement.

  • Il est également possible d'ajouter des connexions avec Cloud SQL et de monter un système de fichiers.

  • Les URL des services déployés sont similaires à https://<nom-svc>-<aléatoire>.a.run.app

  • Un service Run peut avoir plus d'une version ou révision, et répartir le trafic entre plusieurs révisions.

Énumération

# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke

# Get info of a service
gcloud run services describe --region <region> <svc-name>

# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json

# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>

# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>

# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>

# Attempt to trigger a job unauthenticated
curl <url>

# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>

Travaux Cloud Run

Les travaux Cloud Run sont plus adaptés aux conteneurs qui s'exécutent jusqu'à leur achèvement et ne traitent pas les requêtes. Les travaux n'ont pas la capacité de traiter des requêtes ou d'écouter sur un port. Cela signifie que contrairement aux services Cloud Run, les travaux ne doivent pas inclure de serveur web. Au lieu de cela, les conteneurs de travaux doivent se terminer une fois leur tâche accomplie.

Énumération

gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>

Élévation de privilèges

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

pageGCP - Run Privesc

Accès non authentifié

pageGCP - Cloud Run Unauthenticated Enum

Post-exploitation

pageGCP - Cloud Run Post Exploitation

Persistance

pageGCP - Cloud Run Persistence

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks:

Dernière mise à jour