GWS - Google Platforms Phishing
Last updated
Last updated
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)
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 Space, który może mieć dowolną nazwę (np. "Wsparcie Google") i zaprosić członków do niego. 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 o tym, że zewnętrzny dokument został z nimi udostępniony, dotarły do ich skrzynki e-mail.
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.
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ższy, atakujący mógłby sprawić, że skrypt załadowałby dowolną treść na tej stronie bez przestawania uzyskiwać dostęp 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 poprosi użytkownika o dostęp. 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 przedstawi 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)
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.
Podaj 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ć użytkownikowi, 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)