GCP - Cloud Scheduler Enum

Support HackTricks

Podstawowe informacje

Google Cloud Scheduler to w pełni zarządzana usługa cron job, która pozwala na uruchamianie dowolnych zadań—takich jak zadania wsadowe, zadania big data, operacje infrastruktury chmurowej—w ustalonych czasach, datach lub interwałach. Jest zintegrowana z usługami Google Cloud, co zapewnia sposób na automatyzację różnych zadań, takich jak aktualizacje czy przetwarzanie wsadowe w regularnym harmonogramie.

Chociaż z ofensywnego punktu widzenia brzmi to niesamowicie, w rzeczywistości nie jest to aż tak interesujące, ponieważ usługa pozwala jedynie na zaplanowanie pewnych prostych akcji w określonym czasie, a nie na wykonywanie dowolnego kodu.

W momencie pisania tego tekstu, oto akcje, które ta usługa pozwala zaplanować:

  • HTTP: Wyślij żądanie HTTP definiując nagłówki i treść żądania.

  • Pub/Sub: Wyślij wiadomość do konkretnego tematu.

  • App Engine HTTP: Wyślij żądanie HTTP do aplikacji zbudowanej w App Engine.

  • Workflows: Wywołaj Workflow GCP.

Konta serwisowe

Konto serwisowe nie zawsze jest wymagane przez każdy harmonogram. Typy Pub/Sub i App Engine HTTP nie wymagają żadnego konta serwisowego. Typ Workflow wymaga konta serwisowego, ale po prostu wywoła workflow. Na koniec, typ HTTP nie wymaga konta serwisowego, ale możliwe jest wskazanie, że pewien rodzaj autoryzacji jest wymagany przez workflow i dodanie albo tokena OAuth, albo tokena OIDC do wysyłanego żądania HTTP.

Dlatego możliwe jest kradzież tokena OIDC i nadużycie tokena OAuth z kont serwisowych nadużywając typu HTTP. Więcej na ten temat na stronie eskalacji uprawnień.

Zauważ, że możliwe jest ograniczenie zakresu wysyłanego tokena OAuth, jednak domyślnie będzie to cloud-platform.

Enumeracja

# 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>

Eskalacja Uprawnień

GCP - Cloud Scheduler Privesc
Wsparcie dla HackTricks

Last updated