GWS - Google Platforms Phishing

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Ogólna Metodologia Phishingu

Phishing w Google Groups

Podobno domyślnie w członkowie workspace mogą tworzyć grupy i zapraszać do nich osoby. 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 być w stanie rozpocząć czat z osobą mającą tylko jej adres e-mail lub wysłać zaproszenie do rozmowy. Ponadto możliwe jest utworzenie Przestrzeni, która może mieć dowolną nazwę (np. "Wsparcie Google") i zaproszenie członków do niej. 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 utworzenie rzekomo legalnego dokumentu i w komentarzu wspomnieć o jakimś adresie e-mail (np. @user@gmail.com). Google wysył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ą. To jest wiadomość, która się pojawi, gdy wspomnisz kogoś:

Ofiary mogą mieć mechanizm ochrony, który nie pozwala na dotarcie do ich e-maili informacji, że zewnętrzny dokument został z nimi udostępniony.

Phishing w Google Calendar

Możesz utworzyć wydarzenie kalendarzowe i dodać tyle adresów e-mail firmowych, ile masz. 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 informujących o wydarzeniu. Wtedy ludzie zobaczą tylko ostrzeżenie o spotkaniu za 5 minut i że muszą przeczytać ten link.

  • 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 utworzenie skryptu w https://script.google.com/ i udostępnienie go jako aplikację internetową dostępną dla wszystkich, która będzie korzystać z legalnej domeny script.google.com. Następnie za pomocą kodu jak poniżej 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ź:

pageGWS - App Scripts

Phishing Aplikacji OAuth

Którekolwiek z poprzednich technik może być użyty do zmuszenia użytkownika do Google OAuth application, 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 uprawnienia o wysokim poziomie).

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ą interagować w imieniu użytkowników z różnymi 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, ż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 udzielają 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 niewrażliwe, wrażliwe i 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 wrażliwe uprawnienia.

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

pageGCP - Non-svc Persistance

Korzystając z gcloud

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

pageGCP - ClientAuthConfig Privesc

Referencje

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated