# GCP - Enumération du Cloud Scheduler

{{#include ../../../banners/hacktricks-training.md}}

## Informations de base

Google Cloud Scheduler est un **service de cron job** entièrement géré qui vous permet d'exécuter des tâches arbitraires—comme des tâches par lots, des tâches de big data, des opérations d'infrastructure cloud—à des moments, dates ou intervalles fixes. Il est intégré aux services Google Cloud, offrant un moyen d'**automatiser diverses tâches comme des mises à jour ou un traitement par lots selon un calendrier régulier**.

Bien que cela semble incroyable d'un point de vue offensif, ce n'est en réalité pas si intéressant car le service ne permet que de planifier certaines actions simples à un moment donné et non d'exécuter du code arbitraire.

Au moment de la rédaction, voici les actions que ce service permet de planifier :

<figure><img src="../../../images/image (347).png" alt="" width="563"><figcaption></figcaption></figure>

- **HTTP** : Envoyer une requête HTTP en définissant les en-têtes et le corps de la requête.
- **Pub/Sub** : Envoyer un message dans un sujet spécifique.
- **App Engine HTTP** : Envoyer une requête HTTP à une application construite dans App Engine.
- **Workflows** : Appeler un Workflow GCP.

## Comptes de service

Un compte de service n'est pas toujours requis par chaque planificateur. Les types **Pub/Sub** et **App Engine HTTP** ne nécessitent aucun compte de service. Le **Workflow** nécessite un compte de service, mais il invoquera simplement le workflow.\
Enfin, le type HTTP régulier ne nécessite pas de compte de service, mais il est possible d'indiquer qu'un certain type d'authentification est requis par le workflow et d'ajouter soit un **jeton OAuth soit un jeton OIDC à la requête** HTTP envoyée.

> [!CAUTION]
> Par conséquent, il est possible de voler le **jeton OIDC** et d'abuser du **jeton OAuth** des comptes de service **en abusant du type HTTP**. Plus d'informations à ce sujet dans la page d'escalade de privilèges.

Notez qu'il est possible de limiter la portée du jeton OAuth envoyé, cependant, par défaut, il sera `cloud-platform`.

## Énumération
```bash
# Get schedulers in a location
gcloud scheduler jobs list --location us-central1

# Get information of an specific scheduler
gcloud scheduler jobs describe --location us-central1 <scheduler-name>
```
## Escalade de privilèges

{{#ref}}
../gcp-privilege-escalation/gcp-cloudscheduler-privesc.md
{{#endref}}

{{#include ../../../banners/hacktricks-training.md}}
