GWS - Google Platforms Phishing

Reading time: 9 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Generic Phishing Methodology

Phishing Methodology - HackTricks

Google Groups Phishing

Naime, po default-u, članovi u workspace-u mogu kreirati grupe 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)

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:

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

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:

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

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/ 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 videćete:

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:

GWS - App Scripts

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 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 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.
  1. 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.
  2. 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.
  1. 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, 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
  1. 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.

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:

Aplikacija će prikazati access i refresh token koji se mogu lako koristiti. Za više informacija o kako koristiti ove tokene proverite:

GCP - Token Persistence

Korišćenje glcoud

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

GCP - ClientAuthConfig Privesc

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks