GCP - Enum funkcji chmurowych
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Funkcje chmurowe
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ć.
Przechowywanie
Kod Funkcji Chmurowych 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 Funkcji Chmurowych.
Kod jest przechowywany w bucketach jak jeden z poniższych:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zipgcf-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
Warning
Każdy użytkownik z uprawnieniami do odczytu bucketu przechowującego Funkcję Chmurową może odczytać wykonywany kod.
Rejestr artefaktów
Jeśli funkcja chmurowa jest skonfigurowana tak, że wykonywany kontener Docker jest przechowywany w repozytorium Rejestru Artefaktów w projekcie, każdy z dostępem do odczytu repozytorium będzie mógł pobrać obraz i sprawdzić kod źródłowy. Więcej informacji znajdziesz w:
SA
Jeśli nie określono inaczej, domyślnie do Funkcji Chmurowej będzie przypisane Domyślne Konto Usługi App Engine z uprawnieniami Edytora w projekcie.
Wyzwalacze, URL i uwierzytelnianie
Gdy Funkcja Chmurowa jest tworzona, 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ć:
.png)
Wewnątrz Funkcji Chmurowej
Kod jest pobierany wewnątrz folderu /workspace z tymi samymi nazwami plików, co pliki w Funkcji Chmurowej i jest wykonywany z użytkownikiem www-data.
Dysk nie jest montowany jako tylko do odczytu.
Enumeracja
# List functions
gcloud functions list
gcloud functions describe <func_name> # Check triggers to see how is this function invoked
gcloud functions get-iam-policy <func_name>
# Get logs of previous runs. By default, limits to 10 lines
gcloud functions logs read <func_name> --limit [NUMBER]
# Call a function
curl https://<region>-<project>.cloudfunctions.net/<func_name>
gcloud functions call <func_name> --data='{"message": "Hello World!"}'
# If you know the name of projects you could try to BF cloud functions names
# Get events that could be used to trigger a cloud function
gcloud functions event-types list
# Access function with authentication
curl -X POST https://<region>-<project>.cloudfunctions.net/<func_name> \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{}'
Eskalacja Uprawnień
Na poniższej stronie możesz sprawdzić, jak nadużywać uprawnień funkcji chmurowych, aby eskalować uprawnienia:
Nieautoryzowany Dostęp
GCP - Cloud Functions Unauthenticated Enum
Po Eksploatacji
GCP - Cloud Functions Post Exploitation
Utrzymywanie
GCP - Cloud Functions Persistence
Odniesienia
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

