GCP - Cloud Functions 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)
Google Cloud Functions są zaprojektowane do hostowania twojego kodu, który jest wykonywany w odpowiedzi na zdarzenia, bez konieczności zarządzania systemem operacyjnym hosta. Dodatkowo, te funkcje wspierają przechowywanie zmiennych środowiskowych, które kod może wykorzystać.
Kod Cloud Functions jest przechowywany w GCP Storage. Dlatego każdy, kto ma dostęp do odczytu do bucketów w GCP, będzie mógł odczytać kod Cloud Functions. Kod jest przechowywany w bucketach jak jeden z poniższych:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
gcf-v2-sources-<number>-<region>/<function-name>function-source.zip
Na przykład:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
Każdy użytkownik z uprawnieniami do odczytu do bucketu przechowującego Cloud Function mógłby odczytać wykonywany kod.
Jeśli funkcja chmurowa jest skonfigurowana tak, że wykonywany kontener Docker jest przechowywany w repozytorium Artifact Registry w projekcie, każdy z dostępem do odczytu do repozytorium będzie mógł pobrać obraz i sprawdzić kod źródłowy. Więcej informacji znajdziesz w:
GCP - Artifact Registry EnumJeśli nie określono inaczej, domyślnie do Cloud Function będzie przypisane Domyślne Konto Usługi App Engine z uprawnieniami Edytora w projekcie.
Gdy tworzona jest Cloud Function, należy określić wyzwalacz. Jednym z powszechnych jest HTTPS, co tworzy URL, w którym funkcja może być wyzwalana przez przeglądanie sieci. Inne wyzwalacze to pub/sub, Storage, Filestore...
Format URL to https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Gdy używany jest wyzwalacz HTTPS, wskazuje się również, czy wywołujący musi mieć autoryzację IAM do wywołania funkcji, czy wszyscy mogą ją po prostu wywołać:
Kod jest pobierany wewnątrz folderu /workspace
z tymi samymi nazwami plików, co pliki w Cloud Function i jest wykonywany przez użytkownika www-data
.
Dysk nie jest montowany jako tylko do odczytu.
Na następnej stronie możesz sprawdzić, jak nadużyć uprawnień funkcji chmurowych, aby eskalować uprawnienia:
GCP - Cloudfunctions PrivescUcz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)