GCP - App Engine Enum
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Informations de base
La plateforme App Engine de Google Cloud Platform (GCP) est une plateforme robuste et sans serveur conçue pour le dĂ©veloppement et lâhĂ©bergement dâapplications web Ă grande Ă©chelle. La conception de cette plateforme se concentre sur lâoptimisation du processus de dĂ©veloppement et lâamĂ©lioration de la gestion des applications. Les principales caractĂ©ristiques et avantages de lâApp Engine de GCP incluent :
- Architecture sans serveur : App Engine gĂšre automatiquement lâinfrastructure, y compris la provision de serveurs, la configuration et la mise Ă lâĂ©chelle. Cela permet aux dĂ©veloppeurs de se concentrer sur lâĂ©criture de code sans se soucier du matĂ©riel sous-jacent.
- Mise Ă lâĂ©chelle automatique : App Engine peut automatiquement mettre Ă lâĂ©chelle votre application en fonction du volume de trafic quâelle reçoit. Il augmente la capacitĂ© pour gĂ©rer un trafic accru et la rĂ©duit lorsque le trafic diminue, aidant Ă optimiser les coĂ»ts et les performances.
- Support des langages et des environnements dâexĂ©cution : Il prend en charge des langages de programmation populaires tels que Java, Python, Node.js, Go, Ruby, PHP et .NET. Vous pouvez exĂ©cuter vos applications dans un environnement standard ou flexible. Lâenvironnement standard est plus restrictif mais hautement optimisĂ© pour des langages spĂ©cifiques, tandis que lâenvironnement flexible permet plus de personnalisation.
- Services intĂ©grĂ©s : App Engine sâintĂšgre Ă de nombreux autres services GCP, comme Cloud SQL, Cloud Storage, Cloud Datastore, et plus encore. Cette intĂ©gration simplifie lâarchitecture des applications basĂ©es sur le cloud.
- Versionnage et répartition du trafic : Vous pouvez facilement déployer plusieurs versions de votre application et ensuite répartir le trafic entre elles pour des tests A/B ou des déploiements progressifs.
- Insights sur lâapplication : App Engine fournit des services intĂ©grĂ©s tels que la journalisation, lâauthentification des utilisateurs et une suite dâoutils pour les dĂ©veloppeurs pour surveiller et gĂ©rer les applications.
- Sécurité : Il offre des fonctionnalités de sécurité intégrées telles que le versionnage des applications, des certificats SSL/TLS pour des connexions sécurisées, et la gestion des identités et des accÚs.
Pare-feu
Un simple pare-feu peut ĂȘtre configurĂ© pour les instances exĂ©cutant les applications avec les options suivantes :
.png)
SA
Le compte de service par dĂ©faut utilisĂ© par ces applications est <proj-name>@appspot.gserviceaccount.com qui a le rĂŽle Ăditeur sur le projet et les comptes de service Ă lâintĂ©rieur de lâinstance APP Engine fonctionnent avec le champ cloud-platform (entre autres).
Stockage
Le code source et les métadonnées sont automatiquement stockés dans des buckets avec des noms tels que <proj-id>.appspot.com et staging.<proj-id>.appspot.com et <country>.<proj-id>.appspot.com
Chaque fichier de lâapplication est stockĂ© avec le sha1 du contenu comme nom de fichier :
.png)
Dans le dossier ae de staging.<proj-id>.appspot.com, un dossier par version existe avec les fichiers de code source et le fichier manifest.json qui dĂ©crit les composants de lâapplication :
{"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 ...
Conteneurs
Lâapplication web sera finalement exĂ©cutĂ©e Ă lâintĂ©rieur dâun conteneur et Code Build est utilisĂ© pour construire le conteneur.
URLs & Régions
La page web par dĂ©faut sera exposĂ©e Ă lâURL <project-uniq-name>.appspot.com bien que lâURL des versions plus anciennes soit lĂ©gĂšrement diffĂ©rente, comme https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com (notez le timestamp initial).
Il peut sembler quâil nâest possible de dĂ©ployer quâune seule application web dâengine par rĂ©gion, mais il est possible dâindiquer service: <servicename> dans le app.yml et de crĂ©er un nouveau service (un nouveau web). Le format de lâURL pour ce nouveau web sera <servicename>-dot-<project-uniq-name>.appspot.com.
ĂnumĂ©ration
Caution
Chaque fois que vous tĂ©lĂ©chargez un nouveau code sur lâApp, une nouvelle version est créée. Toutes les versions sont stockĂ©es et elles ont mĂȘme une URL pour y accĂ©der. Donc, modifier le code dâune ancienne version pourrait ĂȘtre une grande technique de persistance.
Comme avec les Cloud Functions, il y a une chance que lâapplication dĂ©pende de secrets qui sont accessibles Ă lâexĂ©cution via des variables dâenvironnement. Ces variables sont stockĂ©es dans un fichier app.yaml qui peut ĂȘtre accessible comme suit :
# 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>
Escalade de privilĂšges
Enum non authentifié
GCP - App Engine Unauthenticated Enum
Post exploitation
GCP - App Engine Post Exploitation
Persistance
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

