GWS - Google Platforms Phishing

Support HackTricks

Generic Phishing Methodology

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

Google Chat Phishing

Potresti essere in grado di iniziare una chat con una persona avendo solo 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:

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 qualche email (come @user@gmail.com). Google inviava un'email a quell'indirizzo email notificando che erano stati menzionati nel documento. Oggigiorno, questo non funziona, ma se dai accesso al documento alla vittima Google invierà un'email che lo indica. Questo è il messaggio che appare quando menzioni qualcuno:

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 nel calendario e aggiungere quanti più indirizzi email dell'azienda stai attaccando. Pianifica questo evento nel calendario tra 5 o 15 minuti dall'ora 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).

Per farlo sembrare meno sospetto:

  • Impostalo in modo che i destinatari non possano vedere le altre persone invitate

  • NON inviare email che notificano riguardo all'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.xyz/pentesting-cloud/workspace-security/gws-google-platforms-phishing#app-scripts-redirect-phishing">')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

Ad esempio, accedendo a https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec vedrai:

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:

GWS - App Scripts

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

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 App non verificata

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 (app > 100 è necessario anche un processo di revisione per smettere di mostrare l'avviso non verificato)

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

  1. Vai a https://console.cloud.google.com/apis/credentials/oauthclient e clicca su configura la schermata di consenso.

  2. Poi, ti verrà chiesto se il tipo di utente è interno (solo per le persone nella tua organizzazione) o esterno. Seleziona quello che meglio 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.

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

  2. 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 che cloud-platform sono permessi sensibili.

  1. 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 OAuth Client ID precedentemente creato:

  1. Torna a https://console.cloud.google.com/apis/credentials/oauthclient, questa volta apparirà un'opzione diversa.

  2. Seleziona di creare credenziali per un'applicazione web

  3. Imposta i necessari origini Javascript e URI di reindirizzamento

  • Puoi impostare in entrambi qualcosa come http://localhost:8000/callback per testare

  1. Ottieni le credenziali della tua applicazione

Infine, facciamo eseguire 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 a http://localhost:8000, clicca sul pulsante Accedi con Google, ti verrà richiesto un messaggio come questo:

L'applicazione mostrerà il token di accesso e di aggiornamento che possono essere facilmente utilizzati. Per ulteriori informazioni su come utilizzare questi token controlla:

GCP - Token Persistance

Utilizzando glcoud

È possibile fare qualcosa utilizzando gcloud invece della console web, controlla:

GCP - ClientAuthConfig Privesc

Riferimenti

Supporta HackTricks

Last updated