GWS - Google Platforms Phishing
Tip
Nauči & vežbaj AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Pogledajte subscription plans!
- Pridružite se 💬 Discord group or the telegram group or pratite nas na Twitter 🐦 @hacktricks_live.
- Podelite hacking tricks slanjem PR-ova na HackTricks i HackTricks Cloud github repos.
Generic Phishing Methodology
Phishing Methodology - HackTricks
Google Groups Phishing
Izgleda da, po defaultu, u workspace članovi mogu da kreiraju grupe i pozivaju ljude u njih. Zatim možete izmeniti email koji će biti poslat korisniku dodajući neke linkove. Email će doći sa google adrese, pa će delovati verodostojno i ljudi mogu kliknuti na link.
Takođe je moguće podesiti FROM adresu kao Google group email da se pošalje više emailova korisnicima unutar grupe, kao na slici ispod gde je grupa google--support@googlegroups.com kreirana i je poslat email svim članovima grupe (koji su dodati bez ikakvog pristanka)
 (1).png)
Google Chat Phishing
Možda ćete moći ili da počnete chat sa osobom koristeći samo njihovu email adresu ili da pošaljete poziv za razgovor. Pored toga, moguće je kreirati Space koji može imati bilo koje ime (npr. “Google Support”) i pozvati članove u njega. Ako prihvate, mogu pomisliti da razgovaraju sa Google Support:
.png)
Tip
U mojim testovima, međutim, pozvani članovi nisu čak ni primili pozivnicu.
Možete proveriti kako je ovo radilo ranije na: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s
Google Doc Phishing
Ranije je bilo moguće kreirati naizgled legitimni dokument i onda u komentaru pomenuti neku email adresu (npr. @user@gmail.com). Google je poslao email na tu adresu obaveštavajući da je pomenuta u dokumentu.
Danas to ne radi, ali ako date žrtvinom emailu pristup dokumentu Google će poslati email koji to navodi. Ovo je poruka koja se pojavljuje kada nekoga pomenete:
.png)
Tip
Žrtve mogu imati mehanizam zaštite koji ne dozvoljava da emailovi koji ukazuju da im je eksterni dokument podeljen stignu do njihovog inboxa.
Google Calendar Phishing
Možete kreirati calendar event i dodati onoliko email adresa iz kompanije koju napadate koliko imate. Zakazite ovaj calendar event na 5 ili 15 min od trenutnog vremena. Neka događaj izgleda legitimno i dodajte komentar i naslov koji ukazuje da treba da pročitaju nešto (sa phishing linkom).
Ovo je upozorenje koje će se pojaviti u browseru sa naslovom sastanka “Firing People”, pa možete postaviti naslov koji više podseća na phishing (i čak promeniti ime povezano sa vašim emailom).
.png)
Da bi delovalo manje sumnjivo:
- Podesite tako da primalaci ne mogu videti ostale pozvane osobe
- NE šaljite emailove koji obaveštavaju o događaju. Tada će ljudi videti samo svoje upozorenje o sastanku za 5 minuta i da treba da pročitaju taj link.
- Navodno koristeći API možete postaviti na True da ljudi imaju prihvatili događaj i čak kreirati komentare u njihovo ime.
App Scripts Redirect Phishing
Moguće je kreirati skript na https://script.google.com/ i izložiti ga kao web aplikaciju dostupnu svima koja će koristiti legitimnu domenu script.google.com.
Sa nekim kodom poput sledećeg, napadač bi mogao naterati skript da učita proizvoljan sadržaj na ovoj stranici bez napuštanja domene:
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)
}
For example accessing https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec you will see:
 (1).png)
Tip
Obratite pažnju da će se pojaviti upozorenje jer se sadržaj učitava unutar iframe-a.
App Scripts OAuth Phishing
It’s possible to create App Scripts attached to documents to try to get access over a victims OAuth token, for more information check:
OAuth Apps Phishing
Bilo koja od prethodnih tehnika može biti iskorišćena da naterate korisnika da pristupi Google OAuth application koja će korisniku request-ovati određeni access. Ako korisnik trusts izvor, može poverovati aplikaciji (čak i ako traži visokopravne permissions).
Note
Imajte na umu da Google u nekoliko slučajeva prikazuje neprivlačan prompt koji upozorava da je aplikacija nepouzdana, i Workspace admini čak mogu sprečiti korisnike da prihvate OAuth aplikacije.
Google omogućava kreiranje aplikacija koje mogu interact on behalf users sa više Google services: Gmail, Drive, GCP…
Kada se kreira aplikacija da bi act on behalf other users, developer treba da napravi OAuth app inside GCP i navede scopes (permissions) koje aplikacija treba da pristupi podacima korisnika.
Kada se user odluči da use tu application, biće mu prikazano da treba da accept da aplikacija ima pristup podacima navedenim u scopes.
Ovo je veoma povoljan način da se phish-uju ne-tehnički korisnici da koriste applications that access sensitive information, jer možda neće razumeti posledice. Međutim, na organizacionim nalozima postoje načini da se ovo spreči.
Unverified App prompt
Kao što je pomenuto, Google će uvek prikazati prompt to the user to accept dozvole koje daju aplikaciji u njihovo ime. Međutim, ako se aplikacija smatra dangerous, Google će prvo prikazati prompt koji ukazuje da je dangerous i time making it more difficult korisniku da dodeli dozvole aplikaciji.
This prompt appears in apps that:
- Use any scope that can access private data (Gmail, Drive, GCP, BigQuery…)
- Apps with less than 100 users (apps > 100 a review process is also needed to stop showing the unverified prompt)
Interesting Scopes
Here you can find a list of all the Google OAuth scopes.
- cloud-platform: View and manage your data across Google Cloud Platform services. You can impersonate the user in GCP.
- admin.directory.user.readonly: See and download your organization’s GSuite directory. Get names, phones, calendar URLs of all the users.
Create an OAuth App
Start creating an OAuth Client ID
- Go to https://console.cloud.google.com/apis/credentials/oauthclient and click on configure the consent screen.
- Then, you will be asked if the user type is internal (only for people in your org) or external. Select the one that suits your needs
- Internal might be interesting you have already compromised a user of the organization and you are creating this App to phish another one.
- Give a name to the app, a support email (note that you can set a googlegroup email to try to anonymize yourself a bit more), a logo, authorized domains and another email for updates.
- Select the OAuth scopes.
- This page is divided in non sensitive permissions, sensitive permissions and restricted permissions. Eveytime you add a new permisison it’s added on its category. Depending on the requested permissions different prompt will appear to the user indicating how sensitive these permissions are.
- Both
admin.directory.user.readonlyandcloud-platformare sensitive permissions.
- Add the test users. As long as the status of the app is testing, only these users are going to be able to access the app so make sure to add the email you are going to be phishing.
Now let’s get credentials for a web application using the previously created OAuth Client ID:
- Go back to https://console.cloud.google.com/apis/credentials/oauthclient, a different option will appear this time.
- Select to create credentials for a Web application
- Set needed Javascript origins and redirect URIs
- You can set in both something like
http://localhost:8000/callbackfor testing
- Get your application credentials
Finally, lets run a web application that will use the OAuth application credentials. You can find an example in https://github.com/carlospolop/gcp_oauth_phishing_example.
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 Login with Google — pojaviće vam se poruka kao ova:
.png)
Aplikacija će prikazati access and refresh token koji se lako mogu iskoristiti. Za više informacija o kako koristiti ove tokene pogledajte:
Korišćenje glcoud
Moguće je uraditi isto koristeći gcloud umesto web konzole, pogledajte:
GCP - ClientAuthConfig Privesc
Zaštita OAuth aplikacija
Po defaultu je podešeno da bilo koji korisnik unutar Workspace organizacije može prihvatiti bilo koju OAuth aplikaciju sa bilo kojim dozvolama, ali moguće je ograničiti to samo na aplikacije koje traže osnovne informacije potrebne za Sign in with Google ili da se ne dozvole aplikacije trećih strana.
Štaviše, čak i ako se ne dozvoli poverenje eksternim third-party apps, moguće je dozvoliti da se poveruje bilo kojim internim aplikacijama (aplikacijama kreiranim unutar organizacije). Ovo poverenje je podešeno po defaultu.

OAuth Consent Grant Abuse: Detection & Response (Admin Reports)
Kada korisnik autorizuje OAuth aplikaciju, Google Workspace beleži to u Admin Reports OAuth Token Audit Activity (ime aplikacije token) sa events.name postavljenim na authorize. Ovi događaji su najbolja telemetrija za otkrivanje consent phishing-a i praćenje client ID i scopes koji su dodeljeni.
Ključna polja koja treba izdvojiti iz audit događaja:
id.time,id.customerIdactor.email,actor.profileIdipAddress,networkInfo.regionCode,networkInfo.subdivisionCodeevents[0]['parameters']values forclient_id,app_name,scope,scope_data
Baseline first (reduce noise): napravite inventar postojećih client IDs i scopes, zatim postavite upozorenja za nove/retke consente.
gam all users print tokens todrive
Ideje za detekciju (nova/retka aplikacija + rizični scopes):
- Upozori ako
client_idnije na odobrenoj allowlisti i nije viđen poslednjih X dana (npr. 90). - Upozori ako dodeljeni
scopeuključuje visokorizične ili retke scopes, posebno one koji omogućavaju pristup velikim količinama podataka ili uticaj na lanac snabdevanja, kao što su: https://mail.google.com/https://www.googleapis.com/auth/gmail.readonlyhttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.readonlyhttps://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chromewebstore
client_id NOT IN approved_client_ids
AND client_id NOT IN last_seen_90d
AND scope CONTAINS any(high_risk_scopes OR rare_scopes)
Odgovor / suzbijanje:
- Poništite tokene za zlonamerni OAuth client ID:
gam all users delete tokens clientId <client_id>
- Blokirajte OAuth client ID u Admin Console opozivanjem pristupa aplikacije Google podacima.
Threat hunting pivots:
- Navedite external apps kojima je saglasnost dalo manje od N korisnika (retka upotreba).
- Pregledajte app name, publisher, permissions/scopes i unique application ID.
- Potražite dormant apps koje iznenada koriste risky permissions (moguće dalje akcije kao internal phishing ili data theft).
Mitigacije:
- Ograničite pristup svim third-party aplikacijama (samo admin-approved).
- Dozvolite ograničen pristup tako da korisnici mogu dati saglasnost samo za osnovne “Sign in with Google” profile info.
References
- 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 - Mike Felch and Beau Bullock - OK Google, How do I Red Team GSuite?
- https://redcanary.com/blog/threat-detection/google-workspace-oauth-attack/
- https://github.com/GAM-team/GAM
Tip
Nauči & vežbaj AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Pogledajte subscription plans!
- Pridružite se 💬 Discord group or the telegram group or pratite nas na Twitter 🐦 @hacktricks_live.
- Podelite hacking tricks slanjem PR-ova na HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

