# GCP - Cloud Scheduler Enum

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

## Informazioni di base

Google Cloud Scheduler è un **servizio cron job** completamente gestito che consente di eseguire lavori arbitrari—come lavori batch, big data, operazioni di infrastruttura cloud— a orari, date o intervalli fissi. È integrato con i servizi Google Cloud, fornendo un modo per **automatizzare varie attività come aggiornamenti o elaborazione batch su un programma regolare**.

Sebbene da un punto di vista offensivo questo sembri fantastico, in realtà non è così interessante perché il servizio consente solo di pianificare alcune azioni semplici a un certo orario e non di eseguire codice arbitrario.

Al momento della scrittura, queste sono le azioni che questo servizio consente di pianificare:

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

- **HTTP**: Invia una richiesta HTTP definendo le intestazioni e il corpo della richiesta.
- **Pub/Sub**: Invia un messaggio in un argomento specifico.
- **App Engine HTTP**: Invia una richiesta HTTP a un'app costruita in App Engine.
- **Workflows**: Chiama un Workflow GCP.

## Account di servizio

Un account di servizio non è sempre richiesto da ogni scheduler. I tipi **Pub/Sub** e **App Engine HTTP** non richiedono alcun account di servizio. Il **Workflow** richiede un account di servizio, ma invocherà solo il workflow.\
Infine, il tipo HTTP regolare non richiede un account di servizio, ma è possibile indicare che è necessaria una qualche forma di autenticazione da parte del workflow e aggiungere un **token OAuth o un token OIDC alla richiesta** HTTP inviata.

> [!CAUTION]
> Pertanto, è possibile rubare il **token OIDC** e abusare del **token OAuth** dagli account di servizio **abusando del tipo HTTP**. Maggiori informazioni su questo nella pagina di escalation dei privilegi.

Nota che è possibile limitare l'ambito del token OAuth inviato, tuttavia, per impostazione predefinita, sarà `cloud-platform`.

## Enumerazione
```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>
```
## Escalation dei privilegi

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

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