GWS - Google Platforms Phishing

Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Metodologia Generica di Phishing

Phishing su Google Groups

Apparentemente, per impostazione predefinita, nei membri di workspace possono creare gruppi e invitare persone ad essi. È quindi possibile 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 fare clic sul link.

È anche possibile impostare l'indirizzo FROM come l'email del gruppo Google per inviare più email agli utenti all'interno del gruppo, come nell'immagine seguente in cui è stato creato il gruppo google--support@googlegroups.com e un'email è stata inviata a tutti i membri del gruppo (che sono stati aggiunti senza alcun consenso)

Phishing su Google Chat

Potresti essere in grado di avviare una chat con una persona avendo solo il loro indirizzo email o inviare un invito a parlare. Inoltre, è possibile creare uno Spazio che può avere qualsiasi nome (ad esempio "Supporto Google") e invitare membri ad esso. Se accettano, potrebbero pensare di stanno parlando con il Supporto Google:

Nel mio test, tuttavia, i membri invitati non hanno nemmeno ricevuto un invito.

Puoi vedere come funzionava in passato qui: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Phishing su Google Doc

In passato era possibile creare un documento apparentemente legittimo e poi in un commento menzionare qualche email (come @user@gmail.com). Google invierà un'email a quell'indirizzo email notificando che sono stati menzionati nel documento. Oggi questo non funziona più, ma se dai accesso all'email della vittima al documento, Google invierà un'email a riguardo. Questo è il messaggio che appare quando si menziona qualcuno:

Le vittime potrebbero avere meccanismi di protezione che impediscono che le email che indicano che un documento esterno è stato condiviso con loro raggiungano la loro email.

Phishing su Google Calendar

Puoi creare un evento nel calendario e aggiungere tanti indirizzi email dell'azienda che stai attaccando quanti ne hai. Programma questo evento nel calendario tra 5 o 15 minuti dall'orario attuale. Rendi l'evento credibile e aggiungi un commento e un titolo che indichi che devono leggere qualcosa (con il link di phishing).

Questo è l'avviso che apparirà nel browser con un titolo dell'incontro "Licenziamento di Persone", quindi potresti impostare un titolo più simile al phishing (e persino cambiare il nome associato alla tua email).

Per renderlo meno sospetto:

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

  • NON inviare email di notifica sull'evento. Quindi, le persone vedranno solo l'avviso di un incontro tra 5 minuti e che devono leggere quel link.

  • Apparentemente, utilizzando l'API, puoi impostare su True che le persone hanno accettato l'evento e persino creare commenti per loro.

Phishing di Reindirizzamento degli App Scripts

È possibile creare uno script in https://script.google.com/ ed esporlo come un'applicazione web accessibile da tutti che utilizzerà il dominio legittimo script.google.com. Quindi, con un codice come il seguente, un attaccante potrebbe far caricare alo script contenuti arbitrari in questa pagina senza interrompere l'accesso 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 comparirà un avviso poiché il contenuto viene caricato all'interno di un iframe.

Phishing OAuth degli App Scripts

È possibile creare App Scripts collegati ai documenti per cercare di ottenere accesso al token OAuth di una vittima, per ulteriori informazioni controlla:

pageGWS - App Scripts

Phishing delle App OAuth

Qualsiasi delle tecniche precedenti potrebbe essere utilizzata per far sì che l'utente acceda a un applicazione OAuth di Google che richiederà all'utente alcuni accessi. Se l'utente si fida della fonte, potrebbe fidarsi dell'applicazione (anche se richiede autorizzazioni ad alto livello).

Nota che Google presenta un brutto avviso che avverte che l'applicazione non è attendibile in diversi casi e gli amministratori di Workspace possono addirittura 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 app OAuth all'interno di GCP e indicare gli ambiti (autorizzazioni) di cui l'app ha bisogno per accedere ai dati degli utenti. Quando un utente desidera utilizzare quell'applicazione, gli verrà chiesto di accettare che l'applicazione abbia accesso ai loro dati specificati negli ambiti.

Questo è un modo molto efficace per phishing gli utenti non tecnici affinché utilizzino applicazioni che accedono a informazioni sensibili perché potrebbero non comprendere le conseguenze. Tuttavia, negli account delle organizzazioni, ci sono modi per impedire che ciò accada.

Avviso App non verificata

Come accennato, Google presenterà sempre un avviso all'utente per accettare le autorizzazioni che stanno concedendo all'applicazione per loro conto. Tuttavia, se l'applicazione è considerata pericolosa, Google mostrerà prima un avviso indicando che è pericolosa e rendendo più difficile per l'utente concedere le autorizzazioni all'app.

Questo avviso appare nelle app che:

  • Utilizzano 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 non verificato)

Ambiti Interessanti

Qui puoi trovare un elenco di tutti gli ambiti OAuth di Google.

  • cloud-platform: Visualizza e gestisci i tuoi dati su diversi servizi Google Cloud Platform. Puoi impersonare l'utente in GCP.

  • admin.directory.user.readonly: Visualizza e scarica la directory GSuite della tua organizzazione. Ottieni nomi, telefoni, URL del calendario di tutti gli utenti.

Creare un'app OAuth

Inizia a creare un ID client OAuth

  1. Vai su https://console.cloud.google.com/apis/credentials/oauthclient e fai clic su configurare lo schermo di consenso.

  2. Successivamente, ti verrà chiesto se il tipo di utente è interno (solo per le persone della 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 pescarne un altro.

  1. Dai un nome all'app, un indirizzo email di supporto (nota che puoi impostare un'email di googlegroup per cercare di rimanere anonimo), un logo, domini autorizzati e un'altra email per aggiornamenti.

  2. Seleziona gli ambiti OAuth.

  • Questa pagina è divisa in autorizzazioni non sensibili, autorizzazioni sensibili e autorizzazioni limitate. Ogni volta che aggiungi una nuova autorizzazione, viene aggiunta alla sua categoria. A seconda delle autorizzazioni richieste, verranno visualizzati diversi avvisi all'utente che indicano quanto siano sensibili tali autorizzazioni.

  • Sia admin.directory.user.readonly che cloud-platform sono autorizzazioni 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 pescare.

Ora otteniamo le credenziali per un'applicazione web utilizzando il ID client OAuth precedentemente creato:

  1. Torna su 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 gli origini Javascript necessari e gli URI di reindirizzamento

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

  1. Ottieni le credenziali dell'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, fai clic sul pulsante Accedi con Google, ti verrà richiesto un messaggio simile a questo:

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

pageGCP - Non-svc Persistance

Utilizzando gcloud

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

pageGCP - ClientAuthConfig Privesc

Riferimenti

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated