GWS - Google Platforms Phishing
Tip
Impara & pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara & pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara & pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sostieni HackTricks
- Controlla i subscription plans!
- Unisciti al 💬 Discord group o al telegram group o seguici su Twitter 🐦 @hacktricks_live.
- Condividi hacking tricks inviando PRs ai HackTricks e HackTricks Cloud github repos.
Metodologia Generica di Phishing
Phishing Methodology - HackTricks
Google Groups Phishing
Apparentemente, di default, in Workspace i membri possono creare gruppi e invitare persone in essi. Puoi poi modificare l’email che sarà inviata all’utente aggiungendo alcuni link. L’email arriverà da un indirizzo Google, quindi sembrerà legittima e le persone potrebbero cliccare sul link.
È anche possibile impostare l’indirizzo FROM come la Google group email per inviare più email agli utenti all’interno del gruppo, come nell’immagine seguente dove il gruppo google--support@googlegroups.com è stato creato e un email è stata inviata a tutti i membri del gruppo (aggiunti senza alcun consenso)
 (1).png)
Google Chat Phishing
Potresti riuscire a iniziare una chat con una persona avendo solo il suo indirizzo email o inviare un invito a parlare. Inoltre, è possibile creare uno Space che può avere qualsiasi nome (es. “Google Support”) e invitare membri. Se accettano potrebbero pensare di stare parlando con Google Support:
.png)
Tip
Nei miei test, però, i membri invitati non hanno nemmeno ricevuto l’invito.
Puoi vedere come funzionava in passato su: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s
Google Doc Phishing
In passato era possibile creare un documento apparentemente legittimo e poi in un commento menzionare un’email (es. @user@gmail.com). Google inviava un’email a quell’indirizzo notificando che erano stati menzionati nel documento.
Oggi questo non funziona, ma se dai all’email della vittima l’accesso al documento Google invierà un’email che lo indica. Questo è il messaggio che appare quando menzioni qualcuno:
.png)
Tip
Le vittime potrebbero avere meccanismi di protezione che non permettono che le email che indicano che un documento esterno è stato condiviso con loro arrivino alla loro casella.
Google Calendar Phishing
Puoi creare un evento del calendario e aggiungere quanti indirizzi email dell’azienda che stai attaccando vuoi. Pianifica questo evento del calendario tra 5 o 15 minuti dall’orario corrente. Fai sembrare l’evento legittimo e inserisci un commento e un titolo che indichino che devono leggere qualcosa (con il phishing link).
Questo è l’avviso che apparirà nel browser con un titolo della riunione “Firing People”, quindi potresti impostare un titolo più da phishing (e persino cambiare il nome associato alla tua email).
.png)
Per renderlo meno sospetto:
- Configuralo in modo che i destinatari non possano vedere le altre persone invitate
- NON inviare email di notifica dell’evento. Così, le persone vedranno solo l’avviso della riunione tra 5 minuti e che devono leggere quel link.
- Apparentemente usando l’API puoi impostare a True che le persone hanno accettato l’evento e persino creare commenti per conto loro.
App Scripts Redirect Phishing
È possibile creare uno script su https://script.google.com/ ed esporlo come web application accessibile da chiunque che utilizzerà il dominio legittimo script.google.com.
Con un codice come il seguente un attacker potrebbe far caricare contenuto arbitrario in questa pagina senza smettere di accedere al dominio:
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
Nota che apparirà un avviso poiché il contenuto viene caricato all’interno di un iframe.
App Scripts OAuth Phishing
È possibile creare App Scripts collegati ai documenti per cercare di ottenere accesso al token OAuth di una vittima; per maggiori informazioni consulta:
OAuth Apps Phishing
Qualsiasi delle tecniche precedenti potrebbe essere usata per far sì che l’utente acceda a una Google OAuth application che richiederà all’utente alcuni accessi. Se l’utente si fida della sorgente, potrebbe fidarsi dell’application (anche se sta chiedendo permessi con elevati privilegi).
Note
Nota che Google mostra un prompt poco chiaro che avverte che l’applicazione non è attendibile in diversi casi e gli amministratori di Workspace possono anche impedire agli utenti di accettare applicazioni OAuth.
Google permette di creare applicazioni che possono agire per conto degli utenti su diversi servizi Google: Gmail, Drive, GCP…
Quando si crea un’applicazione per agire per conto di altri utenti, lo sviluppatore deve creare un OAuth app inside GCP e indicare gli scope (permessi) di cui l’app ha bisogno per accedere ai dati degli utenti.
Quando un utente vuole usare quell’applicazione, gli verrà chiesto di accettare che l’app abbia accesso ai dati specificati negli scope.
Questo è un modo molto ghiotto per phishare utenti non tecnici inducendoli a usare application che accedono a informazioni sensibili, perché potrebbero non comprendere le conseguenze. Tuttavia, negli account organizzativi ci sono modi per prevenire che ciò accada.
Unverified App prompt
Come già accennato, Google presenterà sempre un prompt all’utente per accettare i permessi che sta concedendo all’applicazione per suo conto. Tuttavia, se l’app viene considerata pericolosa, Google mostrerà prima un prompt che indica che è pericolosa e rende più difficile per l’utente concedere i permessi all’app.
Questo prompt appare in app che:
- Usano qualsiasi scope che possa accedere a dati privati (Gmail, Drive, GCP, BigQuery…)
- App con meno di 100 utenti (per app > 100 è richiesto anche un processo di review per smettere di mostrare l’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 potrebbe essere interessante se hai già compromesso un utente dell’organizzazione e stai creando questa App per phishare un altro.
- Give a name to the app, a support email (nota che puoi impostare un indirizzo googlegroup per cercare di anonimizzarti un po’ di più), un logo, authorized domains e un altro email per updates.
- Select the OAuth scopes.
- Questa pagina è divisa in permessi non sensibili, permessi sensibili e permessi restricted. Ogni volta che aggiungi un nuovo permission viene inserito nella sua categoria. A seconda dei permessi richiesti appariranno prompt diversi all’utente che indicano quanto sono sensibili questi permessi.
- Sia
admin.directory.user.readonlychecloud-platformsono permessi sensibili.
- Add the test users. Finché lo stato dell’app è testing, solo questi utenti potranno accedere all’app, quindi assicurati di aggiungere l’email che intendi phishare.
Ora otteniamo le credentials for a web application usando il precedentemente creato OAuth Client ID:
- Torna a https://console.cloud.google.com/apis/credentials/oauthclient, questa volta apparirà un’opzione diversa.
- Seleziona di create credentials for a Web application
- Imposta i necessari Javascript origins e redirect URIs
- Per i test puoi impostare in entrambi qualcosa come
http://localhost:8000/callback
- Ottieni le credentials della tua applicazione
Infine, esegui una web application che utilizzi le credenziali dell’OAuth application. Puoi trovare un esempio 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>"
Vai su http://localhost:8000, clicca sul pulsante Login with Google, ti verrà mostrato un messaggio come questo:
.png)
L’applicazione mostrerà gli access and refresh token che possono essere facilmente utilizzati. Per maggiori informazioni su how to use these tokens check:
Using glcoud
È possibile fare alcune operazioni usando gcloud invece della console web, consulta:
GCP - ClientAuthConfig Privesc
OAuth app protections
Per impostazione predefinita è configurato che qualsiasi utente all’interno di un’organizzazione Workspace can accecpt any OAuth app with any permissions, ma è possibile limitarle solo alle app che richiedono le informazioni di base necessarie per Sign in with Google o non consentire alcuna third-party app.
Inoltre, anche non permettendo la fiducia verso external third-party apps, è possibile consentire di trust any internal apps (app create all’interno dell’organizzazione). Questa trust è configurata di default.

OAuth Consent Grant Abuse: Detection & Response (Admin Reports)
Quando un utente autorizza un OAuth app, Google Workspace lo registra in Admin Reports OAuth Token Audit Activity (application name token) con events.name impostato su authorize. Questi eventi sono la migliore telemetria per rilevare consent phishing e tracciare il client ID e gli scopes che sono stati concessi.
Campi chiave da estrarre dall’evento di audit:
id.time,id.customerIdactor.email,actor.profileIdipAddress,networkInfo.regionCode,networkInfo.subdivisionCodeevents[0]['parameters']valori perclient_id,app_name,scope,scope_data
Baseline first (reduce noise): costruisci un inventario dei client IDs e degli scopes esistenti, poi genera alert su consents nuovi/raramente usati.
gam all users print tokens todrive
Idee per il rilevamento (new/rare app + risky scopes):
- Avvisa se un
client_idè non in una allowlist approvata e non è stato visto negli ultimi X giorni (es., 90). - Avvisa se il
scopeconcesso include scope ad alto rischio o rari, specialmente quelli che permettono accesso massivo ai dati o impatto sulla supply-chain, come: 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)
Risposta / contenimento:
- Revoca i token per l’OAuth client ID malevolo:
gam all users delete tokens clientId <client_id>
- Bloccare l’OAuth client ID nella Admin Console revocando l’accesso dell’applicazione ai dati Google.
Pivot di threat hunting:
- Elenca le app esterne a cui hanno acconsentito meno di N utenti (adozione rara).
- Esamina il nome dell’app, il publisher, i permessi/scopes e l’ID univoco dell’applicazione.
- Cerca app inattive che improvvisamente utilizzano permessi rischiosi (possibili azioni successive come internal phishing o data theft).
Mitigazioni:
- Limitare l’accesso di tutte le app di terze parti (consentite solo se approvate dall’amministratore).
- Consentire accesso limitato in modo che gli utenti possano acconsentire solo alle informazioni di base del profilo “Sign in with Google”.
Riferimenti
- 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
Impara & pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara & pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara & pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sostieni HackTricks
- Controlla i subscription plans!
- Unisciti al 💬 Discord group o al telegram group o seguici su Twitter 🐦 @hacktricks_live.
- Condividi hacking tricks inviando PRs ai HackTricks e HackTricks Cloud github repos.
HackTricks Cloud

