Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains

This commit is contained in:
Translator
2025-01-11 18:51:48 +00:00
parent 608a48718c
commit 5645f346ff
44 changed files with 2044 additions and 469 deletions

View File

@@ -21,28 +21,28 @@ gcp-basic-information/
## GCP Pentester/Red Team Metodologie
Om 'n GCP omgewing te oudit, is dit baie belangrik om te weet: watter **dienste gebruik word**, wat is **blootgestel**, wie het **toegang** tot wat, en hoe is interne GCP dienste en **eksterne dienste** gekonnekteer.
Om 'n GCP omgewing te oudit, is dit baie belangrik om te weet: watter **dienste gebruik word**, wat is **blootgestel**, wie het **toegang** tot wat, en hoe is interne GCP dienste en **eksterne dienste** gekoppel.
Vanuit 'n Red Team perspektief, is die **eerste stap om 'n GCP omgewing te kompromitteer** om daarin te slaag om 'n paar **akkrediteer** te verkry. Hier is 'n paar idees oor hoe om dit te doen:
- **Leaks** in github (of soortgelyk) - OSINT
- **Sosiale** Ingenieurswese (Kyk die bladsy [**Workspace Security**](../workspace-security/))
- **Sosiale** Ingenieurswese (Kyk die bladsy [**Workspace Security**](../workspace-security/index.html))
- **Wagwoord** hergebruik (wagwoord leaks)
- Kw vulnerabilities in GCP-Hosted Applications
- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) met toegang tot metadata eindpunt
- Kw vulnerabilities in GCP-gehoste toepassings
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) met toegang tot metadata eindpunt
- **Plaaslike Lêer Lees**
- `/home/USERNAME/.config/gcloud/*`
- `C:\Users\USERNAME\.config\gcloud\*`
- 3de partye **gekompromitteer**
- **Interne** Werknemer
Of deur **'n nie-geauthentiseerde diens** wat blootgestel is te **kompromitteer**:
Of deur **'n nie-geauthentiseerde diens** wat blootgestel is te kompromitteer:
{{#ref}}
gcp-unauthenticated-enum-and-access/
{{#endref}}
Of as jy 'n **hersiening** doen, kan jy net **vraag om akkrediteer** met hierdie rolle:
Of as jy 'n **hersiening** doen, kan jy net **vraag vir akkrediteer** met hierdie rolle:
{{#ref}}
gcp-permissions-for-a-pentest.md
@@ -58,7 +58,7 @@ gcp-permissions-for-a-pentest.md
Vir meer inligting oor hoe om **GCP metadata te enumerate**, kyk die volgende hacktricks bladsy:
{{#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
@@ -73,7 +73,7 @@ gcloud auth print-identity-token #Get info from the token
#If you compromised a metadata token or somehow found an OAuth token
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token=<token>" https://www.googleapis.com/oauth2/v1/tokeninfo
```
U kan ook die API-eindpunt `/userinfo` gebruik om meer inligting oor die gebruiker te verkry:
Jy kan ook die API-eindpunt `/userinfo` gebruik om meer inligting oor die gebruiker te verkry:
```bash
curl -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: OAuth $(gcloud auth print-access-token)" https://www.googleapis.com/oauth2/v1/userinfo
@@ -88,9 +88,9 @@ gcloud projects list # Get projects
```
### Beginsels & IAM Enumerasie
As jy genoeg regte het, **sal die kontrole van die voorregte van elke entiteit binne die GCP-rekening** jou help om te verstaan wat jy en ander identiteite kan doen en hoe om **voorregte te verhoog**.
As jy genoeg regte het, **sal die nagaan van die voorregte van elke entiteit binne die GCP-rekening** jou help om te verstaan wat jy en ander identiteite kan doen en hoe om **voorregte te verhoog**.
As jy nie genoeg regte het om IAM te enumereer nie, kan jy **brute-force hulle steel** om dit uit te vind.\
As jy nie genoeg regte het om IAM te enumereer nie, kan jy dit **steal brute-force** om dit uit te vind.\
Kyk **hoe om die numerasie en brute-forcing** te doen in:
{{#ref}}
@@ -98,7 +98,7 @@ gcp-services/gcp-iam-and-org-policies-enum.md
{{#endref}}
> [!NOTE]
> Nou dat jy **'n bietjie inligting oor jou akrediteer** (en as jy 'n rooi span is, hoop ek jy **is nie opgespoor nie**). Dit is tyd om uit te vind watter dienste in die omgewing gebruik word.\
> Nou dat jy **'n bietjie inligting oor jou akrediteer** het (en as jy 'n red team is, hoop ek jy **is nie opgespoor nie**). Dit is tyd om uit te vind watter dienste in die omgewing gebruik word.\
> In die volgende afdeling kan jy 'n paar maniere kyk om **'n paar algemene dienste te enumereer.**
## Dienste Enumerasie
@@ -109,9 +109,9 @@ GCP het 'n verbasende hoeveelheid dienste, in die volgende bladsy sal jy **basie
gcp-services/
{{#endref}}
Let daarop dat jy **nie** al die werk **handmatig** hoef te doen nie, hieronder in hierdie pos kan jy 'n **afdeling oor** [**outomatiese gereedskap**](./#automatic-tools) vind.
Let daarop dat jy **nie** al die werk **handmatig** hoef te doen nie, hieronder in hierdie pos kan jy 'n **afdeling oor** [**outomatiese gereedskap**](#automatic-tools) vind.
Boonop, in hierdie fase mag jy **meer dienste ontdek wat aan nie-geverifieerde gebruikers blootgestel is,** jy mag in staat wees om hulle te benut:
Boonop, in hierdie fase mag jy **meer dienste ontdek het wat aan nie-geverifieerde gebruikers blootgestel is,** jy mag in staat wees om dit te benut:
{{#ref}}
gcp-unauthenticated-enum-and-access/
@@ -119,7 +119,7 @@ gcp-unauthenticated-enum-and-access/
## Voorreg Verhoging, Post Exploitatie & Volharding
Die mees algemene manier, sodra jy 'n paar wolk akrediteer verkry het of 'n diens wat binne 'n wolk loop gecompromitteer het, is om **misgeconfigureerde voorregte** wat die gecompromitteerde rekening mag hê, te **misbruik**. So, die eerste ding wat jy moet doen, is om jou voorregte te enumereer.
Die mees algemene manier, sodra jy 'n paar wolk akrediteer of 'n paar dienste wat binne 'n wolk loop gecompromitteer het, is om **misgeconfigureerde voorregte** wat die gecompromitteerde rekening mag hê, te **misbruik**. So, die eerste ding wat jy moet doen is om jou voorregte te enumereer.
Boonop, tydens hierdie enumerasie, onthou dat **regte op die hoogste vlak van "Organisasie"** gestel kan word.
@@ -137,18 +137,18 @@ gcp-persistence/
### Publiek Blootgestelde Dienste
Terwyl jy GCP-dienste enumereer, mag jy sommige van hulle **elemente aan die Internet blootstel** (VM/Containers poorte, databasisse of wagdiens, snappings of emmers...).\
As pentester/red teamer moet jy altyd kyk of jy **sensitiewe inligting / kwesbaarhede** op hulle kan vind, aangesien hulle jou **verdere toegang tot die AWS-rekening** mag bied.
Terwyl jy GCP dienste enumereer, mag jy sommige van hulle **elemente aan die Internet blootstel** (VM/Containers poorte, databasisse of wagdiens, snapshots of emmers...).\
As pentester/red teamer moet jy altyd kyk of jy **sensitiewe inligting / kwesbaarhede** op hulle kan vind, aangesien dit jou **verdere toegang tot die AWS-rekening** mag bied.
In hierdie boek behoort jy **inligting** te vind oor hoe om **blootgestelde GCP-dienste te vind en hoe om hulle te kontroleer**. Oor hoe om **kwesbaarhede in blootgestelde netwerkdienste** te vind, sou ek jou aanbeveel om te **soek** na die spesifieke **diens** in:
In hierdie boek behoort jy **inligting** te vind oor hoe om **blootgestelde GCP dienste te vind en hoe om dit te kontroleer**. Oor hoe om **kwesbaarhede in blootgestelde netwerkdienste te vind**, sou ek jou aanbeveel om te **soek** na die spesifieke **diens** in:
{{#ref}}
https://book.hacktricks.xyz/
https://book.hacktricks.wiki/
{{#endref}}
## GCP <--> Workspace Pivoting
## GCP <--> Workspace Pivotering
**Die kompromittering** van beginsels in **een** platform mag 'n aanvaller toelaat om **die ander een te kompromitteer**, kyk dit in:
**Die kompromentering** van beginsels in **een** platform mag 'n aanvaller toelaat om die **ander een te kompromenteer**, kyk dit in:
{{#ref}}
gcp-to-workspace-pivoting/
@@ -156,10 +156,10 @@ gcp-to-workspace-pivoting/
## Outomatiese Gereedskap
- In die **GCloud-konsol**, in [https://console.cloud.google.com/iam-admin/asset-inventory/dashboard](https://console.cloud.google.com/iam-admin/asset-inventory/dashboard) kan jy hulpbronne en IAM's sien wat deur die projek gebruik word.
- In die **GCloud konsole**, in [https://console.cloud.google.com/iam-admin/asset-inventory/dashboard](https://console.cloud.google.com/iam-admin/asset-inventory/dashboard) kan jy hulpbronne en IAM's sien wat deur die projek gebruik word.
- Hier kan jy die bates sien wat deur hierdie API ondersteun word: [https://cloud.google.com/asset-inventory/docs/supported-asset-types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
- Kyk na **gereedskap** wat [**in verskeie wolke hier gebruik kan word**](../pentesting-cloud-methodology.md).
- [**gcp_scanner**](https://github.com/google/gcp_scanner): Dit is 'n GCP hulpbron skandeerder wat kan help om te bepaal watter **vlak van toegang sekere akrediteer besit** op GCP.
- Kyk **gereedskap** wat [**in verskeie wolke hier gebruik kan word**](../pentesting-cloud-methodology.md).
- [**gcp_scanner**](https://github.com/google/gcp_scanner): Dit is 'n GCP hulpbron skandeerder wat kan help om te bepaal watter **vlak van toegang sekere akrediteer het** op GCP.
```bash
# Install
git clone https://github.com/google/gcp_scanner.git
@@ -189,7 +189,7 @@ gcloud auth application-default print-access-token
# Update gcloud
gcloud components update
```
### Vang gcloud, gsutil... netwerk
### Capture gcloud, gsutil... netwerk
Onthou dat jy die **parameter** **`--log-http`** met die **`gcloud`** cli kan gebruik om die **versoeke** wat die hulpmiddel uitvoer te **druk**. As jy nie wil hê die logs moet die token waarde redigeer nie, gebruik `gcloud config set log_http_redact_token false`

View File

@@ -1,10 +1,10 @@
# GCP - Artefakregistrasie Volharding
# GCP - Artefak Registrasie Volharding
{{#include ../../../banners/hacktricks-training.md}}
## Artefakregistrasie
## Artefak Registrasie
Vir meer inligting oor Artefakregistrasie, kyk:
Vir meer inligting oor Artefak Registrasie, kyk:
{{#ref}}
../gcp-services/gcp-artifact-registry-enum.md
@@ -15,13 +15,13 @@ Vir meer inligting oor Artefakregistrasie, kyk:
- Wat gebeur as 'n **afgeleë en 'n standaard** registrasies **in 'n virtuele** een gemeng word en 'n pakket in albei bestaan?
- Die een met die **hoogste prioriteit wat in die virtuele registrasie** gestel is, word gebruik
- As die **prioriteit dieselfde is**:
- As die **weergawe** dieselfde is, word die **beleidsnaam alfabeties** eerste in die virtuele registrasie gebruik
- As die **weergawe** die **dieselfde** is, word die **beleidsnaam alfabeties** eerste in die virtuele registrasie gebruik
- As nie, word die **hoogste weergawe** gebruik
> [!CAUTION]
> Daarom is dit moontlik om 'n **hoogste weergawe (afhanklikheid verwarring)** in 'n openbare pakketregistrasie te **misbruik** as die afgeleë registrasie 'n hoër of dieselfde prioriteit het
> Daarom is dit moontlik om 'n **hoogste weergawe (afhanklikheid verwarring)** in 'n openbare pakket registrasie te **misbruik** as die afgeleë registrasie 'n hoër of dieselfde prioriteit het
Hierdie tegniek kan nuttig wees vir **volharding** en **onaangetekende toegang** aangesien dit net vereis om 'n **biblioteeknaam** te **ken** wat in Artefakregistrasie gestoor is en **daardie selfde biblioteek in die openbare registrasie (PyPi vir python byvoorbeeld)** met 'n hoër weergawe te skep.
Hierdie tegniek kan nuttig wees vir **volharding** en **onaangetekende toegang** aangesien dit net vereis om 'n **biblioteeknaam** te **ken** wat in Artefak Registrasie gestoor is en **daardie selfde biblioteek in die openbare registrasie (PyPi vir python byvoorbeeld)** met 'n hoër weergawe te **skep**.
Vir volharding is dit die stappe wat jy moet volg:
@@ -29,14 +29,14 @@ Vir volharding is dit die stappe wat jy moet volg:
- Skep 'n afgeleë registrasie as dit nie bestaan nie
- Voeg die afgeleë registrasie by die virtuele registrasie
- Wysig die beleide van die virtuele registrasie om 'n hoër prioriteit (of dieselfde) aan die afgeleë registrasie te gee.\
Voer iets soos die volgende uit:
Voer iets soos uit:
- [gcloud artifacts repositories update --upstream-policy-file ...](https://cloud.google.com/sdk/gcloud/reference/artifacts/repositories/update#--upstream-policy-file)
- Laai die wettige pakket af, voeg jou kwaadwillige kode by en registreer dit in die openbare registrasie met dieselfde weergawe. Elke keer as 'n ontwikkelaar dit installeer, sal hy joune installeer!
Vir meer inligting oor afhanklikheid verwarring, kyk:
{{#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}}

View File

@@ -1,4 +1,4 @@
# GCP - Token Persistensie
# GCP - Token Volharding
{{#include ../../../banners/hacktricks-training.md}}
@@ -11,7 +11,7 @@ sqlite3 $HOME/.config/gcloud/access_tokens.db "select access_token from access_t
Kyk op hierdie bladsy hoe om **hierdie token direk met gcloud te gebruik**:
{{#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}}
Om die besonderhede te kry om **'n nuwe toegangstoken te genereer**, voer in:
@@ -24,20 +24,20 @@ Om 'n nuwe verfriste toegangstoken met die **verfris token**, kliënt ID, en kli
```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
```
Die geldigheid van die hernuwingstokens kan bestuur word in **Admin** > **Security** > **Google Cloud session control**, en standaard is dit op 16h gestel, hoewel dit op nooit verval kan word:
Die geldigheid van die hernuwingstokens kan bestuur word in **Admin** > **Security** > **Google Cloud session control**, en standaard is dit op 16h gestel, hoewel dit op nooit verval kan word nie:
<figure><img src="../../../images/image (11).png" alt=""><figcaption></figcaption></figure>
### Auth flow
Die outentikasie-stroom wanneer iets soos `gcloud auth login` gebruik word, sal 'n prompt in die blaaiert oopmaak en na die aanvaarding van al die skope sal die blaaiert 'n versoek soos hierdie een na die http-poort wat deur die hulpmiddel oopgemaak is, stuur:
Die outentikasie-stroom wanneer iets soos `gcloud auth login` gebruik word, sal 'n prompt in die blaaier oopmaak en na die aanvaarding van al die skope sal die blaaiers 'n versoek soos hierdie na die http-poort wat deur die hulpmiddel oopgemaak is, stuur:
```
/?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
```
Dan sal gcloud die toestand en kode gebruik met 'n paar hardgecodeerde `client_id` (`32555940559.apps.googleusercontent.com`) en **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) om die **finale verfris-token data** te verkry.
Dan sal gcloud die toestand en kode gebruik met 'n paar hardgecodeerde `client_id` (`32555940559.apps.googleusercontent.com`) en **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) om die **finale hernuwingstoken data** te verkry.
> [!CAUTION]
> Let daarop dat die kommunikasie met localhost in HTTP is, so dit is moontlik om die data te onderskep om 'n verfris-token te verkry, maar hierdie data is net 1 keer geldig, so dit sou nutteloos wees, dit is makliker om die verfris-token uit die lêer te lees.
> Let daarop dat die kommunikasie met localhost in HTTP is, so dit is moontlik om die data te onderskep om 'n hernuwingstoken te verkry, maar hierdie data is net 1 keer geldig, so dit sou nutteloos wees, dit is makliker om net die hernuwingstoken uit die lêer te lees.
### OAuth Scopes
@@ -67,16 +67,16 @@ https://www.googleapis.com/auth/userinfo.email
```
dit is interessant om te sien hoe hierdie app die **`drive`** omvang ondersteun, wat 'n gebruiker in staat kan stel om van GCP na Workspace op te skaal as 'n aanvaller daarin slaag om die gebruiker te dwing om 'n token met hierdie omvang te genereer.
**Kyk hoe om** [**dit hier te misbruik**](../gcp-to-workspace-pivoting/#abusing-gcloud)**.**
**Kyk hoe om** [**dit hier te misbruik**](../gcp-to-workspace-pivoting/index.html#abusing-gcloud)**.**
### Diensrekeninge
Net soos met geverifieerde gebruikers, as jy daarin slaag om die **privaat sleutel lêer** van 'n diensrekening te **kompromitteer, sal jy dit gewoonlik kan toegang soos lank as wat jy wil**.\
Net soos met geverifieerde gebruikers, as jy daarin slaag om die **privaat sleutel lêer** van 'n diensrekening te **kompromitteer, sal jy dit gewoonlik kan **toegang hê solank jy wil**.\
As jy egter die **OAuth-token** van 'n diensrekening steel, kan dit selfs meer interessant wees, want, selfs al is hierdie tokens standaard net nuttig vir 'n uur, as die **slagoffer die privaat API-sleutel verwyder, sal die OAuth-token steeds geldig wees totdat dit verval**.
### Metadata
Dit is duidelik dat, solank jy binne 'n masjien wat in die GCP-omgewing loop is, jy in staat sal wees om die **diensrekening wat aan daardie masjien gekoppel is te toegang deur die metadata-eindpunt te kontak** (let daarop dat die Oauth-tokens wat jy in hierdie eindpunt kan toegang, gewoonlik deur omvang beperk is).
Dit is duidelik dat, solank jy binne 'n masjien wat in die GCP-omgewing loop, sal jy in staat wees om die **diensrekening wat aan daardie masjien gekoppel is, te toegang deur die metadata-eindpunt te kontak** (let daarop dat die Oauth-tokens wat jy in hierdie eindpunt kan toegang, gewoonlik deur omvang beperk is).
### Herstelmaatreëls

View File

@@ -1,4 +1,4 @@
# GCP - plaaslike privilige-escalasie ssh pivoting
# GCP - plaaslike privilige eskalasie ssh pivoting
{{#include ../../../banners/hacktricks-training.md}}
@@ -12,9 +12,9 @@ Verbazingwekkend, GPC toestemmings van die compute engine wat jy gecompromitteer
Aangesien IAM baie gedetailleerd is, kan 'n rekening **lees/skryf** toestemmings oor 'n hulpbron hê, maar **geen lys toestemmings** nie.
'n Goeie hipotetiese voorbeeld hiervan is 'n Compute Instance wat toestemming het om rugsteun te lees/skryf na 'n stoor emmer genaamd `instance82736-long-term-xyz-archive-0332893`.
'n Groot hipotetiese voorbeeld hiervan is 'n Compute Instance wat toestemming het om rugsteun te lees/skryf na 'n stoor emmer genaamd `instance82736-long-term-xyz-archive-0332893`.
Wanneer jy `gsutil ls` vanaf die opdraglyn uitvoer, kom daar niks terug nie, aangesien die diensrekening die `storage.buckets.list` IAM toestemming mis. As jy egter `gsutil ls gs://instance82736-long-term-xyz-archive-0332893` uitvoer, mag jy 'n volledige lêerstelselrugsteun vind, wat jou duidelike toegang tot data gee wat jou plaaslike Linux rekening ontbreek.
Wanneer jy `gsutil ls` vanaf die opdraglyn uitvoer, keer dit niks terug nie, aangesien die diensrekening die `storage.buckets.list` IAM toestemming mis. As jy egter `gsutil ls gs://instance82736-long-term-xyz-archive-0332893` uitvoer, mag jy 'n volledige lêerstelsel rugsteun vind, wat jou duidelike toegang tot data gee wat jou plaaslike Linux rekening ontbreek.
Jy mag in staat wees om hierdie emmernaam binne 'n skrip te vind (in bash, Python, Ruby...).
@@ -27,35 +27,35 @@ Boonop is dit moontlik om **userdata** toe te voeg, wat 'n skrip is wat **elke k
Vir meer inligting, kyk:
{{#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}}
## **Misbruik van IAM toestemmings**
Meeste van die volgende voorgestelde toestemmings is **gegee aan die standaard Compute SA,** die enigste probleem is dat die **standaard toegangskop die SA verhinder om dit te gebruik**. As **`cloud-platform`** **kop** geaktiveer is of net die **`compute`** **kop** geaktiveer is, sal jy in staat wees om dit te **misbruik**.
Die meeste van die volgende voorgestelde toestemmings word **aan die standaard Compute SA gegee,** die enigste probleem is dat die **standaard toegangskop die SA verhinder om dit te gebruik**. As **`cloud-platform`** **kop** geaktiveer is of net die **`compute`** **kop** geaktiveer is, sal jy in staat wees om dit te **misbruik**.
Kyk na die volgende toestemmings:
- [**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)
## Soek na Sleutels in die lêerstelsel
Kyk of ander gebruikers in gcloud binne die boks aangemeld het en hul akrediteer in die lêerstelsel gelaat het:
Kyk of ander gebruikers in gcloud binne die boks ingelogde het en hul akrediteer in die lêerstelsel gelaat het:
```
sudo find / -name "gcloud"
```
Dit is die mees interessante lêers:
Hierdie is die mees interessante lêers:
- `~/.config/gcloud/credentials.db`
- `~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json`
- `~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto`
- `~/.credentials.json`
### Meer API Sleutels regexes
### Meer API Sleutel regexes
```bash
TARGET_DIR="/path/to/whatever"

View File

@@ -4,17 +4,17 @@
## Basic Information
Google Cloud Compute Instances is **pasgemaakte virtuele masjiene op Google se wolkinfrastruktuur**, wat skaalbare en op aanvraag rekenaarkrag bied vir 'n wye verskeidenheid toepassings. Hulle bied funksies soos globale ontplooiing, volhoubare berging, buigsame OS-keuses, en sterk netwerk- en sekuriteitsintegrasies, wat hulle 'n veelsydige keuse maak vir die gasheer van webwerwe, verwerking van data, en doeltreffende uitvoering van toepassings in die wolk.
Google Cloud Compute Instances is **pasgemaakte virtuele masjiene op Google se wolkinfrastruktuur**, wat skaalbare en op aanvraag rekenkrag bied vir 'n wye verskeidenheid toepassings. Hulle bied funksies soos globale ontplooiing, volhoubare berging, buigsame OS-keuses, en sterk netwerk- en sekuriteitsintegrasies, wat hulle 'n veelsydige keuse maak vir die gasheer van webwerwe, verwerking van data, en doeltreffende uitvoering van toepassings in die wolk.
### Confidential VM
Confidential VMs gebruik **hardeware-gebaseerde sekuriteitskenmerke** wat aangebied word deur die nuutste generasie van AMD EPYC verwerkers, wat geheue-enkripsie en veilige geënkripteerde virtualisering insluit. Hierdie kenmerke stel die VM in staat om die data wat verwerk en gestoor word binne-in dit te beskerm teen selfs die gasheerbedryfstelsel en hypervisor.
Confidential VMs gebruik **hardeware-gebaseerde sekuriteitskenmerke** wat aangebied word deur die nuutste generasie van AMD EPYC verwerkers, wat geheue-enkripsie en veilige geënkripteerde virtualisering insluit. Hierdie kenmerke stel die VM in staat om die data wat verwerk en gestoor word binne dit te beskerm teen selfs die gasheerbedryfstelsel en hypervisor.
Om 'n Confidential VM te laat loop, mag dit nodig wees om **te verander** dinge soos die **tipe** van die **masjien**, netwerk **koppelvlak**, **opstartskyf beeld**.
Om 'n Confidential VM te laat loop, mag dit nodig wees om **dinge** soos die **tipe** van die **masjien**, netwerk **koppelvlak**, **opstartskyfbeeld** te **verander**.
### Disk & Disk Encryption
Dit is moontlik om die **skyf** te kies om te gebruik of **'n nuwe een te skep**. As jy 'n nuwe een kies, kan jy:
Dit is moontlik om die **skyf** te **kies** om te gebruik of **'n nuwe een te skep**. As jy 'n nuwe een kies, kan jy:
- Die **grootte** van die skyf kies
- Die **OS** kies
@@ -24,14 +24,14 @@ Dit is moontlik om die **skyf** te kies om te gebruik of **'n nuwe een te skep**
### Deploy Container
Dit is moontlik om 'n **houer** binne die virtuele masjien te ontplooi.\
Dit is moontlik om die **beeld** te konfigureer om te gebruik, die **opdrag** in te stel om binne-in te loop, **argumente**, 'n **volume** te monteer, en **omgewingsveranderlikes** (sensitiewe inligting?) en verskeie opsies vir hierdie houer te konfigureer soos om as **bevoorregte** uit te voer, stdin en pseudo TTY.
Dit is moontlik om die **beeld** te konfigureer om te gebruik, die **opdrag** in te stel om binne te loop, **argumente**, 'n **volume** te monteer, en **omgewingsveranderlikes** (sensitiewe inligting?) en verskeie opsies vir hierdie houer te konfigureer soos om as **privilegied** uit te voer, stdin en pseudo TTY.
### Service Account
Deur verstek sal die **Compute Engine verstek diensrekening** gebruik word. Die e-pos van hierdie SA is soos: `<proj-num>-compute@developer.gserviceaccount.com`\
Deur die standaard sal die **Compute Engine standaard diensrekening** gebruik word. Die e-pos van hierdie SA is soos: `<proj-num>-compute@developer.gserviceaccount.com`\
Hierdie diensrekening het **Redigeerder rol oor die hele projek (hoë voorregte).**
En die **verstek toegangskope** is die volgende:
En die **standaard toegangskope** is die volgende:
- **https://www.googleapis.com/auth/devstorage.read\_only** -- Lees toegang tot emmers :)
- https://www.googleapis.com/auth/logging.write
@@ -54,29 +54,29 @@ Dit is moontlik om HTTP en HTTPS verkeer toe te laat.
- **IP Forwarding**: Dit is moontlik om **IP forwarding** vanaf die skepping van die instansie in te skakel.
- **Hostname**: Dit is moontlik om die instansie 'n permanente hostname te gee.
- **Koppelvlak**: Dit is moontlik om 'n netwerk koppelvlak by te voeg.
- **Interface**: Dit is moontlik om 'n netwerk koppelvlak by te voeg.
### Extra Security
Hierdie opsies sal **die sekuriteit** van die VM verhoog en word aanbeveel:
Hierdie opsies sal **die sekuriteit** van die VM **verhoog** en word aanbeveel:
- **Veilige opstart:** Veilige opstart help om jou VM instansies teen opstart- en kernvlak malware en rootkits te beskerm.
- **Aktiveer vTPM:** Virtuele Betroubare Platform Module (vTPM) valideer jou gaste VM se voor-opstart en opstart integriteit, en bied sleutelgenerasie en beskerming.
- **Integriteit toesig:** Integriteit monitering laat jou toe om die tydelike opstartintegriteit van jou beskermde VM instansies te monitor en te verifieer met behulp van Stackdriver verslae. Vereis dat vTPM geaktiveer moet wees.
- **Secure boot:** Secure boot help om jou VM instansies teen opstart- en kernvlak malware en rootkits te beskerm.
- **Enable vTPM:** Virtual Trusted Platform Module (vTPM) valideer jou gas VM se pre-boot en boot integriteit, en bied sleutelgenerasie en beskerming.
- **Integrity supervision:** Integriteit monitering laat jou toe om die runtime boot integriteit van jou beskermde VM instansies te monitor en te verifieer met behulp van Stackdriver verslae. Vereis dat vTPM geaktiveer moet wees.
### VM Access
Die algemene manier om toegang tot die VM te aktiveer, is deur **sekere SSH publieke sleutels** toe te laat om toegang tot die VM te verkry.\
Dit is egter ook moontlik om **die toegang tot die VM via `os-config` diens met IAM te aktiveer**. Boonop is dit moontlik om 2FA te aktiveer om toegang tot die VM te verkry met hierdie diens.\
Dit is egter ook moontlik om **die toegang tot die VM via `os-config` diens met IAM** te aktiveer. Boonop is dit moontlik om 2FA te aktiveer om toegang tot die VM te verkry met behulp van hierdie diens.\
Wanneer hierdie **diens** geaktiveer is, is die toegang via **SSH sleutels gedeaktiveer.**
<figure><img src="../../../../images/image (328).png" alt=""><figcaption></figcaption></figure>
### Metadata
Dit is moontlik om **outomatisering** (userdata in AWS) te definieer wat **shell-opdragte** is wat elke keer uitgevoer sal word wanneer die masjien aanskakel of herbegin.
Dit is moontlik om **automatisering** (userdata in AWS) te definieer wat **shell-opdragte** is wat elke keer uitgevoer sal word wanneer die masjien aanskakel of herbegin.
Dit is ook moontlik om **bykomende metadata sleutel-waarde waardes** by te voeg wat vanaf die metadata eindpunt toeganklik gaan wees. Hierdie inligting word algemeen gebruik vir omgewingsveranderlikes en opstart/afskakel skripte. Dit kan verkry word met behulp van die **`describe` metode** van 'n opdrag in die enumerasie afdeling, maar dit kan ook van binne die instansie verkry word deur die metadata eindpunt te benader.
Dit is ook moontlik om **bykomende metadata sleutel-waarde waardes** toe te voeg wat vanaf die metadata eindpunt toeganklik gaan wees. Hierdie inligting word algemeen gebruik vir omgewingsveranderlikes en opstart/afskakel skripte. Dit kan verkry word met behulp van die **`describe` metode** van 'n opdrag in die enumerasie afdeling, maar dit kan ook van binne die instansie verkry word deur die metadata eindpunt te benader.
```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
Boonop, **auth token vir die aangehegte diensrekening** en **algemene inligting** oor die instansie, netwerk en projek is ook beskikbaar vanaf die **metadata eindpunt**. Vir meer inligting, kyk:
{{#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}}
### Enkripsie
'n Google-beheerde enkripsiesleutel word standaard gebruik, maar 'n Klant-beheerde enkripsiesleutel (CMEK) kan gekonfigureer word. Jy kan ook konfigureer wat om te doen wanneer die gebruikte CMEK herroep word: Noting of die VM afsluit.
'n Google-beheerde enkripsiesleutel word standaard gebruik, maar 'n Klant-beheerde enkripsiesleutel (CMEK) kan gekonfigureer word. Jy kan ook konfigureer wat om te doen wanneer die gebruikte CMEF herroep word: Noting of die VM afsluit.
<figure><img src="../../../../images/image (329).png" alt=""><figcaption></figcaption></figure>

View File

@@ -17,7 +17,7 @@ As jy **toegang het tot 'n Cloud SQL-poort** omdat alle internet toegelaat word
Kyk na hierdie bladsy vir **verskillende gereedskap om te brute-force** verskillende databasis tegnologieë:
{{#ref}}
https://book.hacktricks.xyz/generic-methodologies-and-resources/brute-force
https://book.hacktricks.wiki/en/generic-hacking/brute-force.html
{{#endref}}
Onthou dat dit met sommige voorregte moontlik is om **alle databasisgebruikers** via GCP API te **lys**.

View File

@@ -15,11 +15,11 @@ Vir meer inligting oor Compute en VPC (Netwerk) kyk:
As 'n web **kwetsbaar is vir SSRF** en dit moontlik is om die **metadata kop** by te voeg, kan 'n aanvaller dit misbruik om toegang te verkry tot die SA OAuth-token vanaf die metadata-eindpunt. Vir meer inligting oor SSRF kyk:
{{#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}}
### Kwetsbare blootgestelde dienste
As 'n GCP-instansie 'n kwesbare blootgestelde diens het, kan 'n aanvaller dit misbruik om dit te kompromitteer.
As 'n GCP-instantie 'n kwetsbare blootgestelde diens het, kan 'n aanvaller dit misbruik om dit te kompromitteer.
{{#include ../../../banners/hacktricks-training.md}}