GWS - Google Platforms Phishing

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Generische Phishing-Methodik

Google Groups Phishing

Anscheinend können in Workspace-Mitglieder standardmäßig Gruppen erstellen und Personen dazu einladen. Sie können dann die E-Mail ändern, die an den Benutzer gesendet wird, indem Sie einige Links hinzufügen. Die E-Mail wird von einer Google-Adresse gesendet, daher sieht sie authentisch aus und die Leute könnten auf den Link klicken.

Es ist auch möglich, die VON-Adresse als die Google-Gruppen-E-Mail festzulegen, um mehr E-Mails an die Benutzer innerhalb der Gruppe zu senden, wie im folgenden Bild, in dem die Gruppe google--support@googlegroups.com erstellt wurde und eine E-Mail an alle Mitglieder der Gruppe gesendet wurde (die ohne Zustimmung hinzugefügt wurden)

Google Chat Phishing

Sie könnten entweder einen Chat mit einer Person beginnen, indem Sie nur deren E-Mail-Adresse haben, oder eine Einladung zum Gespräch senden. Darüber hinaus ist es möglich, einen Space zu erstellen, der jeden Namen haben kann (z. B. "Google Support") und Mitglieder dazu einladen. Wenn sie akzeptieren, könnten sie denken, dass sie mit dem Google-Support sprechen:

In meinen Tests haben die eingeladenen Mitglieder jedoch nicht einmal eine Einladung erhalten.

Sie können sehen, wie dies in der Vergangenheit funktioniert hat unter: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Doc Phishing

Früher war es möglich, ein scheinbar legitimes Dokument zu erstellen und in einem Kommentar eine E-Mail zu erwähnen (wie @user@gmail.com). Google hat dann eine E-Mail an diese E-Mail-Adresse gesendet, um sie darüber zu informieren, dass sie in dem Dokument erwähnt wurden. Heutzutage funktioniert dies nicht mehr, aber wenn Sie dem Opfer E-Mail-Zugriff auf das Dokument geben, wird Google eine E-Mail senden, die dies anzeigt. Dies ist die Nachricht, die erscheint, wenn Sie jemanden erwähnen:

Opfer könnten Schutzmechanismen haben, die verhindern, dass E-Mails, die darauf hinweisen, dass ein externes Dokument mit ihnen geteilt wurde, ihre E-Mail erreichen.

Google Kalender Phishing

Sie können ein Kalenderereignis erstellen und so viele E-Mail-Adressen des Unternehmens, das Sie angreifen, hinzufügen, wie Sie haben. Planen Sie dieses Kalenderereignis in 5 oder 15 Minuten ab der aktuellen Zeit. Gestalten Sie das Ereignis so, dass es authentisch aussieht, und geben Sie einen Kommentar und einen Titel an, der darauf hinweist, dass sie etwas lesen müssen (mit dem Phishing-Link).

Dies ist die Warnung, die im Browser mit einem Besprechungstitel "Leute entlassen" angezeigt wird, daher könnten Sie einen eher phishingartigen Titel festlegen (und sogar den Namen ändern, der mit Ihrer E-Mail verknüpft ist).

Um es weniger verdächtig aussehen zu lassen:

  • Richten Sie es so ein, dass Empfänger die anderen eingeladenen Personen nicht sehen können

  • Senden Sie keine E-Mails, die über das Ereignis informieren. Dann sehen die Leute nur ihre Warnung über ein Treffen in 5 Minuten und dass sie diesen Link lesen müssen.

  • Anscheinend können Sie über die API festlegen, dass Personen das Ereignis akzeptiert haben und sogar Kommentare in ihrem Namen erstellen.

App Scripts Redirect Phishing

Es ist möglich, ein Skript in https://script.google.com/ zu erstellen und es als Webanwendung zugänglich für alle freizugeben, das die legitime Domain script.google.com verwendet. Dann könnte ein Angreifer mit etwas Code wie dem folgenden das Skript erstellen, das beliebige Inhalte auf dieser Seite lädt, ohne den Zugriff auf die Domain zu stoppen:

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);
}

Zum Beispiel beim Zugriff auf https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec sehen Sie:

Beachten Sie, dass eine Warnung erscheint, da der Inhalt in einem iframe geladen wird.

App Scripts OAuth Phishing

Es ist möglich, App Scripts an Dokumente anzuhängen, um zu versuchen, Zugriff auf das OAuth-Token eines Opfers zu erhalten. Weitere Informationen finden Sie unter:

pageGWS - App Scripts

OAuth Apps Phishing

Eine der vorherigen Techniken kann verwendet werden, um den Benutzer dazu zu bringen, eine Google OAuth-Anwendung aufzurufen, die den Benutzer um Zugriff bittet. Wenn der Benutzer der Quelle vertraut, könnte er auch der Anwendung vertrauen (auch wenn sie um Berechtigungen mit hohen Privilegien bittet).

Beachten Sie, dass Google in mehreren Fällen eine hässliche Aufforderung anzeigt, die darauf hinweist, dass die Anwendung nicht vertrauenswürdig ist, und Workspace-Administratoren sogar verhindern können, dass Personen OAuth-Anwendungen akzeptieren.

Google ermöglicht die Erstellung von Anwendungen, die im Namen von Benutzern mit verschiedenen Google-Diensten interagieren können: Gmail, Drive, GCP...

Bei der Erstellung einer Anwendung, die im Namen anderer Benutzer agieren soll, muss der Entwickler eine OAuth-App innerhalb von GCP erstellen und die Bereiche (Berechtigungen) angeben, auf die die App zugreifen muss, um auf die Benutzerdaten zuzugreifen. Wenn ein Benutzer diese Anwendung verwenden möchte, wird er aufgefordert, zu akzeptieren, dass die Anwendung Zugriff auf ihre in den Bereichen angegebenen Daten haben wird.

Dies ist eine sehr effektive Methode, um nicht-technische Benutzer dazu zu bringen, Anwendungen zu verwenden, die auf sensible Informationen zugreifen, da sie möglicherweise nicht die Konsequenzen verstehen. In Organisationen gibt es jedoch Möglichkeiten, dies zu verhindern.

Aufforderung für nicht verifizierte Apps

Wie bereits erwähnt, wird Google dem Benutzer immer eine Aufforderung anzeigen, um die Berechtigungen zu akzeptieren, die er der Anwendung in seinem Namen gibt. Wenn die Anwendung jedoch als gefährlich eingestuft wird, zeigt Google zuerst eine Aufforderung an, die darauf hinweist, dass sie gefährlich ist, und erschwert es dem Benutzer, der Anwendung Berechtigungen zu erteilen.

Diese Aufforderung erscheint in Apps, die:

  • Einen Bereich verwenden, der auf private Daten zugreifen kann (Gmail, Drive, GCP, BigQuery...)

  • Apps mit weniger als 100 Benutzern (für Apps > 100 ist auch ein Überprüfungsprozess erforderlich, um die Anzeige der nicht verifizierten Aufforderung zu stoppen)

Interessante Bereiche

Hier finden Sie eine Liste aller Google OAuth-Bereiche.

  • cloud-platform: Anzeigen und Verwalten Ihrer Daten über verschiedene Google Cloud Platform-Dienste. Sie können den Benutzer in GCP darstellen.

  • admin.directory.user.readonly: Sehen und Herunterladen des GSuite-Verzeichnisses Ihrer Organisation. Erhalten Sie Namen, Telefonnummern, Kalender-URLs aller Benutzer.

Erstellen einer OAuth-App

Beginnen Sie mit der Erstellung einer OAuth-Client-ID

  1. Gehen Sie zu https://console.cloud.google.com/apis/credentials/oauthclient und klicken Sie auf die Konfiguration des Zustimmungsbildschirms.

  2. Dann werden Sie gefragt, ob der Benutzertyp intern (nur für Personen in Ihrer Organisation) oder extern ist. Wählen Sie die Option, die Ihren Anforderungen entspricht

  • Intern könnte interessant sein, wenn Sie bereits einen Benutzer der Organisation kompromittiert haben und diese App erstellen, um einen anderen zu phishen.

  1. Geben Sie der App einen Namen, eine Support-E-Mail (beachten Sie, dass Sie eine Googlegroup-E-Mail angeben können, um sich etwas mehr zu anonymisieren), ein Logo, autorisierte Domains und eine andere E-Mail für Updates.

  2. Wählen Sie die OAuth-Bereiche aus.

  • Diese Seite ist in nicht sensible Berechtigungen, sensible Berechtigungen und eingeschränkte Berechtigungen unterteilt. Jedes Mal, wenn Sie eine neue Berechtigung hinzufügen, wird sie in ihrer Kategorie hinzugefügt. Je nach angeforderten Berechtigungen erscheinen unterschiedliche Aufforderungen für den Benutzer, die anzeigen, wie sensibel diese Berechtigungen sind.

  • Sowohl admin.directory.user.readonly als auch cloud-platform sind sensible Berechtigungen.

  1. Fügen Sie die Testbenutzer hinzu. Solange der Status der App im Testmodus ist, können nur diese Benutzer auf die App zugreifen. Stellen Sie also sicher, dass Sie die E-Mail hinzufügen, die Sie phishen werden.

Nun erhalten Sie Anmeldeinformationen für eine Webanwendung, die die zuvor erstellte OAuth-Client-ID verwendet:

  1. Gehen Sie zurück zu https://console.cloud.google.com/apis/credentials/oauthclient, diesmal wird eine andere Option angezeigt.

  2. Wählen Sie aus, Anmeldeinformationen für eine Webanwendung zu erstellen

  3. Legen Sie die erforderlichen Javascript-Ursprünge und Weiterleitungs-URIs fest

  • Sie können in beiden etwas wie http://localhost:8000/callback für Tests festlegen

  1. Holen Sie sich Ihre Anwendungs-Anmeldeinformationen

Schließlich führen Sie eine Webanwendung aus, die die Anmeldeinformationen der OAuth-Anwendung verwendet. Ein Beispiel finden Sie unter 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>"

Gehe zu http://localhost:8000, klicke auf die Schaltfläche "Mit Google anmelden", es wird eine Meldung wie diese angezeigt:

Die Anwendung zeigt den Zugriffs- und Auffrischungstoken an, die leicht verwendet werden können. Für weitere Informationen darüber, wie man diese Tokens verwendet, siehe:

pageGCP - Non-svc Persistance

Mit gcloud verwenden

Es ist möglich, etwas mit gcloud anstelle der Webkonsole zu tun, siehe:

pageGCP - ClientAuthConfig Privesc

Referenzen

Lerne AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated