GCP - AppEngine Privesc

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

Ander maniere om HackTricks te ondersteun:

App Engine

Vir meer inligting oor App Engine, kyk:

pageGCP - App Engine Enum

appengine.applications.get, appengine.instances.get, appengine.instances.list, appengine.operations.get, appengine.operations.list, appengine.services.get, appengine.services.list, appengine.versions.create, appengine.versions.get, appengine.versions.list, cloudbuild.builds.get,iam.serviceAccounts.actAs, resourcemanager.projects.get, storage.objects.create, storage.objects.list

Dit is die nodige toestemmings om 'n App te ontplooi met die gcloud-opdraglyn. Dalk kan die get en list een vermy word.

Jy kan Python-kodevoorbeelde vind op https://github.com/GoogleCloudPlatform/python-docs-samples/tree/main/appengine

Standaard sal die naam van die App-diens default wees, en daar kan slegs 1 instansie met dieselfde naam wees. Om dit te verander en 'n tweede App te skep, verander die waarde van die hoof sleutel na iets soos service: my-second-app in app.yaml.

cd python-docs-samples/appengine/flexible/hello_world
gcloud app deploy #Upload and start application inside the folder

Gee dit minstens 10-15 minute, as dit nie werk nie, roep implementeer nog 'n paar keer en wag 'n paar minute.

Dit is moontlik om die Diensrekening aan te dui om te gebruik, maar standaard word die App Engine standaard DR gebruik.

Die URL van die aansoek is iets soos https://<proj-naam>.oa.r.appspot.com/ of https://<diens_naam>-dot-<proj-naam>.oa.r.appspot.com

appengine.instances.enableDebug, appengine.instances.get, appengine.instances.list, appengine.operations.get, appengine.services.get, appengine.services.list, appengine.versions.get, appengine.versions.list, compute.projects.get

Met hierdie toestemmings is dit moontlik om in te teken via ssh in App Engine-instanies van die tipe buigsame (nie standaard nie). Sommige van die lys en kry toestemmings mag nie regtig nodig wees nie.

gcloud app instances ssh --service <app-name> --version <version-id> <ID>

appengine.applications.update, appengine.operations.get

Ek dink dit verander net die agtergrond SA wat Google sal gebruik om die aansoeke op te stel, so ek dink nie jy kan dit misbruik om die diensrekening te steel.

```bash gcloud app update --service-account= ``` ### `appengine.versions.getFileContents`, `appengine.versions.update`

Nie seker hoe om hierdie regte te gebruik of as hulle nuttig is (let op dat wanneer jy die kode verander 'n nuwe weergawe geskep word, so ek weet nie of jy net die kode kan opdateer of die IAM rol van een nie, maar ek vermoed jy behoort te kan, dalk die kode binne die emmer verander??).

Skryftoegang oor die emmers

Selfs met skryftoegang oor die emmers waar die bronkode geleë is WAS DIT NIE moontlik om willekeurige kode uit te voer deur die bronkode en die manifest.json te wysig nie. Miskien as jy die emmer monitor en die oomblik waar 'n nuwe weergawe geskep word en die bronkode en manifest opgelaai word, opspoor, kan dit moontlik wees om hulle te verander sodat die nuwe weergawe die agterdeur-eksemplare gebruik??

Dit lyk ook of houerlae in die emmer gestoor word, dalk om daardie te verander?

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

Ander maniere om HackTricks te ondersteun:

Last updated