GWS - Google Platforms Phishing

Wesprzyj HackTricks

Ogólna Metodologia Phishingu

Phishing w Google Groups

Wygląda na to, że domyślnie w członkowie workspace mogą tworzyć grupy i zapraszać do nich ludzi. Następnie można zmodyfikować e-mail, który zostanie wysłany do użytkownika, dodając kilka linków. E-mail będzie pochodził z adresu google, więc będzie wyglądał wiarygodnie, i ludzie mogą kliknąć w link.

Możliwe jest również ustawienie adresu FROM jako e-mail grupy Google, aby wysłać więcej e-maili do użytkowników wewnątrz grupy, jak na poniższym obrazku, gdzie grupa google--support@googlegroups.com została utworzona, a e-mail został wysłany do wszystkich członków grupy (którzy zostali dodani bez zgody)

Phishing w Google Chat

Możesz albo rozpocząć czat z osobą, znając tylko jej adres e-mail, albo wysłać zaproszenie do rozmowy. Ponadto możliwe jest utworzenie Przestrzeni, która może mieć dowolną nazwę (np. "Wsparcie Google") i zaproszenie do niej członków. Jeśli zaakceptują, mogą myśleć, że rozmawiają z Wsparciem Google:

Jednakże w moich testach zaproszeni członkowie nawet nie otrzymali zaproszenia.

Możesz sprawdzić, jak to działało w przeszłości pod adresem: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Phishing w Google Doc

W przeszłości było możliwe stworzenie rzekomo autentycznego dokumentu i w komentarzu wspomnieć o jakimś adresie e-mail (np. @user@gmail.com). Google wysłał e-mail na ten adres e-mailowy informując, że został wspomniany w dokumencie. Obecnie to nie działa, ale jeśli udostępnisz ofierze e-mail dostęp do dokumentu, Google wyśle e-mail z taką informacją. Oto komunikat, który się pojawi, gdy kogoś wspomnisz:

Ofiary mogą mieć mechanizmy ochronne, które nie pozwalają na dotarcie do ich e-maili informacji o udostępnieniu im zewnętrznego dokumentu.

Phishing w Google Calendar

Możesz utworzyć wydarzenie kalendarzowe i dodać tyle adresów e-mail firmę, którą atakujesz, ile chcesz. Zaplanuj to wydarzenie kalendarzowe na 5 lub 15 minut od aktualnego czasu. Spraw, aby wydarzenie wyglądało wiarygodnie i dodaj komentarz i tytuł wskazujący, że muszą przeczytać coś (z linkiem phishingowym).

To jest alert, który pojawi się w przeglądarce z tytułem spotkania "Zwalnianie Ludzi", więc możesz ustawić bardziej phishingowy tytuł (i nawet zmienić nazwę powiązaną z twoim e-mailem).

Aby wyglądało to mniej podejrzanie:

  • Ustaw tak, aby odbiorcy nie mogli zobaczyć innych zaproszonych osób

  • NIE wysyłaj e-maili z powiadomieniem o wydarzeniu. Wtedy ludzie zobaczą tylko ostrzeżenie o spotkaniu za 5 minut i konieczności przeczytania tego linku.

  • Wygląda na to, że korzystając z API można ustawić na True, że osoby zaakceptowały wydarzenie i nawet tworzyć komentarze w ich imieniu.

Przekierowanie Phishingowe w Skryptach Aplikacji

Możliwe jest stworzenie skryptu w https://script.google.com/ i udostępnienie go jako aplikację internetową dostępną dla wszystkich, która będzie korzystać z prawdziwej domeny script.google.com. Następnie za pomocą kodu podobnego do poniższego atakujący mógłby sprawić, że skrypt będzie ładował dowolne treści na tej stronie bez przerywania dostępu do domeny:

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 przykład, przechodząc pod https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec zobaczysz:

Zauważ, że pojawi się ostrzeżenie, ponieważ zawartość jest ładowana wewnątrz ramki.

Phishing OAuth w skryptach aplikacji

Możliwe jest stworzenie skryptów aplikacji dołączonych do dokumentów w celu uzyskania dostępu do tokena OAuth ofiary, aby uzyskać więcej informacji sprawdź:

GWS - App Scripts

Phishing aplikacji OAuth

Którekolwiek z poprzednich technik może być użyty do zmuszenia użytkownika do dostępu do aplikacji Google OAuth, która będzie żądać od użytkownika pewnego dostępu. Jeśli użytkownik ufa źródłu, może zaufać aplikacji (nawet jeśli prosi o uprzywilejowane uprawnienia).

Zauważ, że Google prezentuje brzydki komunikat ostrzegający, że aplikacja jest niezaufana w kilku przypadkach, a administratorzy Workspace mogą nawet uniemożliwić akceptowanie aplikacji OAuth przez użytkowników.

Google pozwala tworzyć aplikacje, które mogą działać w imieniu użytkowników z wieloma usługami Google: Gmail, Dysk, GCP...

Tworząc aplikację do działania w imieniu innych użytkowników, deweloper musi stworzyć aplikację OAuth w GCP i wskazać zakresy (uprawnienia), których aplikacja potrzebuje do dostępu do danych użytkowników. Kiedy użytkownik chce użyć tej aplikacji, zostanie poproszony o zaakceptowanie faktu, że aplikacja będzie miała dostęp do ich danych określonych w zakresach.

Jest to bardzo skuteczny sposób na phishing nie-technicznych użytkowników do korzystania z aplikacji, które mają dostęp do wrażliwych informacji, ponieważ mogą nie zrozumieć konsekwencji. Jednakże, w przypadku kont organizacyjnych istnieją sposoby zapobiegania temu.

Komunikat o niezweryfikowanej aplikacji

Jak wspomniano, Google zawsze przedstawi komunikat użytkownikowi, aby zaakceptował uprawnienia, które udziela aplikacji w ich imieniu. Jednakże, jeśli aplikacja jest uważana za niebezpieczną, Google najpierw pokaże komunikat wskazujący, że jest niebezpieczna i utrudniający użytkownikowi udzielenie uprawnień aplikacji.

Ten komunikat pojawia się w aplikacjach, które:

  • Używają jakiegokolwiek zakresu, który może uzyskać dostęp do prywatnych danych (Gmail, Dysk, GCP, BigQuery...)

  • Aplikacje z mniej niż 100 użytkownikami (dla aplikacji > 100 konieczny jest również proces recenzji, aby przestać pokazywać komunikat o niezweryfikowanej aplikacji)

Interesujące zakresy

Tutaj znajdziesz listę wszystkich zakresów Google OAuth.

  • cloud-platform: Wyświetlaj i zarządzaj swoimi danymi w usługach Google Cloud Platform. Możesz podawać się za użytkownika w GCP.

  • admin.directory.user.readonly: Zobacz i pobierz katalog GSuite Twojej organizacji. Uzyskaj nazwy, numery telefonów, adresy URL kalendarza wszystkich użytkowników.

Utwórz aplikację OAuth

Zacznij od utworzenia identyfikatora klienta OAuth

  1. Przejdź do https://console.cloud.google.com/apis/credentials/oauthclient i kliknij, aby skonfigurować ekran zgody.

  2. Następnie zostaniesz zapytany, czy typ użytkownika to wewnętrzny (tylko dla osób w Twojej organizacji) lub zewnętrzny. Wybierz ten, który najlepiej odpowiada Twoim potrzebom

  • Wewnętrzny może być interesujący, jeśli już skompromitowałeś użytkownika organizacji i tworzysz tę aplikację, aby zrobić phishing innemu.

  1. Nadaj nazwę aplikacji, adres e-mail wsparcia (zauważ, że możesz ustawić adres e-mail googlegroup, aby spróbować bardziej się zanonimizować), logo, autoryzowane domeny i inny adres e-mail do aktualizacji.

  2. Wybierz zakresy OAuth.

  • Ta strona jest podzielona na uprawnienia niesensytywne, uprawnienia wrażliwe i uprawnienia ograniczone. Za każdym razem, gdy dodajesz nowe uprawnienie, jest ono dodawane do swojej kategorii. W zależności od żądanych uprawnień, różne komunikaty będą pojawiać się dla użytkownika, wskazując, jak wrażliwe są te uprawnienia.

  • Zarówno admin.directory.user.readonly jak i cloud-platform to uprawnienia wrażliwe.

  1. Dodaj użytkowników testowych. Dopóki status aplikacji jest testowy, tylko ci użytkownicy będą mogli uzyskać dostęp do aplikacji, więc upewnij się, że dodajesz e-mail, którym będziesz robić phishing.

Teraz uzyskaj dane uwierzytelniające dla aplikacji internetowej korzystając z wcześniej utworzonego identyfikatora klienta OAuth:

  1. Wróć do https://console.cloud.google.com/apis/credentials/oauthclient, tym razem pojawi się inna opcja.

  2. Wybierz utwórz dane uwierzytelniające dla aplikacji internetowej

  3. Ustaw wymagane pochodzenia Javascript i adresy URI przekierowania

  • Możesz ustawić w obu coś w rodzaju http://localhost:8000/callback do testów

  1. Uzyskaj swoje dane uwierzytelniające aplikacji

Wreszcie, uruchom aplikację internetową, która będzie korzystać z danych uwierzytelniających aplikacji OAuth. Przykład znajdziesz tutaj: 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>"

Przejdź do http://localhost:8000, kliknij przycisk Zaloguj się za pomocą Google, zostaniesz poproszony o wiadomość podobną do tej:

Aplikacja pokaże token dostępu i odświeżania, które można łatwo wykorzystać. Aby uzyskać więcej informacji na temat jak używać tych tokenów, sprawdź:

GCP - Non-svc Persistance

Korzystanie z gcloud

Możliwe jest zrobienie czegoś za pomocą gcloud zamiast konsoli internetowej, sprawdź:

GCP - ClientAuthConfig Privesc

Odnośniki

Wesprzyj HackTricks

Last updated