mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-26 20:54:14 -08:00
Translated ['src/pentesting-cloud/gcp-security/gcp-to-workspace-pivoting
This commit is contained in:
@@ -4,12 +4,12 @@
|
||||
|
||||
## **Van GCP na GWS**
|
||||
|
||||
### **Basiese beginsels van Domein Wye Delegasie**
|
||||
### **Basiese domeinwye delegasie**
|
||||
|
||||
Google Workspace se Domein-Wye delegasie laat 'n identiteitsobjek, hetsy 'n **eksterne app** van Google Workspace Marketplace of 'n interne **GCP Diensrekening**, toe om **data oor die Workspace namens gebruikers te verkry**.
|
||||
Google Workspace se domeinwye delegasie laat 'n identiteitsobjek, hetsy 'n **eksterne app** van Google Workspace Marketplace of 'n interne **GCP-diensrekening**, toe om **data oor die Workspace namens gebruikers te bekom**.
|
||||
|
||||
> [!NOTE]
|
||||
> Dit beteken basies dat **diensrekeninge** binne GCP projekte van 'n organisasie dalk in staat mag wees om **Workspace gebruikers** van dieselfde organisasie (of selfs van 'n ander) te **verpersoonlik**.
|
||||
> Dit beteken basies dat **diensrekeninge** binne GCP-projekte van 'n organisasie dalk in staat mag wees om **Workspace-gebruikers** van dieselfde organisasie (of selfs van 'n ander) te **verpersoonlik**.
|
||||
|
||||
Vir meer inligting oor hoe dit presies werk, kyk:
|
||||
|
||||
@@ -19,11 +19,11 @@ gcp-understanding-domain-wide-delegation.md
|
||||
|
||||
### Kompromitteer bestaande delegasie
|
||||
|
||||
As 'n aanvaller **toegang oor GCP gekompromitteer het** en **'n geldige Workspace gebruiker e-pos** (verkieslik **super admin**) van die maatskappy ken, kan hy **alle projekte** wat hy toegang het, **opnoem**, **alle SA's** van die projekte **opnoem**, kyk na watter **diensrekeninge hy toegang het**, en **herhaal** al hierdie stappe met elke SA wat hy kan verpersoonlik.\
|
||||
As 'n aanvaller **toegang oor GCP gekompromitteer het** en **'n geldige Workspace-gebruiker e-pos** (verkieslik **super admin**) van die maatskappy ken, kan hy **alle projekte** wat hy toegang het, **opnoem**, **alle SA's** van die projekte **opnoem**, kyk na watter **diensrekeninge hy toegang het**, en **herhaal** al hierdie stappe met elke SA wat hy kan verpersoonlik.\
|
||||
Met 'n **lys van al die diensrekeninge** waartoe hy **toegang** het en die lys van **Workspace** **e-posse**, kan die aanvaller probeer om **gebruikers met elke diensrekening te verpersoonlik**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Let daarop dat wanneer die domein wye delegasie gekonfigureer word, geen Workspace gebruiker benodig word nie, daarom is dit net nodig om **een geldige een te hê wat genoeg is en vereis word vir die verpersoonliking**.\
|
||||
> Let daarop dat wanneer die domeinwye delegasie gekonfigureer word, geen Workspace-gebruiker benodig word nie, daarom is dit net nodig om **een geldige te hê wat genoeg is en vereis word vir die verpersoonliking**.\
|
||||
> Die **privileges van die verpersoonlikte gebruiker sal egter gebruik word**, so as dit Super Admin is, sal jy toegang tot alles hê. As dit geen toegang het nie, sal dit nutteloos wees.
|
||||
|
||||
#### [GCP Genereer Delegasie Token](https://github.com/carlospolop/gcp_gen_delegation_token)
|
||||
@@ -44,14 +44,14 @@ Dit is 'n hulpmiddel wat die aanval kan uitvoer volgens hierdie stappe:
|
||||
2. Itereer oor elke projek hulpbron, en **enumerate GCP Service account resources** waartoe die aanvanklike IAM gebruiker toegang het met behulp van _GetIAMPolicy_.
|
||||
3. Itereer oor **elke diensrekening rol**, en vind ingeboude, basiese, en pasgemaakte rolle met _**serviceAccountKeys.create**_ toestemming op die teiken diensrekening hulpbron. Dit moet opgemerk word dat die Editor rol inherent hierdie toestemming het.
|
||||
4. Skep 'n **nuwe `KEY_ALG_RSA_2048`** private sleutel vir elke diensrekening hulpbron wat gevind is met relevante toestemming in die IAM beleid.
|
||||
5. Itereer oor **elke nuwe diensrekening en skep 'n `JWT`** **object** daarvoor wat saamgestel is uit die SA private sleutel akkrediteer en 'n OAuth omvang. Die proses om 'n nuwe _JWT_ object te skep sal **iterate op al die bestaande kombinasies van OAuth scopes** van die **oauth_scopes.txt** lys, ten einde al die delegasie moontlikhede te vind. Die lys **oauth_scopes.txt** word opgedateer met al die OAuth scopes wat ons gevind het om relevant te wees vir die misbruik van Workspace identiteite.
|
||||
5. Itereer oor **elke nuwe diensrekening en skep 'n `JWT`** **object** daarvoor wat saamgestel is uit die SA private sleutel akkrediteer en 'n OAuth omvang. Die proses om 'n nuwe _JWT_ object te skep sal **iterere oor al die bestaande kombinasies van OAuth omvange** van die **oauth_scopes.txt** lys, ten einde al die delegasie moontlikhede te vind. Die lys **oauth_scopes.txt** word opgedateer met al die OAuth omvange wat ons gevind het om relevant te wees vir die misbruik van Workspace identiteite.
|
||||
6. Die `_make_authorization_grant_assertion` metode onthul die noodsaaklikheid om 'n t**arget workspace user** te verklaar, verwys as _subject_, vir die generering van JWTs onder DWD. Terwyl dit mag lyk asof dit 'n spesifieke gebruiker vereis, is dit belangrik om te besef dat **DWD elke identiteit binne 'n domein beïnvloed**. Gevolglik, die skep van 'n JWT vir **enige domein gebruiker** beïnvloed al die identiteite in daardie domein, in ooreenstemming met ons kombinasie enumerasie kontrole. Eenvoudig gestel, een geldige Workspace gebruiker is voldoende om vorentoe te beweeg.\
|
||||
Hierdie gebruiker kan gedefinieer word in DeleFriend se _config.yaml_ lêer. As 'n teiken workspace gebruiker nie reeds bekend is nie, fasiliteer die hulpmiddel die outomatiese identifikasie van geldige workspace gebruikers deur domein gebruikers met rolle op GCP projekte te skandeer. Dit is belangrik om (weer) op te let dat JWTs domein-spesifiek is en nie vir elke gebruiker gegenereer word nie; daarom, die outomatiese proses teiken 'n enkele unieke identiteit per domein.
|
||||
Hierdie gebruiker kan in DeleFriend se _config.yaml_ lêer gedefinieer word. As 'n teiken workspace gebruiker nog nie bekend is nie, fasiliteer die hulpmiddel die outomatiese identifikasie van geldige workspace gebruikers deur domein gebruikers met rolle op GCP projekte te skandeer. Dit is belangrik om (weer) op te let dat JWTs domein-spesifiek is en nie vir elke gebruiker gegenereer word nie; daarom, die outomatiese proses teiken 'n enkele unieke identiteit per domein.
|
||||
7. **Enumerate and create a new bearer access token** vir elke JWT en valideer die token teen tokeninfo API.
|
||||
|
||||
#### [Gitlab's Python script](https://gitlab.com/gitlab-com/gl-security/threatmanagement/redteam/redteam-public/gcp_misc/-/blob/master/gcp_delegation.py)
|
||||
|
||||
Gitlab het [hierdie Python skrip](https://gitlab.com/gitlab-com/gl-security/gl-redteam/gcp_misc/blob/master/gcp_delegation.py) geskep wat twee dinge kan doen - lys die gebruiker gids en skep 'n nuwe administratiewe rekening terwyl dit 'n json met SA akkrediteer en die gebruiker om te verpersoonlik aandui. Hier is hoe jy dit sou gebruik:
|
||||
Gitlab het [hierdie Python skrip](https://gitlab.com/gitlab-com/gl-security/gl-redteam/gcp_misc/blob/master/gcp_delegation.py) geskep wat twee dinge kan doen - die gebruikersgids lys en 'n nuwe administratiewe rekening skep terwyl 'n json met SA akkrediteer en die gebruiker om te verpersoonlik aangedui word. Hier is hoe jy dit sou gebruik:
|
||||
```bash
|
||||
# Install requirements
|
||||
pip install --upgrade --user oauth2client
|
||||
@@ -77,28 +77,28 @@ pip install --upgrade --user oauth2client
|
||||
|
||||
Dit is moontlik om **Domein Wye Delegasies in** [**https://admin.google.com/u/1/ac/owl/domainwidedelegation**](https://admin.google.com/u/1/ac/owl/domainwidedelegation)** te kontroleer.**
|
||||
|
||||
'n Aanvaller met die vermoë om **diensrekeninge in 'n GCP-projek te skep** en **super admin voorregte in GWS kan 'n nuwe delegasie skep wat SAs toelaat om as sommige GWS gebruikers op te tree:**
|
||||
'n Aanvaller met die vermoë om **diensrekeninge in 'n GCP-projek** te **skep en super admin voorregte in GWS** kan 'n nuwe delegasie skep wat SAs toelaat om as sommige GWS-gebruikers op te tree:
|
||||
|
||||
1. **Genereer 'n Nuwe Diensrekening en Ooreenstemmende Sleutel Paar:** Op GCP kan nuwe diensrekening hulpbronne interaktief via die konsole of programmaties met direkte API-oproepe en CLI-gereedskap geproduseer word. Dit vereis die **rol `iam.serviceAccountAdmin`** of enige aangepaste rol toegerus met die **`iam.serviceAccounts.create`** **toestemming**. Sodra die diensrekening geskep is, sal ons voortgaan om 'n **verwante sleutel paar** te genereer (**`iam.serviceAccountKeys.create`** toestemming).
|
||||
1. **Genereer 'n Nuwe Diensrekening en Ooreenstemmende Sleutel Paar:** Op GCP kan nuwe diensrekening hulpbronne interaktief via die konsole of programmaties met direkte API-oproepe en CLI-gereedskap geproduseer word. Dit vereis die **rol `iam.serviceAccountAdmin`** of enige aangepaste rol toegerus met die **`iam.serviceAccounts.create`** **toestemming**. Sodra die diensrekening geskep is, sal ons voortgaan om 'n **verwante sleutel paar** (**`iam.serviceAccountKeys.create`** toestemming) te genereer.
|
||||
2. **Skep van 'n nuwe delegasie**: Dit is belangrik om te verstaan dat **slegs die Super Admin rol die vermoë het om globale Domein-Wye delegasie in Google Workspace op te stel** en Domein-Wye delegasie **kan nie programmaties opgestel word nie,** Dit kan slegs **handmatig** deur die Google Workspace **konsole** geskep en aangepas word.
|
||||
- Die skepping van die reël kan onder die bladsy **API kontroles → Bestuur Domein-Wye delegasie in Google Workspace Admin konsole** gevind word.
|
||||
3. **Hechting van OAuth skope voorreg**: Wanneer 'n nuwe delegasie gekonfigureer word, vereis Google slegs 2 parameters, die Klient ID, wat die **OAuth ID van die GCP Diensrekening** hulpbron is, en **OAuth skope** wat definieer watter API-oproepe die delegasie benodig.
|
||||
- Die **volledige lys van OAuth skope** kan [**hier**](https://developers.google.com/identity/protocols/oauth2/scopes) gevind word, maar hier is 'n aanbeveling: `https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/admin.directory.group, https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.domain, https://mail.google.com/, https://www.googleapis.com/auth/drive, openid`
|
||||
4. **Optree namens die teiken identiteit:** Op hierdie punt het ons 'n funksionerende gedelegeerde objek in GWS. Nou, **met die GCP Diensrekening privaat sleutel, kan ons API-oproepe uitvoer** (in die omvang gedefinieer in die OAuth skooparameter) om dit te aktiveer en **namens enige identiteit wat in Google Workspace bestaan op te tree**. Soos ons geleer het, sal die diensrekening toegangstokens genereer volgens sy behoeftes en volgens die toestemming wat hy het vir REST API toepassings.
|
||||
- Kontroleer die **vorige afdeling** vir sommige **gereedskap** om hierdie delegasie te gebruik.
|
||||
4. **Optree namens die teiken identiteit:** Op hierdie punt het ons 'n funksionerende gedelegeerde objek in GWS. Nou, **met die GCP Diensrekening private sleutel, kan ons API-oproepe uitvoer** (in die omvang gedefinieer in die OAuth skoop parameter) om dit te aktiveer en **namens enige identiteit wat in Google Workspace bestaan op te tree**. Soos ons geleer het, sal die diensrekening toegangstokens genereer volgens sy behoeftes en volgens die toestemming wat hy het vir REST API-toepassings.
|
||||
- Kontroleer die **vorige afdeling** vir 'n paar **gereedskap** om hierdie delegasie te gebruik.
|
||||
|
||||
#### Kruis-Organisatoriese delegasie
|
||||
|
||||
OAuth SA ID is globaal en kan gebruik word vir **kruis-organisatoriese delegasie**. Daar is geen beperking geïmplementeer om kruis-globale delegasie te voorkom nie. In eenvoudige terme, **diensrekeninge van verskillende GCP-organisasies kan gebruik word om domein-wye delegasie op ander Workspace-organisasies te konfigureer**. Dit sou beteken dat **slegs Super Admin toegang tot Workspace benodig word**, en nie toegang tot dieselfde GCP-rekening nie, aangesien die teenstander diensrekeninge en privaat sleutels op sy persoonlik beheer GCP-rekening kan skep.
|
||||
OAuth SA ID is globaal en kan gebruik word vir **kruis-organisatoriese delegasie**. Daar is geen beperking geïmplementeer om kruis-globale delegasie te voorkom nie. In eenvoudige terme, **diensrekeninge van verskillende GCP-organisasies kan gebruik word om domein-wye delegasie op ander Workspace-organisasies te konfigureer**. Dit sou beteken dat **slegs Super Admin toegang tot Workspace** benodig word, en nie toegang tot dieselfde GCP-rekening nie, aangesien die teenstander diensrekeninge en private sleutels op sy persoonlik beheerde GCP-rekening kan skep.
|
||||
|
||||
### Skep 'n Projek om Workspace te evalueer
|
||||
### Skep 'n Projek om Workspace te enumerate
|
||||
|
||||
Deur **standaard** het Workspace **gebruikers** die toestemming om **nuwe projekte te skep**, en wanneer 'n nuwe projek geskep word, ontvang die **skepper die Eienaar rol** daaroor.
|
||||
Deur **standaard** het Workspace **gebruikers** die toestemming om **nuwe projekte te skep**, en wanneer 'n nuwe projek geskep word, ontvang die **skepper die Eienaar rol** oor dit.
|
||||
|
||||
Daarom kan 'n gebruiker **'n projek skep**, **die** **API's** aktiveer om Workspace in sy nuwe projek te evalueer en probeer om dit te **evalueer**.
|
||||
Daarom kan 'n gebruiker **'n projek skep**, **die** **API's** aktiveer om Workspace in sy nuwe projek te enumerate en probeer om dit te **enumerate**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Om 'n gebruiker in staat te stel om Workspace te evalueer, benodig hy ook genoeg Workspace toestemming (nie elke gebruiker sal in staat wees om die gids te evalueer).
|
||||
> Om 'n gebruiker in staat te stel om Workspace te enumerate, benodig hy ook genoeg Workspace toestemming (nie elke gebruiker sal in staat wees om die gids te enumerate nie).
|
||||
```bash
|
||||
# Create project
|
||||
gcloud projects create <uniq-projec-name> --name=proj-name
|
||||
@@ -127,15 +127,15 @@ Kontroleer **meer enumerasie in**:
|
||||
U kan verdere inligting oor die `gcloud` vloei om aan te meld vind in:
|
||||
|
||||
{{#ref}}
|
||||
../gcp-persistence/gcp-non-svc-persistance.md
|
||||
../gcp-persistence/gcp-non-svc-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
Soos daar verduidelik is, kan gcloud die omvang **`https://www.googleapis.com/auth/drive`** aanvra wat 'n gebruiker in staat sou stel om toegang tot die gebruiker se drive te verkry.\
|
||||
As 'n aanvaller, as u die **fisies** die rekenaar van 'n gebruiker gekompromitteer het en die **gebruiker is steeds aangemeld** met sy rekening, kan u aanmeld deur 'n token met toegang tot die drive te genereer met:
|
||||
As 'n aanvaller, as u die rekenaar van 'n gebruiker **fisies** gecompromitteer het en die **gebruiker is steeds aangemeld** met sy rekening, kan u aanmeld deur 'n token met toegang tot die drive te genereer met:
|
||||
```bash
|
||||
gcloud auth login --enable-gdrive-access
|
||||
```
|
||||
As 'n aanvaller die rekenaar van 'n gebruiker kompromitteer, kan hy ook die lêer `google-cloud-sdk/lib/googlecloudsdk/core/config.py` wysig en die **`CLOUDSDK_SCOPES`** die omvang **`'https://www.googleapis.com/auth/drive'`** toevoeg:
|
||||
As 'n aanvaller die rekenaar van 'n gebruiker kompromitteer, kan hy ook die lêer `google-cloud-sdk/lib/googlecloudsdk/core/config.py` wysig en die **`CLOUDSDK_SCOPES`** die omvang **`'https://www.googleapis.com/auth/drive'`** byvoeg:
|
||||
|
||||
<figure><img src="../../../images/image (342).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
@@ -148,13 +148,13 @@ As 'n aanvaller die rekenaar van 'n gebruiker kompromitteer, kan hy ook die lêe
|
||||
|
||||
### Toegang tot bevoorregte GCP gebruikers
|
||||
|
||||
As 'n aanvaller volledige toegang oor GWS het, sal hy in staat wees om toegang te verkry tot groepe met bevoorregte toegang oor GCP of selfs gebruikers, daarom is dit gewoonlik meer "eenvoudig" om van GWS na GCP te beweeg net omdat **gebruikers in GWS hoë voorregte oor GCP het**.
|
||||
As 'n aanvaller volledige toegang oor GWS het, sal hy in staat wees om toegang te verkry tot groepe met bevoorregte toegang oor GCP of selfs gebruikers, daarom is dit gewoonlik "eenvoudiger" om van GWS na GCP te beweeg net omdat **gebruikers in GWS hoë voorregte oor GCP het**.
|
||||
|
||||
### Google Groups Bevoorregting Escalatie
|
||||
|
||||
Standaard kan gebruikers **vrylik by Workspace groepe van die Organisasie aansluit** en daardie groepe **kan GCP toestemmings** toegeken hê (kontroleer jou groepe in [https://groups.google.com/](https://groups.google.com/)).
|
||||
Standaard kan gebruikers **vrylik by Workspace groepe van die Organisasie aansluit** en daardie groepe **kan GCP toestemmings** toegeken hê (kyk jou groepe in [https://groups.google.com/](https://groups.google.com/)).
|
||||
|
||||
Deur die **google groups privesc** te misbruik, mag jy in staat wees om op te skaal na 'n groep met 'n soort bevoorregte toegang tot GCP.
|
||||
Deur die **google groups privesc** te misbruik, mag jy in staat wees om na 'n groep met 'n soort bevoorregte toegang tot GCP te eskaleer.
|
||||
|
||||
### Verwysings
|
||||
|
||||
|
||||
@@ -12,24 +12,24 @@ https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-met
|
||||
|
||||
Blykens, standaard kan werkruimte lede [**groepe skep**](https://groups.google.com/all-groups) **en mense na hulle nooi**. Jy kan dan die e-pos wat aan die gebruiker gestuur sal word **wysig deur 'n paar skakels by te voeg.** Die **e-pos sal van 'n google adres kom**, so dit sal **legitiem** lyk en mense mag op die skakel klik.
|
||||
|
||||
Dit is ook moontlik om die **FROM** adres as die **Google groep e-pos** in te stel om **meer e-posse aan die gebruikers binne die groep te stuur**, soos in die volgende beeld waar die groep **`google--support@googlegroups.com`** geskep is en 'n **e-pos aan al die lede** van die groep gestuur is (wat sonder enige toestemming bygevoeg is)
|
||||
Dit is ook moontlik om die **FROM** adres as die **Google groep e-pos** in te stel om **meer e-posse aan die gebruikers binne die groep** te stuur, soos in die volgende beeld waar die groep **`google--support@googlegroups.com`** geskep is en 'n **e-pos aan al die lede** van die groep gestuur is (wat sonder enige toestemming bygevoeg is)
|
||||
|
||||
<figure><img src="../../../images/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Google Chat Phishing
|
||||
|
||||
Jy mag in staat wees om of **'n gesprek te begin** met 'n persoon net deur hul e-pos adres te hê of 'n **uitnodiging om te praat** te stuur. Boonop is dit moontlik om **'n Ruimte te skep** wat enige naam kan hê (bv. "Google Ondersteuning") en **lede na dit uit te nooi**. As hulle aanvaar, mag hulle dink dat hulle met Google Ondersteuning praat:
|
||||
Jy mag in staat wees om of **'n gesprek te begin** met 'n persoon net deur hul e-pos adres te hê of 'n **uitnodiging om te praat** te stuur. Boonop is dit moontlik om **'n Ruimte te skep** wat enige naam kan hê (bv. "Google Support") en **lede na dit uit te nooi**. As hulle aanvaar, mag hulle dink dat hulle met Google Support praat:
|
||||
|
||||
<figure><img src="../../../images/image (6).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
> [!TIP]
|
||||
> **In my toetsing het die uitgenooide lede egter glad nie 'n uitnodiging ontvang nie.**
|
||||
> **In my toetse het die uitgenooide lede egter glad nie 'n uitnodiging ontvang nie.**
|
||||
|
||||
Jy kan kyk hoe dit in die verlede gewerk het in: [https://www.youtube.com/watch?v=KTVHLolz6cE\&t=904s](https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s)
|
||||
|
||||
## Google Doc Phishing
|
||||
|
||||
In die verlede was dit moontlik om 'n **blatant legitieme dokument** te skep en in 'n kommentaar **'n e-pos te noem (soos @user@gmail.com)**. Google **het 'n e-pos na daardie e-pos adres gestuur** om te laat weet dat hulle in die dokument genoem is.\
|
||||
In die verlede was dit moontlik om 'n **blijkbaar legitieme dokument** te skep en in 'n kommentaar **'n e-pos te noem (soos @user@gmail.com)**. Google **het 'n e-pos na daardie e-pos adres gestuur** om te laat weet dat hulle in die dokument genoem is.\
|
||||
Tans werk dit nie, maar as jy **die slagoffer se e-pos toegang tot die dokument gee**, sal Google 'n e-pos stuur wat dit aandui. Dit is die boodskap wat verskyn wanneer jy iemand noem:
|
||||
|
||||
<figure><img src="../../../images/image (7).png" alt=""><figcaption></figcaption></figure>
|
||||
@@ -39,22 +39,22 @@ Tans werk dit nie, maar as jy **die slagoffer se e-pos toegang tot die dokument
|
||||
|
||||
## Google Calendar Phishing
|
||||
|
||||
Jy kan **'n kalender gebeurtenis skep** en soveel e-pos adresse van die maatskappy wat jy aanval as wat jy het, byvoeg. Skeduleer hierdie kalender gebeurtenis in **5 of 15 min** vanaf die huidige tyd. Laat die gebeurtenis legitiem lyk en **sit 'n kommentaar en 'n titel wat aandui dat hulle iets moet lees** (met die **phishing skakel**).
|
||||
Jy kan **'n kalender gebeurtenis skep** en soveel e-pos adresse van die maatskappy wat jy aanval, byvoeg as wat jy het. Skeduleer hierdie kalender gebeurtenis in **5 of 15 min** vanaf die huidige tyd. Laat die gebeurtenis legitiem lyk en **sit 'n kommentaar en 'n titel wat aandui dat hulle iets moet lees** (met die **phishing skakel**).
|
||||
|
||||
Dit is die waarskuwing wat in die blaaiert sal verskyn met 'n vergadering titel "Mense Ontslae", so jy kan 'n meer phishing-agtige titel stel (en selfs die naam wat met jou e-pos geassosieer is, verander).
|
||||
Dit is die waarskuwing wat in die blaaier sal verskyn met 'n vergadering titel "Firing People", so jy kan 'n meer phishing-agtige titel stel (en selfs die naam wat met jou e-pos geassosieer is, verander).
|
||||
|
||||
<figure><img src="../../../images/image (8).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Om dit minder verdag te laat lyk:
|
||||
|
||||
- Stel dit op sodat **ontvangers nie die ander mense wat genooi is kan sien nie**
|
||||
- Stel dit op sodat **ontvangers nie die ander mense wat genooi is, kan sien nie**
|
||||
- Moet **nie e-posse stuur wat oor die gebeurtenis kennis gee nie**. Dan sal die mense net hul waarskuwing oor 'n vergadering in 5min sien en dat hulle daardie skakel moet lees.
|
||||
- Blykbaar kan jy met die API stel dat **mense** die gebeurtenis **aanvaar** het en selfs **kommentaar namens hulle skep**.
|
||||
|
||||
## App Scripts Redirect Phishing
|
||||
|
||||
Dit is moontlik om 'n skrip in [https://script.google.com/](https://script.google.com/) te skep en **dit as 'n webtoepassing bloot te stel wat deur almal toeganklik is** wat die legitieme domein **`script.google.com`** sal gebruik.\
|
||||
Met 'n paar kode soos die volgende kan 'n aanvaller die skrip laat laai willekeurige inhoud op hierdie bladsy sonder om die domein te stop:
|
||||
Met 'n paar kode soos die volgende kan 'n aanvaller die skrip laat laai arbitrêre inhoud op hierdie bladsy sonder om die domein te stop:
|
||||
```javascript
|
||||
function doGet() {
|
||||
return HtmlService.createHtmlOutput(
|
||||
@@ -71,7 +71,7 @@ Byvoorbeeld, deur toegang te verkry tot [https://script.google.com/macros/s/AKfy
|
||||
|
||||
## App Scripts OAuth Phishing
|
||||
|
||||
Dit is moontlik om App Scripts aan dokumente te koppel om te probeer om toegang te verkry tot 'n slagoffer se OAuth-token, vir meer inligting, kyk:
|
||||
Dit is moontlik om App Scripts aan dokumente te koppel om te probeer toegang te verkry tot 'n slagoffer se OAuth-token, vir meer inligting, kyk:
|
||||
|
||||
{{#ref}}
|
||||
gws-app-scripts.md
|
||||
@@ -79,25 +79,25 @@ gws-app-scripts.md
|
||||
|
||||
## OAuth Apps Phishing
|
||||
|
||||
Enige van die vorige tegnieke kan gebruik word om die gebruiker te laat toegang verkry tot 'n **Google OAuth-toepassing** wat die gebruiker om **toegang** sal vra. As die gebruiker die **bron** **vertrou**, kan hy die **toepassing** **vertrou** (selfs al vra dit vir hoë bevoorregte toestemmings).
|
||||
Enige van die vorige tegnieke kan gebruik word om die gebruiker toegang te laat verkry tot 'n **Google OAuth-toepassing** wat die gebruiker om **toegang** sal vra. As die gebruiker die **bron** **vertrou**, kan hy die **toepassing** **vertrou** (selfs al vra dit vir hoë bevoorregte toestemmings).
|
||||
|
||||
> [!NOTE]
|
||||
> Let daarop dat Google 'n lelike prompt aanbied wat waarsku dat die toepassing in verskeie gevalle nie vertrou word nie, en Workspace-administrateurs kan selfs voorkom dat mense OAuth-toepassings aanvaar.
|
||||
|
||||
**Google** laat toe om toepassings te skep wat kan **interaksie hê namens gebruikers** met verskeie **Google-dienste**: Gmail, Drive, GCP...
|
||||
|
||||
Wanneer 'n toepassing geskep word om **namens ander gebruikers** te **optree**, moet die ontwikkelaar 'n **OAuth-toepassing binne GCP** skep en die skope (toestemmings) aan te dui wat die toepassing nodig het om toegang tot die gebruikersdata te verkry.\
|
||||
Wanneer 'n **gebruiker** daardie **toepassing** wil **gebruik**, sal hulle **gevra** word om te **aanvaar** dat die toepassing toegang tot hul data sal hê soos gespesifiseer in die skope.
|
||||
Wanneer 'n toepassing geskep word om **namens ander gebruikers op te tree**, moet die ontwikkelaar 'n **OAuth-toepassing binne GCP** skep en die skope (toestemmings) aan dui wat die toepassing nodig het om toegang tot die gebruikersdata te verkry.\
|
||||
Wanneer 'n **gebruiker** daardie **toepassing** wil **gebruik**, sal hulle gevra word om te **aanvaar** dat die toepassing toegang tot hul data sal hê soos gespesifiseer in die skope.
|
||||
|
||||
Dit is 'n baie aantreklike manier om **phish** nie-tegniese gebruikers om **toepassings te gebruik wat sensitiewe inligting toegang gee** omdat hulle dalk nie die gevolge verstaan nie. Dit is egter in organisasies se rekeninge moontlik om te voorkom dat dit gebeur.
|
||||
|
||||
### Onverifieerde App-prompt
|
||||
|
||||
Soos genoem, sal Google altyd 'n **prompt aan die gebruiker aanbied om die** toestemmings wat hulle aan die toepassing gee, te **aanvaar**. As die toepassing egter as **gevaarlik** beskou word, sal Google **eerder** 'n **prompt** wys wat aandui dat dit **gevaarlik** is en **dit moeiliker maak** vir die gebruiker om die toestemmings aan die toepassing te gee.
|
||||
Soos genoem, sal Google altyd 'n **prompt aan die gebruiker aanbied om die** toestemmings wat hulle aan die toepassing gee, te aanvaar. As die toepassing egter as **gevaarlik** beskou word, sal Google **eerste** 'n **prompt** toon wat aandui dat dit **gevaarlik** is en **dit moeiliker maak** vir die gebruiker om die toestemmings aan die toepassing te gee.
|
||||
|
||||
Hierdie prompt verskyn in toepassings wat:
|
||||
|
||||
- Enige skope gebruik wat toegang tot private data kan verkry (Gmail, Drive, GCP, BigQuery...)
|
||||
- Enige skoop gebruik wat toegang tot privaat data kan verkry (Gmail, Drive, GCP, BigQuery...)
|
||||
- Toepassings met minder as 100 gebruikers (toepassings > 100 'n hersieningsproses is ook nodig om die onverifieerde prompt te stop)
|
||||
|
||||
### Interessante Skope
|
||||
@@ -105,28 +105,28 @@ Hierdie prompt verskyn in toepassings wat:
|
||||
[**Hier**](https://developers.google.com/identity/protocols/oauth2/scopes) kan jy 'n lys van al die Google OAuth-skope vind.
|
||||
|
||||
- **cloud-platform**: Beskou en bestuur jou data oor **Google Cloud Platform**-dienste. Jy kan die gebruiker in GCP naboots.
|
||||
- **admin.directory.user.readonly**: Sien en aflaai jou organisasie se GSuite-gids. Kry name, telefone, kalender-URL's van al die gebruikers.
|
||||
- **admin.directory.user.readonly**: Sien en laai jou organisasie se GSuite-gids af. Kry name, telefone, kalender-URL's van al die gebruikers.
|
||||
|
||||
### Skep 'n OAuth App
|
||||
|
||||
**Begin om 'n OAuth Client ID te skep**
|
||||
|
||||
1. Gaan na [https://console.cloud.google.com/apis/credentials/oauthclient](https://console.cloud.google.com/apis/credentials/oauthclient) en klik op konfigureer die toestemmingskerm.
|
||||
2. Dan sal jy gevra word of die **gebruiker tipe** **intern** (slegs vir mense in jou org) of **ekstern** is. Kies die een wat by jou behoeftes pas.
|
||||
- Intern kan interessant wees as jy reeds 'n gebruiker van die organisasie gecompromitteer het en jy hierdie App skep om 'n ander een te phish.
|
||||
3. Gee 'n **naam** aan die toepassing, 'n **ondersteunings-e-pos** (let daarop dat jy 'n googlegroup-e-pos kan stel om jouself 'n bietjie meer te anonimiseer), 'n **logo**, **geautoriseerde domeine** en 'n ander **e-pos** vir **opdaterings**.
|
||||
4. **Kies** die **OAuth-skope**.
|
||||
1. Gaan na [https://console.cloud.google.com/apis/credentials/oauthclient](https://console.cloud.google.com/apis/credentials/oauthclient) en klik op configure the consent screen.
|
||||
2. Dan sal jy gevra word of die **gebruiker tipe** **intern** (slegs vir mense in jou org) of **ekstern** is. Kies die een wat by jou behoeftes pas
|
||||
- Intern mag interessant wees as jy reeds 'n gebruiker van die organisasie gecompromitteer het en jy hierdie App skep om 'n ander een te phish.
|
||||
3. Gee 'n **naam** aan die app, 'n **ondersteunings e-pos** (let daarop dat jy 'n googlegroup e-pos kan stel om jouself 'n bietjie meer te anonimiseer), 'n **logo**, **geautoriseerde domeine** en 'n ander **e-pos** vir **opdaterings**.
|
||||
4. **Kies** die **OAuth skope**.
|
||||
- Hierdie bladsy is verdeel in nie-sensitiewe toestemmings, sensitiewe toestemmings en beperkte toestemmings. Elke keer as jy 'n nuwe toestemming byvoeg, word dit in sy kategorie bygevoeg. Afhangende van die aangevraagde toestemmings, sal verskillende prompts aan die gebruiker verskyn wat aandui hoe sensitief hierdie toestemmings is.
|
||||
- Beide **`admin.directory.user.readonly`** en **`cloud-platform`** is sensitiewe toestemmings.
|
||||
5. **Voeg die toetsgebruikers by.** Solank as wat die status van die toepassing toets is, sal slegs hierdie gebruikers toegang tot die toepassing hê, so maak seker om **die e-pos wat jy gaan phish** by te voeg.
|
||||
5. **Voeg die toetsgebruikers by.** Solank as die status van die app toets is, sal slegs hierdie gebruikers toegang tot die app hê, so maak seker om **die e-pos wat jy gaan phish** by te voeg.
|
||||
|
||||
Nou kom ons **kry kredensiale vir 'n webtoepassing** met behulp van die **voorheen geskepte OAuth Client ID**:
|
||||
|
||||
1. Gaan terug na [https://console.cloud.google.com/apis/credentials/oauthclient](https://console.cloud.google.com/apis/credentials/oauthclient), 'n ander opsie sal hierdie keer verskyn.
|
||||
2. Kies om **kredensiale vir 'n webtoepassing te skep**.
|
||||
3. Stel nodige **Javascript oorspronge** en **herlei URI's** in.
|
||||
- Jy kan in albei iets soos **`http://localhost:8000/callback`** vir toetsing stel.
|
||||
4. Kry jou toepassing se **kredensiale**.
|
||||
2. Kies om **kredensiale vir 'n webtoepassing te skep**
|
||||
3. Stel nodige **Javascript oorspronge** en **herlei URI's** in
|
||||
- Jy kan in albei iets soos **`http://localhost:8000/callback`** vir toetsing stel
|
||||
4. Kry jou toepassing se **kredensiale**
|
||||
|
||||
Laastens, laat ons **'n webtoepassing uitvoer wat die OAuth-toepassing se kredensiale sal gebruik**. Jy kan 'n voorbeeld vind in [https://github.com/carlospolop/gcp_oauth_phishing_example](https://github.com/carlospolop/gcp_oauth_phishing_example).
|
||||
```bash
|
||||
@@ -142,7 +142,7 @@ Gaan na **`http://localhost:8000`** en klik op die Login with Google-knoppie, jy
|
||||
Die toepassing sal die **toegang en hernu token** wys wat maklik gebruik kan word. Vir meer inligting oor **hoe om hierdie tokens te gebruik, kyk**:
|
||||
|
||||
{{#ref}}
|
||||
../../gcp-security/gcp-persistence/gcp-non-svc-persistance.md
|
||||
../../gcp-security/gcp-persistence/gcp-non-svc-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
#### Gebruik `glcoud`
|
||||
|
||||
Reference in New Issue
Block a user