GWS - Google Platforms Phishing

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Generička Metodologija Ribarenja

Google Grupno Ribarenje

Izgleda da, prema podrazumevanim podešavanjima, u workspace-u članovi mogu kreirati grupe i pozivati ljude u njih. Zatim možete izmeniti email koji će biti poslat korisniku dodavanjem nekih linkova. Email će doći sa google adrese, pa će izgledati legitimno i ljudi bi mogli kliknuti na link.

Takođe je moguće postaviti FROM adresu kao Google grupnu email da bi se poslalo više emailova korisnicima unutar grupe, kao na sledećoj slici gde je grupa google--support@googlegroups.com kreirana i email je poslat svim članovima grupe (koji su dodati bez ikakvog pristanka)

Google Chat Ribarenje

Možda ćete moći ili zapoceti chat sa osobom samo imajući njihovu email adresu ili poslati poziv za razgovor. Osim toga, moguće je kreirati Prostor koji može imati bilo koje ime (npr. "Google Podrška") i pozvati članove u njega. Ako prihvate, mogu pomisliti da razgovaraju sa Google podrškom:

Međutim, u mom testiranju pozvani članovi čak nisu ni primili poziv.

Možete proveriti kako je ovo funkcionisalo u prošlosti na: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Doc Ribarenje

Ranije je bilo moguće kreirati navodno legitimni dokument i onda u komentaru pomenuti neki email (kao @korisnik@gmail.com). Google bi poslao email na tu email adresu obaveštavajući ih da su pomenuti u dokumentu. Danas ovo ne funkcioniše, ali ako date žrtvi pristup dokumentu Google će poslati email koji to pokazuje. Ovo je poruka koja se pojavi kada nekoga pomenete:

Žrtve mogu imati mehanizam zaštite koji ne dozvoljava da emailovi koji ukazuju da je spoljni dokument podeljen sa njima stignu na njihov email.

Google Kalendar Ribarenje

Možete kreirati događaj u kalendaru i dodati koliko god email adresa kompanije koju napadate imate. Zakazati ovaj događaj u 5 ili 15 min od trenutnog vremena. Učiniti da događaj izgleda legitimno i dodati komentar i naslov koji ukazuju da treba da pročitaju nešto (sa phishing linkom).

Ovo je upozorenje koje će se pojaviti u pretraživaču sa naslovom sastanka "Otpuštanje ljudi", pa možete postaviti naslov koji više podseća na ribarenje (čak i promeniti ime povezano sa vašim emailom).

Da izgleda manje sumnjivo:

  • Podesite tako da primaoci ne mogu videti druge pozvane ljude

  • NE šaljite emailove obaveštavajući o događaju. Tada će ljudi videti samo upozorenje o sastanku za 5 minuta i da treba da pročitaju taj link.

  • Navodno, korišćenjem API-ja možete postaviti da ljudi su prihvatili događaj i čak kreirati komentare u njihovo ime.

App Scripts Redirect Ribarenje

Moguće je kreirati skriptu na https://script.google.com/ i izložiti je kao web aplikaciju dostupnu svima koja će koristiti legitimnu domenu script.google.com. Zatim, sa kodom poput sledećeg, napadač može napraviti skriptu koja će učitati proizvoljan sadržaj na ovoj stranici bez prestanka pristupa domenu:

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

Na primer, pristupanjem https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec videćete:

Imajte na umu da će se upozorenje pojaviti jer se sadržaj učitava unutar iframe-a.

App Scripts OAuth Phishing

Moguće je kreirati App Scripts povezane sa dokumentima kako bi se pokušalo dobiti pristup žrtvinom OAuth token-u, za više informacija pogledajte:

pageGWS - App Scripts

OAuth Aplikacije Phishing

Bilo koja od prethodnih tehnika može se koristiti kako bi se korisnik naterao da pristupi Google OAuth aplikaciji koja će zatražiti od korisnika neki pristup. Ako korisnik veruje izvoru, može verovati aplikaciji (čak i ako traži visoko privilegovane dozvole).

Imajte na umu da Google prikazuje ružno upozorenje koje upozorava da aplikacija nije pouzdana u nekoliko slučajeva, a administratori Workspace-a čak mogu sprečiti ljude da prihvate OAuth aplikacije.

Google dozvoljava kreiranje aplikacija koje mogu interagovati u ime korisnika sa različitim Google uslugama: Gmail, Drive, GCP...

Prilikom kreiranja aplikacije da deluje u ime drugih korisnika, programer mora kreirati OAuth aplikaciju unutar GCP-a i naznačiti opsege (dozvole) koje aplikacija treba da ima kako bi pristupila podacima korisnika. Kada korisnik želi da koristi tu aplikaciju, biće im zatraženo da prihvate da će aplikacija imati pristup njihovim podacima navedenim u opsezima.

Ovo je veoma primamljiv način da se fisira korisnike koji nisu tehnički pismeni da koriste aplikacije koje pristupaju osetljivim informacijama jer možda ne razumeju posledice. Međutim, u organizacijama postoje načini da se ovo spreči.

Upit za neproverenu aplikaciju

Kao što je pomenuto, Google će uvek prikazati upit korisniku da prihvati dozvole koje daju aplikaciji u njihovo ime. Međutim, ako se smatra da je aplikacija opasna, Google će prvo prikazati upozorenje koje ukazuje da je opasna i čini teže korisniku da odobri dozvole aplikaciji.

Ovo upozorenje se pojavljuje u aplikacijama koje:

  • Koriste bilo koji opseg koji može pristupiti privatnim podacima (Gmail, Drive, GCP, BigQuery...)

  • Aplikacije sa manje od 100 korisnika (za aplikacije > 100 takođe je potreban proces pregleda kako bi se zaustavilo prikazivanje upita za neproverenu aplikaciju)

Interesantni Opsezi

Ovde možete pronaći listu svih Google OAuth opsega.

  • cloud-platform: Pregledajte i upravljajte svojim podacima preko Google Cloud Platform usluga. Možete se predstavljati kao korisnik u GCP-u.

  • admin.directory.user.readonly: Pogledajte i preuzmite direktorijum GSuite organizacije. Dobijte imena, telefone, URL-ove kalendara svih korisnika.

Kreiranje OAuth Aplikacije

Započnite kreiranje OAuth Client ID-a

  1. Idite na https://console.cloud.google.com/apis/credentials/oauthclient i kliknite na konfigurišite ekran saglasnosti.

  2. Zatim će vas pitati da li je tip korisnika interni (samo za ljude u vašoj organizaciji) ili eksterni. Izaberite onaj koji odgovara vašim potrebama

  • Interni može biti interesantan ako ste već kompromitovali korisnika organizacije i kreirate ovu aplikaciju da biste fisirali još jednog.

  1. Dajte ime aplikaciji, podršku putem e-pošte (imajte na umu da možete postaviti googlegroup e-poštu da biste pokušali da se malo više anonimizujete), logo, ovlašćene domene i još jednu e-poštu za ažuriranja.

  2. Izaberite OAuth opsege.

  • Ova stranica je podeljena na neosetljive dozvole, osetljive dozvole i ograničene dozvole. Svaki put kada dodate novu dozvolu, dodaje se u svoju kategoriju. Zavisno od zahtevanih dozvola, korisniku će se pojaviti različiti upiti koji ukazuju na to koliko su osetljive te dozvole.

  • Obe admin.directory.user.readonly i cloud-platform su osetljive dozvole.

  1. Dodajte test korisnike. Dok je status aplikacije u testiranju, samo ovi korisnici će moći pristupiti aplikaciji, pa se pobrinite da dodate e-poštu koju ćete fisirati.

Sada da dobijemo poverilačke podatke za veb aplikaciju koristeći prethodno kreirani OAuth Client ID:

  1. Vratite se na https://console.cloud.google.com/apis/credentials/oauthclient, ovog puta će se pojaviti drugačija opcija.

  2. Izaberite da kreirate poverilačke podatke za veb aplikaciju

  3. Postavite potrebne Javascript origini i preusmeravanja URI-jeva

  • Možete postaviti u oba nešto poput http://localhost:8000/callback za testiranje

  1. Dobijte poverilačke podatke za vašu aplikaciju

Na kraju, pustimo veb aplikaciju koja će koristiti poverilačke podatke OAuth aplikacije. Primer možete pronaći na 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>"

Idite na http://localhost:8000 kliknite na dugme Prijavite se sa Google-om, bićete upitani sa porukom poput ove:

Aplikacija će prikazati pristupni i osvežavajući token koji se lako može koristiti. Za više informacija o kako koristiti ove tokene pogledajte:

pageGCP - Non-svc Persistance

Korišćenje gcloud

Moguće je nešto uraditi koristeći gcloud umesto web konzole, proverite:

pageGCP - ClientAuthConfig Privesc

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated