# GWS - Google Platforms Phishing

{{#include ../../../banners/hacktricks-training.md}}

## Generic Phishing Methodology

{{#ref}}
https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html
{{#endref}}

## Google Groups Phishing

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 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>

## Google Chat Phishing

Možda ćete moći da **započnete chat** sa osobom samo imajući njihovu email adresu ili da pošaljete **pozivnicu za razgovor**. Štaviše, moguće je **kreirati Space** koji može imati bilo koje ime (npr. "Google Support") i **pozvati** članove u njega. Ako prihvate, mogli bi pomisliti da razgovaraju sa Google podrškom:

<figure><img src="../../../images/image (6).png" alt=""><figcaption></figcaption></figure>

> [!TIP]
> **Međutim, u mom testiranju pozvani članovi nisu čak ni primili pozivnicu.**

Možete proveriti kako je to funkcionisalo u prošlosti na: [https://www.youtube.com/watch?v=KTVHLolz6cE\&t=904s](https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s)

## 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 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 nekoga spomenete:

<figure><img src="../../../images/image (7).png" alt=""><figcaption></figcaption></figure>

> [!TIP]
> Žrtve mogu imati mehanizam zaštite koji ne dozvoljava da emailovi koji ukazuju da je eksterni dokument podeljen sa njima stignu do njihove email adrese.

## Google Calendar Phishing

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 "Otpustanje ljudi", tako da možete 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 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**.

## App Scripts Redirect Phishing

Moguće je kreirati skriptu na [https://script.google.com/](https://script.google.com/) i **izložiti je kao web aplikaciju dostupnu svima** koja će koristiti legitimnu domenu **`script.google.com`**.\
Sa nekim kodom poput sledećeg, napadač bi mogao napraviti da skripta učita proizvoljan sadržaj na ovoj stranici bez prestanka pristupajući domeni:
```javascript
function doGet() {
return HtmlService.createHtmlOutput(
'<meta http-equiv="refresh" content="0;url=https://cloud.hacktricks.wiki/en/pentesting-cloud/workspace-security/gws-google-platforms-phishing/index.html#app-scripts-redirect-phishing">'
).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
}
```
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>

> [!TIP]
> Imajte na umu da će se pojaviti upozorenje dok se sadržaj učitava unutar iframe-a.

## App Scripts OAuth Phishing

Moguće je kreirati App Scripts povezane sa dokumentima kako bi se pokušalo dobiti pristup žrtvinom OAuth tokenu, za više informacija pogledajte:

{{#ref}}
gws-app-scripts.md
{{#endref}}

## 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 neka **prava**. Ako korisnik **veruje** **izvoru**, može **verovati** **aplikaciji** (čak i ako traži visoka privilegovana prava).

> [!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.

**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 **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.

### Unverified App prompt

Kao što je pomenuto, Google će uvek prikazati **poruku korisniku da prihvati** dozvole koje daju aplikaciji u njihovo ime. Međutim, ako se aplikacija smatra **opasnom**, Google će prvo prikazati **poruku** koja ukazuje da je **opasna** i **otežava** korisniku da odobri dozvole aplikaciji.

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 (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 vaše organizacije GSuite. Dobijate 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 **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 phishingujete drugog.
3. Dajte **ime** aplikaciji, **email za podršku** (imajte na umu da možete postaviti email googlegroup-a da biste pokušali da se malo više anonimno), **logo**, **ovlašćene domene** i drugi **email** za **ažuriranja**.
4. **Izaberite** **OAuth opsege**.
- Ova stranica je podeljena na neosetljive dozvole, osetljive dozvole i ograničene dozvole. Svaki put kada dodate novu dozvolu, ona se dodaje u svoju kategoriju. U zavisnosti od traženih dozvola, različite poruke će se pojaviti korisniku ukazujući koliko su te dozvole osetljive.
- 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 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čija opcija.
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 akreditive aplikacije

Na kraju, hajde da **pokrenemo web aplikaciju koja će koristiti akreditive OAuth aplikacije**. Primer možete pronaći 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
pip install flask requests google-auth-oauthlib
python3 app.py --client-id "<client_id>" --client-secret "<client_secret>"
```
Idite na **`http://localhost:8000`**, kliknite na dugme Prijavite se sa Google-om, bićete **upitani** sa porukom poput ove:

<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**:

{{#ref}}
../../gcp-security/gcp-persistence/gcp-non-svc-persistence.md
{{#endref}}

#### Korišćenje `glcoud`

Moguće je uraditi nešto koristeći gcloud umesto web konzole, proverite:

{{#ref}}
../../gcp-security/gcp-privilege-escalation/gcp-clientauthconfig-privesc.md
{{#endref}}

## 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?

{{#include ../../../banners/hacktricks-training.md}}
