GWS - Google Platforms Phishing

Support HackTricks

Generic Phishing Methodology

Google Groups Phishing

Najwyraźniej, domyślnie, w workspace członkowie mogą tworzyć grupy i zapraszać do nich ludzi. Możesz następnie 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ł legitnie 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 w grupie, 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 żadnej zgody)

Google Chat Phishing

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

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

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

Google Doc Phishing

W przeszłości możliwe było stworzenie pozornie legalnego dokumentu i w komentarzu wspomnieć o jakimś e-mailu (jak @user@gmail.com). Google wysłało e-mail na ten adres e-mail informując, że został wspomniany w dokumencie. Obecnie to nie działa, ale jeśli dajesz ofierze dostęp do dokumentu, Google wyśle e-mail informujący o tym. To jest wiadomość, która pojawia się, gdy wspominasz kogoś:

Ofiary mogą mieć mechanizm ochronny, który nie pozwala, aby e-maile informujące, że zewnętrzny dokument został z nimi udostępniony, dotarły do ich skrzynki e-mail.

Google Calendar Phishing

Możesz utworzyć wydarzenie kalendarza i dodać tyle adresów e-mail firmy, którą atakujesz, ile masz. Zaplanuj to wydarzenie kalendarza na 5 lub 15 minut od aktualnego czasu. Spraw, aby wydarzenie wyglądało legitnie i dodaj komentarz oraz tytuł wskazujący, że muszą coś przeczytać (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ł (a nawet zmienić nazwisko powiązane z twoim e-mailem).

Aby wyglądało to mniej podejrzanie:

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

  • NIE wysyłaj e-maili informujących o wydarzeniu. Wtedy ludzie zobaczą tylko swoje ostrzeżenie o spotkaniu za 5 minut i że muszą przeczytać ten link.

  • Najwyraźniej używając API możesz ustawić na True, że ludzie zaakceptowali wydarzenie i nawet stworzyć komentarze w ich imieniu.

App Scripts Redirect Phishing

Możliwe jest stworzenie skryptu w https://script.google.com/ i udostępnienie go jako aplikacji internetowej dostępnej dla wszystkich, która będzie używać legalnej domeny script.google.com. Z kodem takim jak poniżej, atakujący mógłby sprawić, że skrypt załadowałby dowolną treść na tej stronie bez przestawania uzyskiwania 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, uzyskując dostęp do https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec, zobaczysz:

Zauważ, że pojawi się ostrzeżenie, gdy zawartość jest ładowana w iframe.

Phishing OAuth w App Scripts

Możliwe jest stworzenie App Scripts powiązanych z dokumentami, aby spróbować uzyskać dostęp do tokena OAuth ofiary, aby uzyskać więcej informacji, sprawdź:

Phishing aplikacji OAuth

Każda z wcześniejszych technik może być użyta, aby skłonić użytkownika do uzyskania dostępu do aplikacji Google OAuth, która zażąda od użytkownika pewnych uprawnień. Jeśli użytkownik ufa źródłu, może ufać aplikacji (nawet jeśli prosi o uprawnienia o wysokim poziomie).

Zauważ, że Google przedstawia brzydki komunikat ostrzegawczy, że aplikacja jest nieufna w kilku przypadkach, a administratorzy Workspace mogą nawet zapobiec akceptacji aplikacji OAuth przez użytkowników.

Google pozwala na tworzenie aplikacji, które mogą działać w imieniu użytkowników z różnymi usługami Google: Gmail, Drive, GCP...

Podczas tworzenia aplikacji, aby działać w imieniu innych użytkowników, deweloper musi stworzyć aplikację OAuth w GCP i wskazać zakresy (uprawnienia), które aplikacja potrzebuje, aby uzyskać dostęp do danych użytkowników. Gdy 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.

To bardzo kuszący sposób na phishing użytkowników nietechnicznych do korzystania z aplikacji, które uzyskują dostęp do wrażliwych informacji, ponieważ mogą nie rozumieć konsekwencji. Jednak w kontach organizacyjnych istnieją sposoby, aby temu zapobiec.

Komunikat o niezweryfikowanej aplikacji

Jak wspomniano, Google zawsze przedstawia komunikat użytkownikowi do zaakceptowania uprawnień, które przyznają aplikacji w ich imieniu. Jednak jeśli aplikacja jest uważana za niebezpieczną, Google najpierw pokaże komunikat wskazujący, że jest niebezpieczna i utrudnia użytkownikowi przyznanie uprawnień aplikacji.

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

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

  • Aplikacje z mniej niż 100 użytkownikami (aplikacje > 100 wymagają również procesu przeglądu, aby przestać wyświetlać komunikat o niezweryfikowanej aplikacji)

Interesujące zakresy

Tutaj możesz znaleźć listę wszystkich zakresów Google OAuth.

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

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

Utwórz aplikację OAuth

Rozpocznij tworzenie 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 jest wewnętrzny (tylko dla osób w twojej organizacji) czy zewnętrzny. Wybierz ten, który odpowiada twoim potrzebom

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

  1. Podaj nazwę aplikacji, adres e-mail wsparcia (zauważ, że możesz ustawić adres e-mail grupy Google, 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 dodasz nowe uprawnienie, jest ono dodawane do swojej kategorii. W zależności od żądanych uprawnień różne komunikaty będą się pojawiać użytkownikowi, wskazując, jak wrażliwe są te uprawnienia.

  • Zarówno admin.directory.user.readonly, jak i cloud-platform są uprawnieniami wrażliwymi.

  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 adres e-mail, który zamierzasz phishingować.

Teraz uzyskajmy poświadczenia dla aplikacji internetowej używając 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, aby utworzyć poświadczenia dla aplikacji internetowej

  3. Ustaw potrzebne originy Javascript i URI przekierowania

  • Możesz ustawić w obu coś takiego jak http://localhost:8000/callback do testowania

  1. Uzyskaj swoje poświadczenia aplikacji

Na koniec uruchommy aplikację internetową, która będzie używać poświadczeń aplikacji OAuth. Możesz znaleźć przykład w 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, a pojawi się komunikat jak ten:

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

Używanie glcoud

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

Odniesienia

Wsparcie HackTricks

Last updated