GCP - App Engine Enum
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.
Podstawowe informacje
Google Cloud Platform (GCP) App Engine to solidna, bezserwerowa platforma dostosowana do rozwoju i hostingu aplikacji webowych na dużą skalę. Projekt tej platformy koncentruje się na uproszczeniu procesu rozwoju i zwiększeniu zarządzalności aplikacji. Kluczowe cechy i korzyści GCP App Engine obejmują:
- Architektura bezserwerowa: App Engine automatycznie zarządza infrastrukturą, w tym provisionowaniem serwerów, konfiguracją i skalowaniem. Pozwala to programistom skupić się na pisaniu kodu bez obaw o sprzęt.
- Automatyczne skalowanie: App Engine może automatycznie skalować Twoją aplikację w odpowiedzi na ilość ruchu, który otrzymuje. Skaluje się w górę, aby obsłużyć zwiększony ruch, i skaluje się w dół, gdy ruch maleje, co pomaga optymalizować koszty i wydajność.
- Wsparcie dla języków i środowisk uruchomieniowych: Obsługuje popularne języki programowania, takie jak Java, Python, Node.js, Go, Ruby, PHP i .NET. Możesz uruchamiać swoje aplikacje w standardowym lub elastycznym środowisku. Środowisko standardowe jest bardziej restrykcyjne, ale wysoko zoptymalizowane dla konkretnych języków, podczas gdy elastyczne środowisko pozwala na większą personalizację.
- Zintegrowane usługi: App Engine integruje się z wieloma innymi usługami GCP, takimi jak Cloud SQL, Cloud Storage, Cloud Datastore i innymi. Ta integracja upraszcza architekturę aplikacji opartych na chmurze.
- Wersjonowanie i podział ruchu: Możesz łatwo wdrażać wiele wersji swojej aplikacji, a następnie dzielić ruch między nimi w celu testów A/B lub stopniowych wdrożeń.
- Wgląd w aplikacje: App Engine oferuje wbudowane usługi, takie jak logowanie, uwierzytelnianie użytkowników oraz zestaw narzędzi deweloperskich do monitorowania i zarządzania aplikacjami.
- Bezpieczeństwo: Oferuje wbudowane funkcje bezpieczeństwa, takie jak wersjonowanie aplikacji, certyfikaty SSL/TLS dla bezpiecznych połączeń oraz zarządzanie tożsamością i dostępem.
Zapora
Prosta zapora może być skonfigurowana dla instancji uruchamiających aplikacje z następującymi opcjami:
.png)
SA
Domyślne konto usługi używane przez te aplikacje to <proj-name>@appspot.gserviceaccount.com, które ma rolę Edytora w projekcie, a konta usługowe wewnątrz instancji APP Engine działają w zakresie cloud-platform (wśród innych).
Przechowywanie
Kod źródłowy i metadane są automatycznie przechowywane w wiadrach o nazwach takich jak <proj-id>.appspot.com oraz staging.<proj-id>.appspot.com i <country>.<proj-id>.appspot.com
Każdy plik aplikacji jest przechowywany z sha1 zawartości jako nazwą pliku:
.png)
Wewnątrz folderu ae z staging.<proj-id>.appspot.com, istnieje jeden folder na wersję z plikami kodu źródłowego oraz plikiem manifest.json, który opisuje komponenty aplikacji:
{"requirements.txt":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/a270eedcbe2672c841251022b7105d340129d108","sha1Sum":"a270eedc_be2672c8_41251022_b7105d34_0129d108"},"main_test.py":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/0ca32fd70c953af94d02d8a36679153881943f32","sha1Sum":"0ca32fd7_0c953af9_4d02d8a ...
Kontenery
Aplikacja internetowa będzie ostatecznie wykonywana wewnątrz kontenera, a Code Build jest używane do budowy kontenera.
URL-e i regiony
Domyślna strona internetowa będzie dostępna pod adresem URL <project-uniq-name>.appspot.com, chociaż URL starszych wersji będzie nieco inny, na przykład https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com (zauważ początkowy znacznik czasu).
Może się wydawać, że możliwe jest wdrożenie tylko 1 aplikacji silnika aplikacji na region, ale można wskazać service: <servicename> w app.yml i stworzyć nową usługę (nową aplikację webową). Format URL dla tej nowej aplikacji webowej będzie <servicename>-dot-<project-uniq-name>.appspot.com.
Enumeracja
[!OSTRZEŻENIE] Za każdym razem, gdy przesyłasz nowy kod do aplikacji, tworzona jest nowa wersja. Wszystkie wersje są przechowywane i mają nawet URL do ich dostępu. Zmiana kodu starej wersji może być świetną techniką utrzymywania.
Podobnie jak w przypadku Cloud Functions, istnieje szansa, że aplikacja będzie polegać na sekretach, które są dostępne w czasie wykonywania za pośrednictwem zmiennych środowiskowych. Zmienne te są przechowywane w pliku app.yaml, który można uzyskać w następujący sposób:
# List the apps
gcloud app services list
gcloud app services describe <app-name>
# Access via browser to the specified app
gcloud app services browse <app-name>
# Get App versions
gcloud app versions list
# Get all the info of the app and version, included specific verion URL and the env
gcloud app versions describe -s <app-name> <version-id>
# Logs
gcloud app logs tail -s <app-name>
# Instances
## This is only valid if a flexible environment is used and not a standard one
gcloud app instances list
gcloud app instances describe -s <app-name> --version <version-id> <ID>
## Connect to the instance via ssh
gcloud app instances ssh --service <app-name> --version <version-id> <ID>
# Firewalls
gcloud app firewall-rules list
gcloud app firewall-rules describe <num_fw>
# Get domains
gcloud app domain-mappings list
gcloud app domain-mappings describe <name>
# SSl certificates
gcloud app ssl-certificates list
gcloud app ssl-certificates describe <name>
Eskalacja Uprawnień
Nieużytkownik Enum
GCP - App Engine Unauthenticated Enum
Po Eksploatacji
GCP - App Engine Post Exploitation
Utrzymywanie
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

