GCP - App Engine Enum

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

Google Cloud Platform se (GCP) App Engine is ’n robuste, serverless platform wat ontwerp is vir die ontwikkeling en gasheer van webtoepassings op ’n groot skaal. Die ontwerp van hierdie platform fokus op die stroomlyn van die ontwikkelingsproses en die verbetering van die bestuurbaarheid van toepassings. Die sleutelkenmerke en voordele van GCP se App Engine sluit in:

  1. Serverless Argitektuur: App Engine hanteer outomaties die infrastruktuur, insluitend bedienerprovisionering, konfigurasie en skaalvergroting. Dit stel ontwikkelaars in staat om op die skryf van kode te fokus sonder om oor die onderliggende hardeware te bekommer.
  2. Outomatiese Skaalvergroting: App Engine kan jou toepassing outomaties skaal in reaksie op die hoeveelheid verkeer wat dit ontvang. Dit skaal op om verhoogde verkeer te hanteer en skaal af wanneer verkeer afneem, wat help om koste en prestasie te optimaliseer.
  3. Taal- en Runtime-ondersteuning: Dit ondersteun gewilde programmeertale soos Java, Python, Node.js, Go, Ruby, PHP, en .NET. Jy kan jou toepassings in ’n standaard of ’n buigsame omgewing laat loop. Die standaardomgewing is meer beperkend maar hoogs geoptimaliseer vir spesifieke tale, terwyl die buigsame omgewing meer aanpassing toelaat.
  4. Geïntegreerde Dienste: App Engine integreer met baie ander GCP-dienste, soos Cloud SQL, Cloud Storage, Cloud Datastore, en meer. Hierdie integrasie vereenvoudig die argitektuur van wolk-gebaseerde toepassings.
  5. Weergawebeheer en Verkeersplitsing: Jy kan maklik verskeie weergawes van jou toepassing ontplooi en dan verkeer tussen hulle verdeel vir A/B-toetsing of geleidelike uitrol.
  6. Toepassing Inligting: App Engine bied ingeboude dienste soos logging, gebruikersverifikasie, en ’n suite van ontwikkelaarstoerusting vir die monitering en bestuur van toepassings.
  7. Sekuriteit: Dit bied ingeboude sekuriteitskenmerke soos toepassing weergawebeheer, SSL/TLS sertifikate vir veilige verbindings, en identiteits- en toegangsbestuur.

Vuurmuur

’n Eenvoudige vuurmuur kan gekonfigureer word vir die instansies wat die Apps uitvoer met die volgende opsies:

SA

Die standaarddiensrekening wat deur hierdie Apps gebruik word, is <proj-name>@appspot.gserviceaccount.com wat ’n Editor rol oor die projek het en die SA’s binne die APP Engine instansie loop met cloud-platform omvang (onder andere).

Berging

Die bronkode en metadata word outomaties in emmers gestoor met name soos <proj-id>.appspot.com en staging.<proj-id>.appspot.com en <country>.<proj-id>.appspot.com

Elke lêer van die App word gestoor met die sha1 van die inhoud as lêernaam:

Binne die ae gids van staging.<proj-id>.appspot.com, bestaan een gids per weergawe met die bron kode lêers en manifest.json lêer wat die komponente van die App beskryf:

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

Houers

Die webtoepassing sal uiteindelik binne ’n houer uitgevoer word en Code Build word gebruik om die houer te bou.

URL’s & Streke

Die verstek webblad sal blootgestel word in die URL <project-uniq-name>.appspot.com alhoewel die URL van ouer weergawes effens anders sal wees, soos https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com (let op die aanvanklike tydstempel).

Dit mag lyk asof dit slegs moontlik is om 1 app engine webtoepassing per streek te ontplooi, maar dit is moontlik om service: <servicename> in die app.yml aan te dui en ’n nuwe diens (nuwe web) te skep. Die formaat van die URL vir hierdie nuwe web sal wees <servicename>-dot-<project-uniq-name>.appspot.com.

Enumerasie

Caution

Elke keer as jy ’n nuwe kode na die App opgelaai, word ’n nuwe weergawe geskep. Alle weergawes word gestoor en hulle het selfs ’n URL om toegang tot hulle te verkry. Dus kan die aanpassing van die kode van ’n ou weergawe ’n groot volhardingstegniek wees.

Soos met Cloud Functions, is daar ’n kans dat die toepassing op geheime staatmaak wat tydens uitvoering via omgewingsveranderlikes verkry word. Hierdie veranderlikes word in ’n app.yaml lêer gestoor wat soos volg verkry kan word:

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

Privilege Escalation

GCP - AppEngine Privesc

Unauthenticated Enum

GCP - App Engine Unauthenticated Enum

Post Exploitation

GCP - App Engine Post Exploitation

Persistensie

GCP - App Engine Persistence

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks