GCP - App Engine Enum
Reading time: 6 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Google Cloud Platform's (GCP) App Engine je robustan, serverless platforma prilagođena razvoju i hostovanju web aplikacija na velikoj skali. Dizajn ove platforme fokusira se na pojednostavljenje procesa razvoja i poboljšanje upravljivosti aplikacija. Ključne karakteristike i prednosti GCP-ovog App Engine-a uključuju:
- Serverless arhitektura: App Engine automatski upravlja infrastrukturom, uključujući obezbeđivanje servera, konfiguraciju i skaliranje. Ovo omogućava programerima da se fokusiraju na pisanje koda bez brige o osnovnom hardveru.
- Automatsko skaliranje: App Engine može automatski skalirati vašu aplikaciju u zavisnosti od količine saobraćaja koji prima. Skalira se naviše da bi se nosio sa povećanim saobraćajem i skalira se naniže kada saobraćaj opada, pomažući u optimizaciji troškova i performansi.
- Podrška za jezike i runtime: Podržava popularne programske jezike kao što su Java, Python, Node.js, Go, Ruby, PHP i .NET. Možete pokrenuti svoje aplikacije u standardnom ili fleksibilnom okruženju. Standardno okruženje je restriktivnije, ali visoko optimizovano za specifične jezike, dok fleksibilno okruženje omogućava više prilagođavanja.
- Integrisane usluge: App Engine se integriše sa mnogim drugim GCP uslugama, kao što su Cloud SQL, Cloud Storage, Cloud Datastore i druge. Ova integracija pojednostavljuje arhitekturu aplikacija zasnovanih na oblaku.
- Verzionisanje i deljenje saobraćaja: Možete lako implementirati više verzija svoje aplikacije i zatim deliti saobraćaj među njima za A/B testiranje ili postepeno uvođenje.
- Uvidi u aplikaciju: App Engine pruža ugrađene usluge kao što su logovanje, autentifikacija korisnika i paket alata za programere za praćenje i upravljanje aplikacijama.
- Bezbednost: Nudi ugrađene bezbednosne karakteristike kao što su verzionisanje aplikacija, SSL/TLS sertifikati za sigurne veze i upravljanje identitetom i pristupom.
Firewall
Jednostavan firewall može biti konfigurisan za instance koje pokreću aplikacije sa sledećim opcijama:
.png)
SA
Podrazumevani servisni nalog koji koriste ove aplikacije je <proj-name>@appspot.gserviceaccount.com
koji ima Editor ulogu nad projektom, a SA unutar APP Engine instance radi sa cloud-platform opsegom (među ostalima).
Storage
Izvorni kod i metapodaci se automatski čuvaju u bucket-ima sa imenima kao što su <proj-id>.appspot.com
i staging.<proj-id>.appspot.com
i <country>.<proj-id>.appspot.com
Svaka datoteka aplikacije se čuva sa sha1 sadržaja kao imenom datoteke:
.png)
Unutar ae
foldera sa staging.<proj-id>.appspot.com
, postoji jedan folder po verziji sa izvorno kodnim datotekama i manifest.json
datotekom koja opisuje komponente aplikacije:
{"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 ...
Kontejneri
Web aplikacija će na kraju biti izvršena unutar kontejnera i Code Build se koristi za izgradnju kontejnera.
URL-ovi i regioni
Podrazumevana web stranica će biti izložena na URL-u <project-uniq-name>.appspot.com
, iako će URL starijih verzija biti malo drugačiji, kao https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com
(obratite pažnju na početni vremenski pečat).
Može izgledati kao da je moguće implementirati samo 1 app engine web aplikaciju po regionu, ali je moguće naznačiti service: <servicename>
u app.yml
i kreirati novu uslugu (novi web). Format URL-a za ovu novu web stranicu biće <servicename>-dot-<project-uniq-name>.appspot.com
.
Enumeracija
caution
Svaki put kada otpremite novi kod na aplikaciju, stvara se nova verzija. Sve verzije se čuvaju i čak imaju URL za pristup njima. Tako da modifikacija koda stare verzije može biti sjajna tehnika za postizanje trajnosti.
Kao i sa Cloud Functions, postoji šansa da aplikacija zavisi od tajni koje se pristupaju u vreme izvršavanja putem promenljivih okruženja. Ove promenljive se čuvaju u app.yaml
datoteci koja se može pristupiti na sledeći način:
# 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>
Eskalacija privilegija
Neautentifikovana enumeracija
GCP - App Engine Unauthenticated Enum
Post eksploatacija
GCP - App Engine Post Exploitation
Postojanost
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.