GWS - Google Platforms Phishing

Reading time: 10 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Generic Phishing Methodology

Phishing Methodology - HackTricks

Google Groups Phishing

Offensichtlich können Mitglieder in der Workspace standardmäßig Gruppen erstellen und Personen einladen. Sie können dann die E-Mail, die an den Benutzer gesendet wird, mit einigen Links ändern. Die E-Mail wird von einer Google-Adresse kommen, sodass sie legitim aussieht und die Leute möglicherweise auf den Link klicken.

Es ist auch möglich, die FROM-Adresse als die Google-Gruppen-E-Mail festzulegen, um mehr E-Mails an die Benutzer innerhalb der Gruppe zu senden, wie im folgenden Bild, wo 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 in der Lage sein, entweder einen Chat mit einer Person zu beginnen, indem Sie nur ihre E-Mail-Adresse haben, oder eine Einladung zum Gespräch zu senden. Darüber hinaus ist es möglich, einen Space zu erstellen, der jeden Namen haben kann (z. B. "Google Support") und Mitglieder dazu einzuladen. Wenn sie akzeptieren, könnten sie denken, dass sie mit dem Google Support sprechen:

tip

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

Sie können überprüfen, wie das in der Vergangenheit funktioniert hat: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Doc Phishing

Früher war es möglich, ein anscheinend legitimes Dokument zu erstellen und in einem Kommentar eine E-Mail zu erwähnen (wie @user@gmail.com). Google sendete eine E-Mail an diese E-Mail-Adresse, um zu benachrichtigen, dass sie im Dokument erwähnt wurden.
Heutzutage funktioniert das 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:

tip

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 Calendar Phishing

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

Dies ist die Warnung, die im Browser mit dem Meeting-Titel "Leute entlassen" erscheint, sodass Sie einen phishinger Titel festlegen könnten (und sogar den Namen ändern, der mit Ihrer E-Mail verbunden 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 benachrichtigen. Dann sehen die Leute nur ihre Warnung über ein Meeting in 5 Minuten und dass sie diesen Link lesen müssen.
  • Offensichtlich können Sie mit der API einstellen, dass die 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 zu exponieren, die für jeden zugänglich ist, die die legitime Domain script.google.com verwendet.
Mit etwas Code wie dem folgenden könnte ein Angreifer das Skript dazu bringen, beliebige Inhalte auf dieser Seite zu laden, ohne die Domain zu stoppen:

javascript
function doGet() {
return HtmlService.createHtmlOutput(
'<meta http-equiv="refresh" content="0;url=https://cloud.hacktricks.wiki/en/pentesting-cloud/workspace-security/gws-google-platforms-phishing/index.html#app-scripts-redirect-phishing">'
).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
}

Zum Beispiel, wenn Sie https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec aufrufen, sehen Sie:

tip

Beachten Sie, dass eine Warnung erscheint, während der Inhalt in einem iframe geladen wird.

App Scripts OAuth Phishing

Es ist möglich, App Scripts zu erstellen, die an Dokumente angehängt sind, um zu versuchen, Zugriff auf das OAuth-Token eines Opfers zu erhalten. Für weitere Informationen siehe:

GWS - App Scripts

OAuth Apps Phishing

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

note

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

Google erlaubt es, Anwendungen zu erstellen, die im Namen von Benutzern mit mehreren Google-Diensten interagieren: Gmail, Drive, GCP...

Beim Erstellen einer Anwendung, die im Namen anderer Benutzer agiert, muss der Entwickler eine OAuth-Anwendung in GCP erstellen und die Scopes (Berechtigungen) angeben, die die Anwendung benötigt, um auf die Benutzerdaten zuzugreifen.
Wenn ein Benutzer diese Anwendung verwenden möchte, wird er aufgefordert, zu akzeptieren, dass die Anwendung Zugriff auf seine in den Scopes angegebenen Daten hat.

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

Unverified App prompt

Wie bereits erwähnt, wird Google immer eine Aufforderung an den Benutzer anzeigen, die Berechtigungen zu akzeptieren, die sie der Anwendung in ihrem Namen gewähren. Wenn die Anwendung jedoch als gefährlich eingestuft wird, zeigt Google zuerst eine Aufforderung an, die darauf hinweist, dass sie gefährlich ist und es dem Benutzer schwieriger macht, die Berechtigungen für die App zu gewähren.

Diese Aufforderung erscheint in Apps, die:

  • Irgendeinen Scope verwenden, der auf private Daten zugreifen kann (Gmail, Drive, GCP, BigQuery...)
  • Apps mit weniger als 100 Benutzern (bei Apps > 100 ist auch ein Überprüfungsprozess erforderlich, um die unbestätigte Aufforderung nicht mehr anzuzeigen)

Interessante Scopes

Hier finden Sie eine Liste aller Google OAuth Scopes.

  • cloud-platform: Sehen und verwalten Sie Ihre Daten über Google Cloud Platform-Dienste. Sie können den Benutzer in GCP impersonifizieren.
  • admin.directory.user.readonly: Sehen und herunterladen Sie das GSuite-Verzeichnis 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 "Zustimmungsbildschirm konfigurieren".
  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 Bedürfnissen 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 Google-Gruppe-E-Mail festlegen können, um sich ein wenig mehr zu anonymisieren), ein Logo, autorisierte Domains und eine andere E-Mail für Updates.
  2. Wählen Sie die OAuth-Scopes 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 darauf hinweisen, 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 auf "Test" steht, können nur diese Benutzer auf die App zugreifen, also stellen Sie sicher, dass Sie die E-Mail hinzufügen, die Sie phishen möchten.

Jetzt lassen Sie uns Anmeldeinformationen für eine Webanwendung mit der zuvor erstellten OAuth-Client-ID erhalten:

  1. Gehen Sie zurück zu https://console.cloud.google.com/apis/credentials/oauthclient, diesmal wird eine andere Option angezeigt.
  2. Wählen Sie Anmeldeinformationen für eine Webanwendung erstellen.
  3. Legen Sie die benötigten JavaScript-Ursprünge und Umleitungs-URIs fest.
  • Sie können in beiden etwas wie http://localhost:8000/callback zum Testen festlegen.
  1. Holen Sie sich Ihre Anwendungs-Anmeldeinformationen.

Schließlich lassen Sie uns eine Webanwendung ausführen, die die Anmeldeinformationen der OAuth-Anwendung verwendet. Sie finden ein Beispiel unter https://github.com/carlospolop/gcp_oauth_phishing_example.

bash
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 "Login with Google", du wirst mit einer Nachricht wie dieser konfrontiert:

Die Anwendung zeigt das access and refresh token, das leicht verwendet werden kann. Für weitere Informationen darüber, wie man diese Tokens verwendet, siehe:

GCP - Token Persistence

Verwendung von glcoud

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

GCP - ClientAuthConfig Privesc

Referenzen

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks