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

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)

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:

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:

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

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:

javascript
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:

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:

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

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

  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, eseguiamo un'applicazione web che utilizzerà le credenziali dell'applicazione OAuth. Puoi trovare un esempio in https://github.com/carlospolop/gcp_oauth_phishing_example.

bash
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:

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:

GCP - Token Persistence

Utilizzando glcoud

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

GCP - ClientAuthConfig Privesc

Riferimenti

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