GCP - App Engine Enum

Support HackTricks

Taarifa za Msingi

Google Cloud Platform's (GCP) App Engine ni jukwaa thabiti, lisilo na seva lililoundwa kwa ajili ya maendeleo na upangishaji wa programu za wavuti kwa kiwango kikubwa. Ubunifu wa jukwaa hili unalenga kurahisisha mchakato wa maendeleo na kuboresha usimamizi wa programu. Vipengele muhimu na faida za App Engine ya GCP ni pamoja na:

  1. Serverless Architecture: App Engine inashughulikia kiotomatiki miundombinu, ikiwa ni pamoja na utoaji wa seva, usanidi, na upanuzi. Hii inaruhusu watengenezaji kuzingatia kuandika msimbo bila kuwa na wasiwasi kuhusu vifaa vya msingi.

  2. Automatic Scaling: App Engine inaweza kupanua kiotomatiki programu yako kulingana na kiasi cha trafiki inachopokea. Inapanuka kushughulikia trafiki iliyoongezeka na kupungua wakati trafiki inapopungua, kusaidia kuboresha gharama na utendaji.

  3. Language and Runtime Support: Inasaidia lugha maarufu za programu kama Java, Python, Node.js, Go, Ruby, PHP, na .NET. Unaweza kuendesha programu zako katika mazingira ya kawaida au ya kubadilika. Mazingira ya kawaida ni ya kizuizi zaidi lakini yameboreshwa sana kwa lugha maalum, wakati mazingira ya kubadilika yanaruhusu ubinafsishaji zaidi.

  4. Integrated Services: App Engine inaunganishwa na huduma nyingi za GCP, kama Cloud SQL, Cloud Storage, Cloud Datastore, na zaidi. Muunganisho huu unarahisisha usanifu wa programu za msingi wa wingu.

  5. Versioning and Traffic Splitting: Unaweza kupeleka kwa urahisi matoleo mengi ya programu yako na kisha kugawanya trafiki kati yao kwa ajili ya majaribio ya A/B au utoaji wa taratibu.

  6. Application Insights: App Engine inatoa huduma zilizojengwa ndani kama vile kuingia, uthibitishaji wa watumiaji, na seti ya zana za watengenezaji kwa ajili ya ufuatiliaji na usimamizi wa programu.

  7. Security: Inatoa vipengele vya usalama vilivyojengwa ndani kama vile utoaji wa matoleo ya programu, vyeti vya SSL/TLS kwa miunganisho salama, na usimamizi wa utambulisho na ufikiaji.

Firewall

Firewall rahisi inaweza kusanidiwa kwa ajili ya matukio yanayoendesha Programu na chaguzi zifuatazo:

SA

Akaunti ya huduma ya msingi inayotumiwa na Programu hizi ni <proj-name>@appspot.gserviceaccount.com ambayo ina jukumu la Editor juu ya mradi na SAs ndani ya APP Engine instance inaendesha na wigo wa cloud-platform (miongoni mwa mengine).

Storage

Msimbo wa chanzo na metadata unahifadhiwa kiotomatiki kwenye ndoo zenye majina kama <proj-id>.appspot.com na staging.<proj-id>.appspot.com na <country>.<proj-id>.appspot.com

Kila faili ya Programu inahifadhiwa na sha1 ya maudhui kama jina la faili:

Ndani ya ae folda kutoka staging.<proj-id>.appspot.com, kuna folda moja kwa kila toleo na faili za msimbo wa chanzo na faili ya manifest.json ambayo inaelezea vipengele vya Programu:

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

Containers

Programu ya wavuti hatimaye itatekelezwa ndani ya container na Code Build inatumika kujenga container hiyo.

URLs & Regions

Ukurasa wa wavuti wa default utaonyeshwa katika URL <project-uniq-name>.appspot.com ingawa URL ya matoleo ya zamani itakuwa tofauti kidogo, kama https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com (kumbuka timestamp ya awali).

Inaweza kuonekana kama inawezekana tu kupeleka programu moja ya app engine kwa kila region, lakini inawezekana kuonyesha service: <servicename> katika app.yml na kuunda huduma mpya (wavuti mpya). Muundo wa URL kwa wavuti hii mpya utakuwa <servicename>-dot-<project-uniq-name>.appspot.com.

Enumeration

Kila wakati unapopakia msimbo mpya kwenye App, toleo jipya linaundwa. Matoleo yote yanahifadhiwa na yana hata URL ya kuyafikia. Kwa hivyo kubadilisha msimbo wa toleo la zamani inaweza kuwa mbinu nzuri ya kudumu.

Kama ilivyo kwa Cloud Functions, kuna nafasi kwamba programu itategemea siri ambazo zinapatikana wakati wa utekelezaji kupitia environment variables. Vigezo hivi vinahifadhiwa katika faili ya app.yaml ambayo inaweza kupatikana kama ifuatavyo:

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

Kupandisha Haki

GCP - AppEngine Privesc

Enum Bila Uthibitisho

GCP - App Engine Unauthenticated Enum

Baada ya Udukuzi

GCP - App Engine Post Exploitation

Uendelevu

GCP - App Engine Persistence
Support HackTricks

Last updated