GCP - App Engine Enum

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Google Cloud Platform se (GCP) App Engine is 'n robuuste, serverlose platform wat geskik is vir die ontwikkeling en hospiteer 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. Serverlose Argitektuur: App Engine hanteer outomaties die infrastruktuur, insluitend bedienervoorsiening, konfigurasie en skaalvergroting. Dit stel ontwikkelaars in staat om op kodeskryf te fokus sonder om oor die onderliggende hardeware bekommerd te wees.

  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 Uitvoeringsondersteuning: Dit ondersteun gewilde programmeertaale soos Java, Python, Node.js, Go, Ruby, PHP, en .NET. Jy kan jou toepassings in 'n standaard- of 'n aanpasbare omgewing hardloop. Die standaardomgewing is meer beperkend maar hoogs geoptimaliseer vir spesifieke tale, terwyl die aanpasbare 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 op die wolk gebaseerde toepassings.

  5. Versiebeheer en Verkeersplitsing: Jy kan maklik verskeie weergawes van jou toepassing implementeer en dan verkeer tussen hulle verdeel vir A/B-toetsing of geleidelike implementering.

  6. Toepassingsinsigte: App Engine bied ingeboude dienste soos logboekhouding, gebruikeroutentifikasie, en 'n reeks ontwikkelaarhulpmiddels vir die monitering en bestuur van toepassings.

  7. Sekuriteit: Dit bied ingeboude sekuriteitskenmerke soos toepassingsversiebeheer, SSL/TLS-sertifikate vir veilige verbindinge, en identiteit- en toegangsbestuur.

Vuurmuur

'n Eenvoudige vuurmuur kan ingestel word vir die instansies wat die Toepassings hardloop met die volgende opsies:

SA

Die verstekdiensrekening wat deur hierdie Toepassings gebruik word, is <proj-naam>@appspot.gserviceaccount.com wat Redakteur-rol oor die projek het en die SAs binne die APP Engine-instansie hardloop met 'n wolk-platformomvang (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 <land>.<proj-id>.appspot.com

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

Binne die ae-vouer van staging.<proj-id>.appspot.com, bestaan een vouer per weergawe met die bronkode-lêers en manifest.json-lêer wat die komponente van die Toepassing 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 webtoep sal uiteindelik uitgevoer word binne 'n houer en Code Build word gebruik om die houer te bou.

URL's & Streke

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

Dit mag lyk asof dit slegs moontlik is om 1 app-enjin-webtoepassing per streek te ontplooi, maar dit is moontlik om diens: <diensnaam> in die app.yml aan te dui en 'n nuwe diens (‘n nuwe web) te skep. Die formaat van die URL vir hierdie nuwe web sal wees <diensnaam>-dot-<projek-unieke-naam>.appspot.com.

Enumerasie

Elke keer as jy nuwe kode na die Toep laai, word 'n nuwe weergawe geskep. Alle weergawes word gestoor en hulle het selfs 'n URL om hulle te bereik. Dus kan die wysiging van die kode van 'n ou weergawe 'n groot volhardingstegniek wees.

Net soos met Wolksfunksies, is daar 'n kans dat die aansoek sal staatmaak op geheime wat tydens uitvoertyd via omgewingsveranderlikes benader word. Hierdie veranderlikes word gestoor in 'n app.yaml lêer wat soos volg benader 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>

Voorregverhoging

pageGCP - AppEngine Privesc

Ongeverifieerde Enum

pageGCP - App Engine Unauthenticated Enum

Na-uitbuiting

pageGCP - App Engine Post Exploitation

Volharding

pageGCP - App Engine Persistence
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated