GWS - Google Platforms Phishing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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)
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ć członków do niej. 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
W przeszłości możliwe było stworzenie pozornie legalnego dokumentu i w komentarzu wspomnieć o jakimś e-mailu (np. @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.
Możesz utworzyć wydarzenie w kalendarzu i dodać tyle adresów e-mail firmy, którą atakujesz, ile masz. Zaplanuj to wydarzenie w 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.
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:
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.
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ź:
GWS - App ScriptsKaż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.
Jak wspomniano, Google zawsze przedstawia komunikat użytkownikowi do zaakceptowania uprawnień, które nadają 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)
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.
Rozpocznij tworzenie identyfikatora klienta OAuth
Przejdź do https://console.cloud.google.com/apis/credentials/oauthclient i kliknij, aby skonfigurować ekran zgody.
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.
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.
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ć dla użytkownika, wskazując, jak wrażliwe są te uprawnienia.
Zarówno admin.directory.user.readonly
, jak i cloud-platform
są uprawnieniami wrażliwymi.
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:
Wróć do https://console.cloud.google.com/apis/credentials/oauthclient, tym razem pojawi się inna opcja.
Wybierz, aby utworzyć poświadczenia dla aplikacji internetowej
Ustaw potrzebne originy Javascript i URI przekierowania
Możesz ustawić w obu coś takiego jak http://localhost:8000/callback
do testowania
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.
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ź:
GCP - Token Persistanceglcoud
Możliwe jest zrobienie czegoś za pomocą gcloud zamiast konsoli internetowej, sprawdź:
GCP - ClientAuthConfig Priveschttps://www.youtube-nocookie.com/embed/6AsVUS79gLw - Matthew Bryant - Hacking G Suite: The Power of Dark Apps Script Magic
https://www.youtube.com/watch?v=KTVHLolz6cE - Mike Felch i Beau Bullock - OK Google, Jak mogę przeprowadzić Red Team w GSuite?
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)