Files
hacktricks-cloud/src/pentesting-cloud/workspace-security/gws-google-platforms-phishing

GWS - Google Platforms Phishing

{{#include ../../../banners/hacktricks-training.md}}

Generic Phishing Methodology

{{#ref}} https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodology {{#endref}}

Google Groups Phishing

Blijkbaar kan lede in die werkruimte groepe skep en mense na hulle uitnooi. Jy kan dan die e-pos wat aan die gebruiker gestuur sal word wysig deur 'n paar skakels by te voeg. Die e-pos sal van 'n google adres kom, so dit sal legitiem lyk en mense mag op die skakel klik.

Dit is ook moontlik om die FROM adres as die Google groep e-pos in te stel om meer e-posse aan die gebruikers binne die groep te stuur, soos in die volgende beeld waar die groep google--support@googlegroups.com geskep is en 'n e-pos aan al die lede van die groep gestuur is (wat sonder enige toestemming bygevoeg is)

Google Chat Phishing

Jy mag in staat wees om of 'n gesprek te begin met 'n persoon net deur hul e-pos adres te hê of 'n uitnodiging om te praat te stuur. Boonop is dit moontlik om 'n Ruimte te skep wat enige naam kan hê (bv. "Google Support") en lede na dit uit te nooi. As hulle aanvaar, mag hulle dink dat hulle met Google Support praat:

Tip

In my toetse het die uitgenooide lede egter glad nie 'n uitnodiging ontvang nie.

Jy kan kyk hoe dit in die verlede gewerk het in: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Doc Phishing

In die verlede was dit moontlik om 'n blijkbaar legitieme dokument te skep en in 'n kommentaar 'n e-pos te noem (soos @user@gmail.com). Google het 'n e-pos na daardie e-pos adres gestuur om te kennis te gee dat hulle in die dokument genoem is.
Tans werk dit nie, maar as jy die slagoffer se e-pos toegang tot die dokument gee, sal Google 'n e-pos stuur wat dit aandui. Dit is die boodskap wat verskyn wanneer jy iemand noem:

Tip

Slagoffers mag 'n beskermingsmeganisme hê wat nie toelaat dat e-posse wat aandui dat 'n eksterne dokument met hulle gedeel is, hul e-pos bereik nie.

Google Calendar Phishing

Jy kan 'n kalender gebeurtenis skep en soveel e-pos adresse van die maatskappy wat jy aanval as wat jy het, byvoeg. Skeduleer hierdie kalender gebeurtenis in 5 of 15 min vanaf die huidige tyd. Maak die gebeurtenis legitiem en sit 'n kommentaar en 'n titel wat aandui dat hulle iets moet lees (met die phishing skakel).

Dit is die waarskuwing wat in die blaaiert sal verskyn met 'n vergadering titel "Mense Ontslae", so jy kan 'n meer phishing-agtige titel stel (en selfs die naam wat met jou e-pos geassosieer word, verander).

Om dit minder verdag te laat lyk:

  • Stel dit op sodat ontvangers nie die ander mense wat uitgenooi is kan sien nie
  • Moet nie e-posse stuur wat oor die gebeurtenis kennis gee nie. Dan sal die mense net hul waarskuwing oor 'n vergadering in 5min sien en dat hulle daardie skakel moet lees.
  • Blijkbaar kan jy met die API stel dat waar dat mense die gebeurtenis aanvaar het en selfs kommentaar namens hulle skep.

App Scripts Redirect Phishing

Dit is moontlik om 'n skrip in https://script.google.com/ te skep en dit as 'n webtoepassing wat deur almal toeganklik is, bloot te stel wat die legitieme domein script.google.com sal gebruik.
Met 'n paar kode soos die volgende kan 'n aanvaller die skrip laat laai willekeurige inhoud op hierdie bladsy sonder om die domein te stop:

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

For example accessing https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec you will see:

Tip

Let daarop dat 'n waarskuwing sal verskyn terwyl die inhoud binne 'n iframe gelaai word.

App Scripts OAuth Phishing

Dit is moontlik om App Scripts aan dokumente te koppel om te probeer toegang te verkry oor 'n slagoffer se OAuth-token, vir meer inligting kyk:

{{#ref}} gws-app-scripts.md {{#endref}}

OAuth Apps Phishing

Enige van die vorige tegnieke kan gebruik word om die gebruiker toegang te laat verkry tot 'n Google OAuth-toepassing wat die gebruiker toestemming sal vraag. As die gebruiker die bron vertrou, kan hy die toepassing vertrou (selfs as dit vir hoë bevoorregte toestemmings vra).

Note

Let daarop dat Google 'n lelike prompt aanbied wat waarsku dat die toepassing onbetroubaar is in verskeie gevalle en Workspace-administrateurs kan selfs voorkom dat mense OAuth-toepassings aanvaar.

Google laat toe om toepassings te skep wat kan interaksie hê namens gebruikers met verskeie Google-dienste: Gmail, Drive, GCP...

Wanneer 'n toepassing geskep word om namens ander gebruikers op te tree, moet die ontwikkelaar 'n OAuth-toepassing binne GCP skep en die skope (toestemmings) aan dui wat die toepassing nodig het om toegang tot die gebruikersdata te verkry.
Wanneer 'n gebruiker daardie toepassing wil gebruik, sal hulle gevra word om te aanvaar dat die toepassing toegang tot hul data sal hê soos gespesifiseer in die skope.

Dit is 'n baie aantreklike manier om phish nie-tegniese gebruikers om toepassings te gebruik wat sensitiewe inligting toegang gee omdat hulle dalk nie die gevolge verstaan nie. Dit is egter in organisasies se rekeninge, daar is maniere om te voorkom dat dit gebeur.

Onverifieerde App-prompt

Soos genoem, sal Google altyd 'n prompt aan die gebruiker aanbied om die toestemmings wat hulle aan die toepassing gee, te aanvaar. As die toepassing egter as gevaarlik beskou word, sal Google eerste 'n prompt wys wat aandui dat dit gevaarlik is en dit moeiliker maak vir die gebruiker om die toestemmings aan die toepassing te gee.

Hierdie prompt verskyn in toepassings wat:

  • Enige skope gebruik wat toegang tot private data kan verkry (Gmail, Drive, GCP, BigQuery...)
  • Toepassings met minder as 100 gebruikers (toepassings > 100 'n hersieningsproses is ook nodig om die onverifieerde prompt te stop)

Interessante Skope

Hier kan jy 'n lys van al die Google OAuth-skope vind.

  • cloud-platform: Beskou en bestuur jou data oor Google Cloud Platform dienste. Jy kan die gebruiker in GCP naboots.
  • admin.directory.user.readonly: Sien en laai jou organisasie se GSuite-gids af. Kry name, telefone, kalender-URL's van al die gebruikers.

Skep 'n OAuth App

Begin om 'n OAuth Client ID te skep

  1. Gaan na https://console.cloud.google.com/apis/credentials/oauthclient en klik op konfigureer die toestemming skerm.
  2. Dan sal jy gevra word of die gebruiker tipe intern (slegs vir mense in jou org) of extern is. Kies die een wat by jou behoeftes pas
  • Intern mag interessant wees as jy reeds 'n gebruiker van die organisasie gecompromitteer het en jy hierdie App skep om 'n ander een te phish.
  1. Gee 'n naam aan die app, 'n ondersteunings e-pos (let daarop dat jy 'n googlegroup e-pos kan stel om jouself 'n bietjie meer te anonimiseer), 'n logo, geautoriseerde domeine en 'n ander e-pos vir opdaterings.
  2. Kies die OAuth skope.
  • Hierdie bladsy is verdeel in nie-sensitiewe toestemmings, sensitiewe toestemmings en beperkte toestemmings. Elke keer as jy 'n nuwe toestemming byvoeg, word dit in sy kategorie bygevoeg. Afhangende van die aangevraagde toestemmings sal verskillende prompts aan die gebruiker verskyn wat aandui hoe sensitief hierdie toestemmings is.
  • Beide admin.directory.user.readonly en cloud-platform is sensitiewe toestemmings.
  1. Voeg die toetsgebruikers by. Solank die status van die app toets is, sal slegs hierdie gebruikers toegang tot die app hê, so maak seker om die e-pos wat jy gaan phish by te voeg.

Nou kom ons kry kredensiale vir 'n webtoepassing met behulp van die voorheen geskepte OAuth Client ID:

  1. Gaan terug na https://console.cloud.google.com/apis/credentials/oauthclient, 'n ander opsie sal hierdie keer verskyn.
  2. Kies om kredensiale vir 'n webtoepassing te skep
  3. Stel nodige Javascript oorspronge en herlei URI's
  • Jy kan in albei iets soos http://localhost:8000/callback vir toetsing stel
  1. Kry jou toepassing se kredensiale

Laastens, laat ons 'n webtoepassing laat loop wat die OAuth-toepassing se kredensiale sal gebruik. Jy kan 'n voorbeeld vind 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>"

Gaan na http://localhost:8000 en klik op die Login with Google-knoppie, jy sal gevra word met 'n boodskap soos hierdie:

Die toepassing sal die toegang en hernu token wys wat maklik gebruik kan word. Vir meer inligting oor hoe om hierdie tokens te gebruik, kyk:

{{#ref}} ../../gcp-security/gcp-persistence/gcp-non-svc-persistance.md {{#endref}}

Gebruik glcoud

Dit is moontlik om iets te doen met gcloud in plaas van die webkonsol, kyk:

{{#ref}} ../../gcp-security/gcp-privilege-escalation/gcp-clientauthconfig-privesc.md {{#endref}}

Verwysings

{{#include ../../../banners/hacktricks-training.md}}