GWS - Google Platforms Phishing
Reading time: 9 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Generic Phishing Methodology
Phishing Methodology - HackTricks
Google Groups Phishing
A quanto pare, per impostazione predefinita, nei workspace i membri possono creare gruppi e invitare persone a farne parte. Puoi quindi modificare l'email che verrà inviata all'utente aggiungendo alcuni link. L'email verrà inviata da un indirizzo google, quindi sembrerà legittima e le persone potrebbero cliccare sul link.
È anche possibile impostare l'indirizzo FROM come l'email del gruppo Google per inviare ulteriori 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 (che sono stati aggiunti senza alcun consenso)
 (1).png)
Google Chat Phishing
Potresti essere in grado di iniziare una chat con una persona semplicemente avendo il suo indirizzo email o inviare un'invito a parlare. Inoltre, è possibile creare uno Spazio che può avere qualsiasi nome (ad es. "Google Support") e invitare membri a farne parte. Se accettano, potrebbero pensare di stare parlando con il supporto Google:
.png)
tip
Tuttavia, nei miei test i membri invitati non hanno nemmeno ricevuto un invito.
Puoi controllare come questo ha funzionato in passato in: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s
Google Doc Phishing
In passato era possibile creare un documento apparentemente legittimo e in un commento menzionare un'email (come @user@gmail.com). Google inviava un'email a quell'indirizzo email notificando che era stato menzionato nel documento.
Oggigiorno, questo non funziona più, ma se dai accesso al documento alla vittima 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 raggiungano la loro email.
Google Calendar Phishing
Puoi creare un evento di calendario e aggiungere quanti più indirizzi email dell'azienda che stai attaccando. Pianifica questo evento di calendario in 5 o 15 minuti dall'orario attuale. Fai sembrare l'evento legittimo e metti un commento e un titolo che indicano che devono leggere qualcosa (con il link di phishing).
Questo è l'avviso che apparirà nel browser con un titolo di riunione "Licenziare persone", quindi potresti impostare un titolo più simile al phishing (e persino cambiare il nome associato alla tua email).
.png)
Per farlo sembrare meno sospetto:
- Impostalo in modo che i destinatari non possano vedere le altre persone invitate
- NON inviare email che notificano l'evento. Così, le persone vedranno solo il loro avviso riguardo a una riunione tra 5 minuti e che devono leggere quel link.
- A quanto pare, utilizzando l'API puoi impostare su True che le persone hanno accettato l'evento e persino creare commenti a loro nome.
App Scripts Redirect Phishing
È possibile creare uno script in https://script.google.com/ e esporlo come un'applicazione web accessibile a tutti che utilizzerà il dominio legittimo script.google.com
.
Con un codice come il seguente, un attaccante potrebbe far caricare contenuti arbitrari 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)
}
Per esempio, accedendo a https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec vedrai:
 (1).png)
tip
Nota che apparirà un avviso mentre il contenuto viene caricato all'interno di un iframe.
App Scripts OAuth Phishing
È possibile creare App Scripts collegati a documenti per cercare di ottenere accesso al token OAuth di una vittima, per ulteriori informazioni controlla:
OAuth Apps Phishing
Qualsiasi delle tecniche precedenti potrebbe essere utilizzata per far accedere l'utente a un Google OAuth application che richiederà all'utente alcuni accessi. Se l'utente si fida della fonte, potrebbe fidarsi dell'applicazione (anche se sta chiedendo permessi ad alta privilegio).
note
Nota che Google presenta un brutto avviso che avvisa che l'applicazione non è affidabile in diversi casi e gli amministratori di Workspace possono persino impedire alle persone di accettare le applicazioni OAuth.
Google consente di creare applicazioni che possono interagire per conto degli utenti con 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 all'interno di GCP e indicare gli ambiti (permessi) di cui l'app ha bisogno per accedere ai dati degli utenti.
Quando un utente desidera utilizzare quell'applicazione, verrà richiesto di accettare che l'applicazione avrà accesso ai propri dati specificati negli ambiti.
Questo è un modo molto allettante per phishare utenti non tecnici nell'utilizzo di applicazioni che accedono a informazioni sensibili perché potrebbero non comprendere le conseguenze. Tuttavia, negli account delle organizzazioni, ci sono modi per prevenire che ciò accada.
Avviso di App non verificate
Come è stato menzionato, Google presenterà sempre un avviso all'utente per accettare i permessi che stanno dando all'applicazione per conto loro. Tuttavia, se l'applicazione è considerata pericolosa, Google mostrerà prima un avviso che indica che è pericolosa e rende più difficile per l'utente concedere i permessi all'app.
Questo avviso appare nelle app che:
- Usano qualsiasi ambito che può accedere a dati privati (Gmail, Drive, GCP, BigQuery...)
- App con meno di 100 utenti (per app > 100 è necessario anche un processo di revisione per smettere di mostrare l'avviso di non verifica)
Ambiti Interessanti
Qui puoi trovare un elenco di tutti gli ambiti OAuth di Google.
- cloud-platform: Visualizza e gestisci i tuoi dati attraverso i servizi di Google Cloud Platform. Puoi impersonare l'utente in GCP.
- admin.directory.user.readonly: Vedi e scarica la directory GSuite della tua organizzazione. Ottieni nomi, telefoni, URL del calendario di tutti gli utenti.
Crea un OAuth App
Inizia a creare un OAuth Client ID
- Vai a https://console.cloud.google.com/apis/credentials/oauthclient e clicca su configura la schermata di consenso.
- Poi, ti verrà chiesto se il tipo di utente è interno (solo per le persone nella tua organizzazione) o esterno. Seleziona quello che si adatta alle tue esigenze
- Interno potrebbe essere interessante se hai già compromesso un utente dell'organizzazione e stai creando questa App per phishingare un altro.
- Dai un nome all'app, un email di supporto (nota che puoi impostare un'email di googlegroup per cercare di anonimizzarti un po' di più), un logo, domini autorizzati e un'altra email per aggiornamenti.
- Seleziona gli ambiti OAuth.
- Questa pagina è divisa in permessi non sensibili, permessi sensibili e permessi ristretti. Ogni volta che aggiungi un nuovo permesso, viene aggiunto alla sua categoria. A seconda dei permessi richiesti, appariranno diversi avvisi all'utente indicando quanto siano sensibili questi permessi.
- Sia
admin.directory.user.readonly
checloud-platform
sono permessi sensibili.
- Aggiungi gli utenti di test. Finché lo stato dell'app è in fase di test, solo questi utenti potranno accedere all'app, quindi assicurati di aggiungere l'email che stai per phishingare.
Ora otteniamo credenziali per un'applicazione web utilizzando il precedentemente creato OAuth Client ID:
- Torna a https://console.cloud.google.com/apis/credentials/oauthclient, questa volta apparirà un'opzione diversa.
- Seleziona di creare credenziali per un'applicazione web
- Imposta i necessari origini Javascript e URI di reindirizzamento
- Puoi impostare in entrambi qualcosa come
http://localhost:8000/callback
per testare
- Ottieni le credenziali della tua applicazione
Infine, eseguiamo un'applicazione web che utilizzerà le credenziali dell'applicazione OAuth. 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 Accedi con Google, ti verrà richiesto un messaggio come questo:
.png)
L'applicazione mostrerà il token di accesso e il token di aggiornamento che possono essere facilmente utilizzati. Per ulteriori informazioni su come utilizzare questi token controlla:
Utilizzando glcoud
È possibile fare qualcosa utilizzando gcloud invece della console web, controlla:
GCP - ClientAuthConfig Privesc
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 e Beau Bullock - OK Google, come faccio a Red Team GSuite?
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.