GCP - Cloud Run Enum
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)
Cloud Run est une plateforme de calcul gérée sans serveur qui vous permet de faire fonctionner 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é sur le code source qui construit le conteneur pour vous.
Google a conçu Cloud Run pour bien fonctionner avec d'autres services sur Google Cloud, afin que vous puissiez créer des applications complètes.
Sur Cloud Run, votre code peut soit s'exécuter en continu en tant que service, soit en tant que travail. Les services et les travaux 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.
Travaux Cloud Run. Utilisés pour exécuter du code qui effectue un travail (un travail) et se termine lorsque le travail est terminé.
Google Cloud Run est une autre offre sans serveur où vous pouvez également rechercher des variables d'environnement. Cloud Run crée un petit serveur web, fonctionnant par défaut sur le port 8080 à l'intérieur du conteneur, qui attend une requête HTTP GET. Lorsque la requête est reçue, un travail est exécuté et le journal du travail est renvoyé via une réponse HTTP.
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 permettre à tous 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 le compte par défaut de Compute Engine qui a un accès Éditeur sur le projet et a le scope cloud-platform
.
Il est possible de définir des variables d'environnement en texte clair pour l'exécution, et même de monter des secrets cloud ou ajouter des secrets cloud aux variables d'environnement.
Il est également possible d'ajouter des connexions avec Cloud SQL et monter un système de fichiers.
Les URLs des services déployés sont similaires à https://<svc-name>-<random>.a.run.app
Un service Run peut avoir plus d'une version ou révision, et diviser le trafic entre plusieurs révisions.
Les jobs Cloud Run sont mieux adaptés pour des conteneurs qui s'exécutent jusqu'à leur achèvement et ne servent pas de requêtes. Les jobs n'ont pas la capacité de servir des requêtes ou d'écouter sur un port. Cela signifie qu'à la différence des services Cloud Run, les jobs ne doivent pas inclure un serveur web. Au lieu de cela, les conteneurs de jobs doivent se terminer lorsqu'ils ont fini.
Dans la page suivante, vous pouvez vérifier comment abuser des permissions de cloud run pour élever les privilèges :
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)