GCP - Cloud Run Enum

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Cloud Run

Cloud Run to zarządzana platforma obliczeniowa bezserwerowa, która pozwala uruchamiać kontenery bezpośrednio na skalowalnej infrastrukturze Google.

Możesz uruchamiać swój kontener lub Jeśli korzystasz z Go, Node.js, Python, Java, .NET Core lub Ruby, możesz skorzystać z opcji wdrożenia opartego na źródle, która buduje kontener za Ciebie.

Google zbudował Cloud Run, aby dobrze współpracował z innymi usługami w Google Cloud, dzięki czemu możesz tworzyć pełnowymiarowe aplikacje.

Usługi i zadania

Na Cloud Run, Twój kod może działać ciągle jako usługa lub jako zadanie. Zarówno usługi, jak i zadania działają w tym samym środowisku i mogą korzystać z tych samych integracji z innymi usługami w Google Cloud.

  • Usługi Cloud Run. Służą do uruchamiania kodu reagującego na żądania sieciowe lub zdarzenia.

  • Zadania Cloud Run. Służą do uruchamiania kodu wykonującego pracę (zadanie) i kończą się po zakończeniu pracy.

Usługa Cloud Run

Google Cloud Run to kolejna oferta bezserwerowa, gdzie można szukać zmiennych środowiskowych. Cloud Run tworzy mały serwer WWW, domyślnie działający na porcie 8080 wewnątrz kontenera, który czeka na żądanie HTTP GET. Po otrzymaniu żądania, uruchamiane jest zadanie, a dziennik zadania jest wyprowadzany za pomocą odpowiedzi HTTP.

Istotne szczegóły

  • Domyślnie dostęp do serwera WWW jest publiczny, ale można go również ograniczyć do ruchu wewnętrznego (VPC...) Ponadto uwierzytelnienie w celu skontaktowania się z serwerem WWW może być zezwala na wszystkich lub wymagać uwierzytelnienia za pomocą IAM.

  • Domyślnie szyfrowanie korzysta z zarządzanego przez Google klucza, ale można również wybrać CMEK (Klucz Szyfrowania Zarządzany przez Klienta) z KMS.

  • Domyślnie używane jest konto usługi to domyślne konto Compute Engine, które ma dostęp Edytora do projektu i ma zakres cloud-platform.

  • Można zdefiniować zmienne środowiskowe w postaci tekstu jawnego dla wykonania, a nawet zamontować tajne klucze chmury lub dodać tajne klucze chmury do zmiennych środowiskowych.

  • Możliwe jest również dodanie połączeń z Cloud SQL i zamontowanie systemu plików.

  • Adresy URL wdrożonych usług są podobne do https://<nazwa-usługi>-<losowy>.a.run.app

  • Usługa Run może mieć więcej niż 1 wersję lub rewizję, i rozdzielać ruch między kilkoma rewizjami.

Wyliczenie

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

Zadania Cloud Run

Zadania Cloud Run są lepszym rozwiązaniem dla kontenerów, które działają do zakończenia i nie obsługują żądań. Zadania nie mają możliwości obsługi żądań ani nasłuchiwania na porcie. Oznacza to, że w przeciwieństwie do usług Cloud Run, zadania nie powinny zawierać serwera sieciowego. Zamiast tego, kontenery z zadaniami powinny zakończyć działanie po zakończeniu zadania.

Wyliczanie

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>

Eskalacja uprawnień

Na następnej stronie możesz sprawdzić, jak nadużyć uprawnienia chmury Run do eskalacji uprawnień:

pageGCP - Run Privesc

Nieuwierzytelniony dostęp

pageGCP - Cloud Run Unauthenticated Enum

Po wykorzystaniu

pageGCP - Cloud Run Post Exploitation

Trwałość

pageGCP - Cloud Run Persistence

Odnośniki

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated