GCP - App Engine Enum

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Informaci贸n B谩sica

Google Cloud Platform鈥檚 (GCP) App Engine es una plataforma robusta y sin servidor dise帽ada para el desarrollo y alojamiento de aplicaciones web a gran escala. El dise帽o de esta plataforma se centra en simplificar el proceso de desarrollo y mejorar la gestionabilidad de las aplicaciones. Las caracter铆sticas y beneficios clave de GCP鈥檚 App Engine incluyen:

  1. Arquitectura Sin Servidor: App Engine maneja autom谩ticamente la infraestructura, incluyendo la provisi贸n de servidores, configuraci贸n y escalado. Esto permite a los desarrolladores centrarse en escribir c贸digo sin preocuparse por el hardware subyacente.
  2. Escalado Autom谩tico: App Engine puede escalar autom谩ticamente su aplicaci贸n en respuesta a la cantidad de tr谩fico que recibe. Escala hacia arriba para manejar el tr谩fico incrementado y escala hacia abajo cuando el tr谩fico disminuye, ayudando a optimizar costos y rendimiento.
  3. Soporte de Lenguaje y Runtime: Soporta lenguajes de programaci贸n populares como Java, Python, Node.js, Go, Ruby, PHP y .NET. Puede ejecutar sus aplicaciones en un entorno est谩ndar o flexible. El entorno est谩ndar es m谩s restrictivo pero altamente optimizado para lenguajes espec铆ficos, mientras que el entorno flexible permite m谩s personalizaci贸n.
  4. Servicios Integrados: App Engine se integra con muchos otros servicios de GCP, como Cloud SQL, Cloud Storage, Cloud Datastore y m谩s. Esta integraci贸n simplifica la arquitectura de aplicaciones basadas en la nube.
  5. Versionado y Divisi贸n de Tr谩fico: Puede desplegar f谩cilmente m煤ltiples versiones de su aplicaci贸n y luego dividir el tr谩fico entre ellas para pruebas A/B o implementaciones graduales.
  6. Perspectivas de Aplicaci贸n: App Engine proporciona servicios integrados como registro, autenticaci贸n de usuarios y un conjunto de herramientas para desarrolladores para monitorear y gestionar aplicaciones.
  7. Seguridad: Ofrece caracter铆sticas de seguridad integradas como versionado de aplicaciones, certificados SSL/TLS para conexiones seguras y gesti贸n de identidad y acceso.

Firewall

Un simple firewall puede ser configurado para las instancias que ejecutan las Apps con las siguientes opciones:

SA

La cuenta de servicio predeterminada utilizada por estas Apps es <proj-name>@appspot.gserviceaccount.com que tiene el rol de Editor sobre el proyecto y las SAs dentro de la instancia de APP Engine se ejecutan con el alcance de cloud-platform (entre otros).

Almacenamiento

El c贸digo fuente y los metadatos se almacenan autom谩ticamente en buckets con nombres como <proj-id>.appspot.com y staging.<proj-id>.appspot.com y <country>.<proj-id>.appspot.com

Cada archivo de la App se almacena con el sha1 del contenido como nombre de archivo:

Dentro de la carpeta ae de staging.<proj-id>.appspot.com, existe una carpeta por versi贸n con los archivos de c贸digo fuente y el archivo manifest.json que describe los componentes de la App:

{"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 ...

Contenedores

La aplicaci贸n web se ejecutar谩 dentro de un contenedor y Code Build se utiliza para construir el contenedor.

URLs y Regiones

La p谩gina web predeterminada se expondr谩 en la URL <project-uniq-name>.appspot.com, aunque la URL de versiones anteriores ser谩 ligeramente diferente, como https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com (note la marca de tiempo inicial).

Puede parecer que solo es posible desplegar 1 aplicaci贸n web de app engine por regi贸n, pero es posible indicar service: <servicename> en el app.yml y crear un nuevo servicio (una nueva web). El formato de la URL para esta nueva web ser谩 <servicename>-dot-<project-uniq-name>.appspot.com.

Enumeraci贸n

Caution

Cada vez que subes un nuevo c贸digo a la App, se crea una nueva versi贸n. Todas las versiones se almacenan y incluso tienen una URL para acceder a ellas. Por lo tanto, modificar el c贸digo de una versi贸n antigua podr铆a ser una gran t茅cnica de persistencia.

Al igual que con Cloud Functions, hay una posibilidad de que la aplicaci贸n dependa de secretos que se acceden en tiempo de ejecuci贸n a trav茅s de variables de entorno. Estas variables se almacenan en un archivo app.yaml que se puede acceder de la siguiente manera:

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

Escalaci贸n de Privilegios

GCP - AppEngine Privesc

Enumeraci贸n No Autenticada

GCP - App Engine Unauthenticated Enum

Post Explotaci贸n

GCP - App Engine Post Exploitation

Persistencia

GCP - App Engine Persistence

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks