mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 11:26:11 -08:00
Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
**Pre nego što započnete pentesting** GCP okruženja, postoji nekoliko **osnovnih stvari koje treba da znate** o tome kako funkcioniše da biste razumeli šta treba da radite, kako da pronađete pogrešne konfiguracije i kako da ih iskoristite.
|
||||
**Pre nego što započnete pentesting** GCP okruženja, postoji nekoliko **osnovnih stvari koje treba da znate** o tome kako funkcioniše da bi vam pomogle da razumete šta treba da radite, kako da pronađete pogrešne konfiguracije i kako da ih iskoristite.
|
||||
|
||||
Koncepti kao što su **organizacija** hijerarhija, **dozvole** i drugi osnovni koncepti su objašnjeni u:
|
||||
|
||||
@@ -23,17 +23,17 @@ gcp-basic-information/
|
||||
|
||||
Da biste auditovali GCP okruženje, veoma je važno znati: koje **usluge se koriste**, šta je **izloženo**, ko ima **pristup** čemu, i kako su interne GCP usluge povezane sa **spoljnim uslugama**.
|
||||
|
||||
Iz perspektive Red Teama, **prvi korak za kompromitovanje GCP okruženja** je da uspete da dobijete neke **akreditive**. Ovde su neke ideje kako to učiniti:
|
||||
Sa stanovišta Red Teama, **prvi korak za kompromitovanje GCP okruženja** je da uspete da dobijete neke **akreditive**. Ovde imate nekoliko ideja kako to učiniti:
|
||||
|
||||
- **Leakovi** na github-u (ili sličnim mestima) - OSINT
|
||||
- **Društveno** inženjerstvo (Pogledajte stranicu [**Workspace Security**](../workspace-security/))
|
||||
- **Ponovna upotreba** lozinki (leakovi lozinki)
|
||||
- **Izdavanje** na github-u (ili sličnom) - OSINT
|
||||
- **Društveno** inženjerstvo (Pogledajte stranicu [**Workspace Security**](../workspace-security/index.html))
|
||||
- **Ponovna upotreba** lozinki (curenje lozinki)
|
||||
- Ranljivosti u GCP-hostovanim aplikacijama
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) sa pristupom metadata endpoint-u
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) sa pristupom metadata endpoint-u
|
||||
- **Čitanje lokalnih fajlova**
|
||||
- `/home/USERNAME/.config/gcloud/*`
|
||||
- `C:\Users\USERNAME\.config\gcloud\*`
|
||||
- 3rd party **provale**
|
||||
- 3rd parties **provaljeni**
|
||||
- **Interni** zaposleni
|
||||
|
||||
Ili kompromitovanjem **neautentifikovane usluge** koja je izložena:
|
||||
@@ -42,28 +42,28 @@ Ili kompromitovanjem **neautentifikovane usluge** koja je izložena:
|
||||
gcp-unauthenticated-enum-and-access/
|
||||
{{#endref}}
|
||||
|
||||
Ili ako radite **reviziju**, mogli biste jednostavno **tražiti akreditive** sa ovim rolama:
|
||||
Ili ako radite **reviziju**, mogli biste jednostavno da **tražite akreditive** sa ovim rolama:
|
||||
|
||||
{{#ref}}
|
||||
gcp-permissions-for-a-pentest.md
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> Nakon što ste uspeli da dobijete akreditive, treba da znate **kome ti akreditive pripadaju**, i **čemu imaju pristup**, tako da treba da izvršite neku osnovnu enumeraciju:
|
||||
> Nakon što ste uspeli da dobijete akreditive, treba da znate **čijim akreditivima pripadaju**, i **čemu imaju pristup**, tako da treba da izvršite neku osnovnu enumeraciju:
|
||||
|
||||
## Osnovna enumeracija
|
||||
|
||||
### **SSRF**
|
||||
|
||||
Za više informacija o tome kako da **enumerišete GCP metadata**, pogledajte sledeću hacktricks stranicu:
|
||||
Za više informacija o tome kako da **enumerišete GCP metadata** pogledajte sledeću hacktricks stranicu:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### Whoami
|
||||
|
||||
U GCP možete probati nekoliko opcija da pokušate da pogodite ko ste:
|
||||
U GCP-u možete probati nekoliko opcija da pokušate da pogodite ko ste:
|
||||
```bash
|
||||
#If you are inside a compromise machine
|
||||
gcloud auth list
|
||||
@@ -103,15 +103,15 @@ gcp-services/gcp-iam-and-org-policies-enum.md
|
||||
|
||||
## Services Enumeration
|
||||
|
||||
GCP ima neverovatan broj usluga, na sledećoj stranici ćete pronaći **osnovne informacije, enumeraciju** cheatsheets, kako da **izbegnete otkrivanje**, dobijete **persistence**, i druge **post-exploitation** trikove o nekima od njih:
|
||||
GCP ima neverovatan broj usluga, na sledećoj stranici ćete pronaći **osnovne informacije, cheat sheet-ove za enumeraciju**, kako da **izbegnete otkrivanje**, dobijete **persistence**, i druge **post-exploitation** trikove o nekima od njih:
|
||||
|
||||
{{#ref}}
|
||||
gcp-services/
|
||||
{{#endref}}
|
||||
|
||||
Imajte na umu da **ne** morate obaviti sav posao **ručno**, ispod u ovom postu možete pronaći **odeljak o** [**automatskim alatima**](./#automatic-tools).
|
||||
Imajte na umu da **ne** morate obavljati sav posao **ručno**, ispod u ovom postu možete pronaći **odeljak o** [**automatskim alatima**](#automatic-tools).
|
||||
|
||||
Štaviše, u ovoj fazi možda ste otkrili **više usluga izloženih neautentifikovanim korisnicima,** možda ćete moći da ih iskoristite:
|
||||
Štaviše, u ovoj fazi možda ste otkrili **više usluga izloženih neautentifikovanim korisnicima**, možda ćete moći da ih iskoristite:
|
||||
|
||||
{{#ref}}
|
||||
gcp-unauthenticated-enum-and-access/
|
||||
@@ -140,15 +140,15 @@ gcp-persistence/
|
||||
Dok enumerišete GCP usluge, možda ste pronašli neke od njih **koje izlažu elemente internetu** (VM/Containers portove, baze podataka ili usluge reda, snimke ili kante...).\
|
||||
Kao pentester/red tim, uvek biste trebali proveriti da li možete pronaći **osetljive informacije / ranjivosti** na njima jer bi vam mogle pružiti **dalji pristup AWS nalogu**.
|
||||
|
||||
U ovoj knjizi trebali biste pronaći **informacije** o tome kako pronaći **izložene GCP usluge i kako ih proveriti**. O tome kako pronaći **ranjivosti u izloženim mrežnim uslugama** preporučujem vam da **pretražujete** specifičnu **uslugu** u:
|
||||
U ovoj knjizi trebali biste pronaći **informacije** o tome kako pronaći **izložene GCP usluge i kako ih proveriti**. O tome kako pronaći **ranjivosti u izloženim mrežnim uslugama**, preporučujem vam da **pretražujete** specifičnu **uslugu** u:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/
|
||||
https://book.hacktricks.wiki/
|
||||
{{#endref}}
|
||||
|
||||
## GCP <--> Workspace Pivoting
|
||||
|
||||
**Kompromitovanje** principa u **jednoj** platformi može omogućiti napadaču da **kompromituje drugu**, proverite to u:
|
||||
**Kompromitovanje** principa na **jednoj** platformi može omogućiti napadaču da **kompromituje drugu**, proverite to u:
|
||||
|
||||
{{#ref}}
|
||||
gcp-to-workspace-pivoting/
|
||||
@@ -157,8 +157,8 @@ gcp-to-workspace-pivoting/
|
||||
## Automatic Tools
|
||||
|
||||
- U **GCloud konzoli**, na [https://console.cloud.google.com/iam-admin/asset-inventory/dashboard](https://console.cloud.google.com/iam-admin/asset-inventory/dashboard) možete videti resurse i IAM-ove koji se koriste po projektu.
|
||||
- Ovde možete videti resurse koje podržava ovaj API: [https://cloud.google.com/asset-inventory/docs/supported-asset-types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
|
||||
- Proverite **alate** koji se mogu [**koristiti u nekoliko cloudova ovde**](../pentesting-cloud-methodology.md).
|
||||
- Ovde možete videti imovinu koju podržava ovaj API: [https://cloud.google.com/asset-inventory/docs/supported-asset-types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
|
||||
- Proverite **alate** koji se mogu [**koristiti u nekoliko cloud-ova ovde**](../pentesting-cloud-methodology.md).
|
||||
- [**gcp_scanner**](https://github.com/google/gcp_scanner): Ovo je GCP skener resursa koji može pomoći da se utvrdi koji **nivo pristupa određeni kredencijali poseduju** na GCP.
|
||||
```bash
|
||||
# Install
|
||||
@@ -172,7 +172,7 @@ python3 __main__.py -o /tmp/output/ -g "$HOME/.config/gcloud"
|
||||
```
|
||||
- [**gcp_enum**](https://gitlab.com/gitlab-com/gl-security/threatmanagement/redteam/redteam-public/gcp_enum): Bash skripta za enumeraciju GCP okruženja koristeći gcloud cli i čuvanje rezultata u datoteci.
|
||||
- [**GCP-IAM-Privilege-Escalation**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation): Skripte za enumeraciju visokih IAM privilegija i za eskalaciju privilegija u GCP zloupotrebom istih (nisam mogao da pokrenem skriptu za enumeraciju).
|
||||
- [**BF My GCP Permissions**](https://github.com/carlospolop/bf_my_gcp_permissions): Skripta za bruteforce vaše dozvole.
|
||||
- [**BF My GCP Permissions**](https://github.com/carlospolop/bf_my_gcp_permissions): Skripta za bruteforce vaših dozvola.
|
||||
|
||||
## gcloud config & debug
|
||||
```bash
|
||||
@@ -189,9 +189,9 @@ gcloud auth application-default print-access-token
|
||||
# Update gcloud
|
||||
gcloud components update
|
||||
```
|
||||
### Zabeležite gcloud, gsutil... mrežu
|
||||
### Capture gcloud, gsutil... network
|
||||
|
||||
Zapamtite da možete koristiti **parametar** **`--log-http`** sa **`gcloud`** cli da **odštampate** **zahteve** koje alat izvršava. Ako ne želite da se token vrednost rediguje u logovima, koristite `gcloud config set log_http_redact_token false`
|
||||
Zapamtite da možete koristiti **parameter** **`--log-http`** sa **`gcloud`** cli da **ispišete** **zahteve** koje alat izvršava. Ako ne želite da logovi redigiraju vrednost tokena, koristite `gcloud config set log_http_redact_token false`
|
||||
|
||||
Pored toga, da biste presreli komunikaciju:
|
||||
```bash
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# GCP - Održavanje u Artifact Registry
|
||||
# GCP - Artifact Registry Persistence
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Artifact Registry
|
||||
|
||||
Za više informacija o Artifact Registry, pogledajte:
|
||||
Za više informacija o Artifact Registry proverite:
|
||||
|
||||
{{#ref}}
|
||||
../gcp-services/gcp-artifact-registry-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Zbunjenost zavisnosti
|
||||
### Dependency Confusion
|
||||
|
||||
- Šta se dešava ako se **daljinski i standardni** repozitorijumi **pomešaju u virtuelnom** i paket postoji u oba?
|
||||
- Koristi se onaj sa **najvišim prioritetom postavljenim u virtuelnom repozitorijumu**
|
||||
@@ -19,24 +19,24 @@ Za više informacija o Artifact Registry, pogledajte:
|
||||
- Ako nije, koristi se **najviša verzija**
|
||||
|
||||
> [!CAUTION]
|
||||
> Stoga, moguće je **zloupotrebiti najvišu verziju (zbunjenost zavisnosti)** u javnom registru paketa ako daljinski repozitorijum ima viši ili isti prioritet
|
||||
> Stoga, moguće je **zloupotrebiti najvišu verziju (dependency confusion)** u javnom paketu repozitorijuma ako daljinski repozitorijum ima viši ili isti prioritet
|
||||
|
||||
Ova tehnika može biti korisna za **održavanje** i **neautentifikovani pristup**, jer da bi se zloupotrebila, potrebno je samo **znati ime biblioteke** smeštene u Artifact Registry i **napraviti tu istu biblioteku u javnom repozitorijumu (PyPi za python, na primer)** sa višom verzijom.
|
||||
Ova tehnika može biti korisna za **persistence** i **neautentifikovani pristup** jer je za zloupotrebu potrebno samo **znati ime biblioteke** smeštene u Artifact Registry i **napraviti tu istu biblioteku u javnom repozitorijumu (PyPi za python na primer)** sa višom verzijom.
|
||||
|
||||
Za održavanje, ovo su koraci koje treba da pratite:
|
||||
Za persistence, ovo su koraci koje treba da pratite:
|
||||
|
||||
- **Zahtevi**: **Virtuelni repozitorijum** mora **postojati** i biti korišćen, **interni paket** sa **imenu** koji ne postoji u **javnom repozitorijumu** mora biti korišćen.
|
||||
- **Zahtevi**: **virtuelni repozitorijum** mora **postojati** i biti korišćen, **interni paket** sa **imenu** koji ne postoji u **javnom repozitorijumu** mora biti korišćen.
|
||||
- Kreirajte daljinski repozitorijum ako ne postoji
|
||||
- Dodajte daljinski repozitorijum u virtuelni repozitorijum
|
||||
- Uredite politike virtuelnog registra da date viši prioritet (ili isti) daljinskom repozitorijumu.\
|
||||
- Uredite politike virtuelnog repozitorijuma da date viši prioritet (ili isti) daljinskom repozitorijumu.\
|
||||
Pokrenite nešto poput:
|
||||
- [gcloud artifacts repositories update --upstream-policy-file ...](https://cloud.google.com/sdk/gcloud/reference/artifacts/repositories/update#--upstream-policy-file)
|
||||
- Preuzmite legitiman paket, dodajte svoj maliciozni kod i registrujte ga u javnom repozitorijumu sa istom verzijom. Svaki put kada ga programer instalira, instaliraće vaš!
|
||||
|
||||
Za više informacija o zbunjenosti zavisnosti, pogledajte:
|
||||
Za više informacija o dependency confusion proverite:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/dependency-confusion
|
||||
https://book.hacktricks.wiki/en/pentesting-web/dependency-confusion.html
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -11,7 +11,7 @@ sqlite3 $HOME/.config/gcloud/access_tokens.db "select access_token from access_t
|
||||
Proverite na ovoj stranici kako da **direktno koristite ovaj token koristeći gcloud**:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#id-6440-1
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
{{#endref}}
|
||||
|
||||
Da biste dobili detalje za **generisanje novog pristupnog tokena**, pokrenite:
|
||||
@@ -24,13 +24,13 @@ Da biste dobili novi osveženi pristupni token sa **refresh tokenom**, ID-jem kl
|
||||
```bash
|
||||
curl -s --data client_id=<client_id> --data client_secret=<client_secret> --data grant_type=refresh_token --data refresh_token=<refresh_token> --data scope="https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/accounts.reauth" https://www.googleapis.com/oauth2/v4/token
|
||||
```
|
||||
Važenje refresh tokena može se upravljati u **Admin** > **Security** > **Google Cloud session control**, a podrazumevano je postavljeno na 16h, iako se može postaviti da nikada ne istekne:
|
||||
Važenje refresh tokena može se upravljati u **Admin** > **Security** > **Google Cloud session control**, a prema zadanim postavkama postavljeno je na 16h, iako se može postaviti da nikada ne istekne:
|
||||
|
||||
<figure><img src="../../../images/image (11).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Auth flow
|
||||
|
||||
Tok autentifikacije kada se koristi nešto poput `gcloud auth login` otvoriće prozor u pretraživaču, a nakon prihvatanja svih opsega, pretraživač će poslati zahtev kao što je ovaj na http port otvoren od strane alata:
|
||||
Tok autentifikacije kada se koristi nešto poput `gcloud auth login` otvorit će prozor u pregledniku, a nakon prihvatanja svih opsega, preglednik će poslati zahtev kao što je ovaj na http port otvoren od strane alata:
|
||||
```
|
||||
/?state=EN5AK1GxwrEKgKog9ANBm0qDwWByYO&code=4/0AeaYSHCllDzZCAt2IlNWjMHqr4XKOuNuhOL-TM541gv-F6WOUsbwXiUgMYvo4Fg0NGzV9A&scope=email%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.admin%20https://www.googleapis.com/auth/sqlservice.login%20https://www.googleapis.com/auth/compute%20https://www.googleapis.com/auth/accounts.reauth&authuser=0&prompt=consent HTTP/1.1
|
||||
```
|
||||
@@ -67,16 +67,16 @@ https://www.googleapis.com/auth/userinfo.email
|
||||
```
|
||||
zanimljivo je videti kako ova aplikacija podržava **`drive`** opseg, što bi moglo omogućiti korisniku da eskalira sa GCP na Workspace ako napadač uspe da primora korisnika da generiše token sa ovim opsegom.
|
||||
|
||||
**Proverite kako da** [**zloupotrebite ovo ovde**](../gcp-to-workspace-pivoting/#abusing-gcloud)**.**
|
||||
**Proverite kako da** [**zloupotrebite ovo ovde**](../gcp-to-workspace-pivoting/index.html#abusing-gcloud)**.**
|
||||
|
||||
### Servisni nalozi
|
||||
### Računi usluga
|
||||
|
||||
Baš kao i kod autentifikovanih korisnika, ako uspete da **kompromitujete privatni ključ** servisnog naloga, moći ćete da **pristupite njemu obično koliko god želite**.\
|
||||
Međutim, ako ukradete **OAuth token** servisnog naloga, to može biti još zanimljivije, jer, čak i ako su ovi tokeni po defaultu korisni samo sat vremena, ako **žrtva obriše privatni API ključ, OAuth token će i dalje biti važeći dok ne istekne**.
|
||||
Baš kao i kod autentifikovanih korisnika, ako uspete da **kompromitujete privatni ključ** računa usluge, moći ćete da **pristupite njemu obično koliko god želite**.\
|
||||
Međutim, ako ukradete **OAuth token** računa usluge, to može biti još zanimljivije, jer, čak i ako su ovi tokeni po defaultu korisni samo sat vremena, ako **žrtva obriše privatni API ključ, OAuth token će i dalje biti važeći dok ne istekne**.
|
||||
|
||||
### Metapodaci
|
||||
|
||||
Očigledno, sve dok ste unutar mašine koja radi u GCP okruženju, moći ćete da **pristupite servisnom nalogu povezanom sa tom mašinom kontaktirajući metapodatkovni krajnji tačku** (napomena da su Oauth tokeni kojima možete pristupiti na ovoj krajnjoj tački obično ograničeni opsegom).
|
||||
Očigledno, sve dok ste unutar mašine koja radi u GCP okruženju, moći ćete da **pristupite računu usluge povezanom sa tom mašinom kontaktirajući metapodatkovni krajnji tačku** (napomena da su Oauth tokeni kojima možete pristupiti na ovoj krajnjoj tački obično ograničeni opsegom).
|
||||
|
||||
### Remedijacije
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
u ovom scenariju pretpostavljamo da ste **kompromitovali nalog bez privilegija** unutar VM-a u Compute Engine projektu.
|
||||
u ovom scenariju pretpostavljamo da ste **kompromitovali nalog bez privilegija** unutar VM-a u projektu Compute Engine.
|
||||
|
||||
Neverovatno, GCP dozvole Compute Engine-a koje ste kompromitovali mogu vam pomoći da **escalirate privilegije lokalno unutar mašine**. Čak i ako to neće uvek biti od velike pomoći u cloud okruženju, dobro je znati da je to moguće.
|
||||
|
||||
@@ -10,7 +10,7 @@ Neverovatno, GCP dozvole Compute Engine-a koje ste kompromitovali mogu vam pomo
|
||||
|
||||
**Compute Instances** su verovatno tu da **izvrše neke skripte** za obavljanje radnji sa svojim servisnim nalozima.
|
||||
|
||||
Kako je IAM veoma granularan, nalog može imati **read/write** privilegije nad resursom, ali **nema privilegije za listanje**.
|
||||
Kako je IAM granularan, nalog može imati **read/write** privilegije nad resursom, ali **nema privilegije za listanje**.
|
||||
|
||||
Odličan hipotetički primer ovoga je Compute Instance koji ima dozvolu da čita/piše rezervne kopije u skladišni bucket nazvan `instance82736-long-term-xyz-archive-0332893`.
|
||||
|
||||
@@ -22,25 +22,25 @@ Možda ćete moći da pronađete ovo ime bucketa unutar skripte (u bash-u, Pytho
|
||||
|
||||
Administratori mogu dodati [prilagođene metapodatke](https://cloud.google.com/compute/docs/storing-retrieving-metadata#custom) na **instancu** i **nivo projekta**. Ovo je jednostavno način da se proslede **arbitrarni parovi ključ/vrednost u instancu**, i obično se koristi za promenljive okruženja i skripte za pokretanje/gašenje.
|
||||
|
||||
Štaviše, moguće je dodati **userdata**, što je skripta koja će biti **izvršena svaki put** kada se mašina pokrene ili ponovo pokrene i koja može biti **pristupna i sa metapodatkovnog krajnjeg tačke.**
|
||||
Štaviše, moguće je dodati **userdata**, što je skripta koja će biti **izvršena svaki put** kada se mašina pokrene ili ponovo pokrene i koja može biti **pristupna i sa krajnje tačke metapodataka.**
|
||||
|
||||
Za više informacija pogledajte:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
## **Zloupotreba IAM dozvola**
|
||||
|
||||
Većina sledećih predloženih dozvola je **dodeljena podrazumevanom Compute SA,** jedini problem je što **podrazumevani pristupni opseg sprečava SA da ih koristi**. Međutim, ako je **`cloud-platform`** **opseg** omogućen ili samo **`compute`** **opseg** je omogućen, moći ćete da **zloupotrebite**.
|
||||
Većina sledećih predloženih dozvola je **dodeljena podrazumevanom Compute SA,** jedini problem je što **podrazumevani pristupni opseg sprečava SA da ih koristi**. Međutim, ako je **`cloud-platform`** **opseg** omogućen ili samo **`compute`** **opseg** je omogućen, moći ćete da **ih zloupotrebite**.
|
||||
|
||||
Proverite sledeće dozvole:
|
||||
|
||||
- [**compute.instances.osLogin**](gcp-compute-privesc/#compute.instances.oslogin)
|
||||
- [**compute.instances.osAdminLogin**](gcp-compute-privesc/#compute.instances.osadminlogin)
|
||||
- [**compute.projects.setCommonInstanceMetadata**](gcp-compute-privesc/#compute.projects.setcommoninstancemetadata)
|
||||
- [**compute.instances.setMetadata**](gcp-compute-privesc/#compute.instances.setmetadata)
|
||||
- [**compute.instances.setIamPolicy**](gcp-compute-privesc/#compute.instances.setiampolicy)
|
||||
- [**compute.instances.osLogin**](gcp-compute-privesc/index.html#compute.instances.oslogin)
|
||||
- [**compute.instances.osAdminLogin**](gcp-compute-privesc/index.html#compute.instances.osadminlogin)
|
||||
- [**compute.projects.setCommonInstanceMetadata**](gcp-compute-privesc/index.html#compute.projects.setcommoninstancemetadata)
|
||||
- [**compute.instances.setMetadata**](gcp-compute-privesc/index.html#compute.instances.setmetadata)
|
||||
- [**compute.instances.setIamPolicy**](gcp-compute-privesc/index.html#compute.instances.setiampolicy)
|
||||
|
||||
## Pretražite ključeve u datotečnom sistemu
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
## Osnovne Informacije
|
||||
|
||||
Google Cloud Compute Instances su **prilagodljive virtuelne mašine na Google-ovoj cloud infrastrukturi**, koje nude skalabilnu i on-demand računarsku snagu za širok spektar aplikacija. Pružaju funkcije kao što su globalna implementacija, trajno skladištenje, fleksibilni izbor operativnog sistema i snažne integracije umrežavanja i bezbednosti, što ih čini svestranom opcijom za hostovanje veb sajtova, obradu podataka i efikasno pokretanje aplikacija u cloudu.
|
||||
Google Cloud Compute Instances su **prilagodljive virtuelne mašine na Google-ovoj cloud infrastrukturi**, koje nude skalabilnu i na zahtev dostupnu računarstvo za širok spektar aplikacija. Pružaju funkcije kao što su globalna implementacija, trajno skladištenje, fleksibilni izbor operativnog sistema i snažne integracije umrežavanja i bezbednosti, što ih čini svestranom opcijom za hostovanje veb sajtova, obradu podataka i efikasno pokretanje aplikacija u cloudu.
|
||||
|
||||
### Povjerljiva VM
|
||||
|
||||
Povjerljive VM koriste **bezbednosne funkcije zasnovane na hardveru** koje nude najnovije generacije AMD EPYC procesora, koje uključuju enkripciju memorije i sigurnu enkriptovanu virtualizaciju. Ove funkcije omogućavaju VM-u da zaštiti podatke koji se obrađuju i skladište unutar njega čak i od host operativnog sistema i hipervizora.
|
||||
Povjerljive VM koriste **bezbednosne funkcije zasnovane na hardveru** koje nude najnovije generacije AMD EPYC procesora, koje uključuju enkripciju memorije i sigurnu enkriptu virtualizaciju. Ove funkcije omogućavaju VM-u da zaštiti podatke koji se obrađuju i skladište unutar njega čak i od host operativnog sistema i hipervizora.
|
||||
|
||||
Da bi se pokrenula Povjerljiva VM, možda će biti potrebno da **promenite** stvari kao što su **tip** **mašine**, mrežni **interfejs**, **slika pokretačkog diska**.
|
||||
|
||||
@@ -18,8 +18,8 @@ Moguće je **izabrati disk** koji će se koristiti ili **napraviti novi**. Ako i
|
||||
|
||||
- Izabrati **veličinu** diska
|
||||
- Izabrati **OS**
|
||||
- Naznačiti da želite da se **disk obriše kada se instanca obriše**
|
||||
- **Enkripcija**: Po **default-u** će se koristiti **Google upravljani ključ**, ali takođe možete **izabrati ključ iz KMS** ili naznačiti **sirovi ključ koji će se koristiti**.
|
||||
- Naznačiti da želite da **obrišete disk kada se instanca obriše**
|
||||
- **Enkripcija**: Po **default-u** će se koristiti **Google upravljani ključ**, ali možete i **izabrati ključ iz KMS** ili naznačiti **sirovi ključ koji će se koristiti**.
|
||||
|
||||
### Implementacija Kontejnera
|
||||
|
||||
@@ -28,10 +28,10 @@ Moguće je konfigurisati **sliku** koja će se koristiti, postaviti **komandu**
|
||||
|
||||
### Servisni Nalog
|
||||
|
||||
Po default-u, koristiće se **Compute Engine podrazumevani servisni nalog**. Email ovog SA je kao: `<proj-num>-compute@developer.gserviceaccount.com`\
|
||||
Po default-u, koristiće se **Compute Engine default servisni nalog**. Email ovog SA je kao: `<proj-num>-compute@developer.gserviceaccount.com`\
|
||||
Ovaj servisni nalog ima **Editor ulogu nad celim projektom (visoke privilegije).**
|
||||
|
||||
A **podrazumevani pristupni opsezi** su sledeći:
|
||||
A **default pristupni opsezi** su sledeći:
|
||||
|
||||
- **https://www.googleapis.com/auth/devstorage.read\_only** -- Pristup za čitanje ka bucket-ima :)
|
||||
- https://www.googleapis.com/auth/logging.write
|
||||
@@ -60,7 +60,7 @@ Moguće je dozvoliti HTTP i HTTPS saobraćaj.
|
||||
|
||||
Ove opcije će **povećati bezbednost** VM-a i preporučuju se:
|
||||
|
||||
- **Sigurno pokretanje:** Sigurno pokretanje pomaže u zaštiti vaših VM instanci od malvera na nivou pokretanja i jezgra i rootkit-a.
|
||||
- **Sigurno pokretanje:** Sigurno pokretanje pomaže u zaštiti vaših VM instanci od malvera na nivou pokretanja i kernel nivoa i rootkit-a.
|
||||
- **Omogućiti vTPM:** Virtuelni Trusted Platform Module (vTPM) validira integritet vašeg gostujućeg VM-a pre pokretanja i tokom pokretanja, i nudi generisanje i zaštitu ključeva.
|
||||
- **Nadzor integriteta:** Nadzor integriteta vam omogućava da pratite i verifikujete integritet pokretanja vaših zaštićenih VM instanci koristeći Stackdriver izveštaje. Zahteva da vTPM bude omogućen.
|
||||
|
||||
@@ -76,7 +76,7 @@ Kada je ovaj **servis** **omogućen**, pristup putem **SSH ključeva je onemogu
|
||||
|
||||
Moguće je definisati **automatizaciju** (userdata u AWS) koja su **shell komande** koje će se izvršavati svaki put kada se mašina uključi ili ponovo pokrene.
|
||||
|
||||
Takođe je moguće **dodati dodatne metapodatke ključ-vrednost** koji će biti dostupni sa metapodatkovnog krajnjeg tačke. Ove informacije se obično koriste za varijable okruženja i skripte za pokretanje/gašenje. Ovo se može dobiti koristeći **`describe` metodu** iz komande u sekciji enumeracije, ali se takođe može preuzeti iznutra instance pristupajući metapodatkovnoj krajnjoj tački.
|
||||
Takođe je moguće **dodati dodatne metapodatke ključ-vrednost** koji će biti dostupni sa metapodatkovnog krajnjeg tačke. Ove informacije se obično koriste za varijable okruženja i skripte za pokretanje/gašenje. Ovo se može dobiti koristeći **`describe` metodu** iz komande u sekciji enumeracije, ali se takođe može preuzeti iznutra instance pristupajući metapodatkovnom kraju.
|
||||
```bash
|
||||
# view project metadata
|
||||
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
|
||||
@@ -89,12 +89,12 @@ curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?re
|
||||
Pored toga, **auth token za priloženi servisni nalog** i **opšte informacije** o instanci, mreži i projektu će takođe biti dostupne sa **metadata endpoint**. Za više informacija pogledajte:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
{{#endref}}
|
||||
|
||||
### Enkripcija
|
||||
|
||||
Google-u upravljani ključ za enkripciju se koristi po default-u, ali se može konfigurisati ključ za enkripciju koji upravlja kupac (CMEK). Takođe možete konfigurisati šta da radite kada se korišćeni CMEK opozove: Noting ili isključite VM.
|
||||
Google-om upravljani ključ za enkripciju se koristi po default-u, ali može se konfigurisati ključ za enkripciju koji upravlja kupac (CMEK). Takođe možete konfigurisati šta da radite kada se korišćeni CMEK opozove: Noting ili isključite VM.
|
||||
|
||||
<figure><img src="../../../../images/image (329).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Ako imate **pristup Cloud SQL portu** jer je sav internet dozvoljen ili iz bilo
|
||||
Proverite ovu stranicu za **različite alate za brute-force** različitih tehnologija baza podataka:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/generic-methodologies-and-resources/brute-force
|
||||
https://book.hacktricks.wiki/en/generic-hacking/brute-force.html
|
||||
{{#endref}}
|
||||
|
||||
Zapamtite da sa nekim privilegijama možete **prikazati sve korisnike baze podataka** putem GCP API-ja.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Compute
|
||||
|
||||
Za više informacija o Compute i VPC (Mreženje) proverite:
|
||||
Za više informacija o Compute i VPC (Mrežama) proverite:
|
||||
|
||||
{{#ref}}
|
||||
../gcp-services/gcp-compute-instances-enum/
|
||||
@@ -15,7 +15,7 @@ Za više informacija o Compute i VPC (Mreženje) proverite:
|
||||
Ako je web **ranjiv na SSRF** i moguće je **dodati metadata header**, napadač bi mogao da ga iskoristi da pristupi SA OAuth tokenu sa metadata endpoint-a. Za više informacija o SSRF proverite:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/index.html
|
||||
{{#endref}}
|
||||
|
||||
### Ranjive izložene usluge
|
||||
|
||||
Reference in New Issue
Block a user